超今さら初めてのgisty

gisty を知ったのはもう記憶にもないくらい昔だし、直接勧められたのは

Twitter / ゆーけー/赤松 祐希: @wtnabe gistにプロダクトコードとテストコ …

なんと3月なので9ヶ月前という体たらくでございますが、ようやく使ってみました < gisty

swdyh/gisty - GitHub

必要な準備

  1. gisty gem
  2. GISTY_DIR
  3. git の config
  4. 使っている Ruby が参照できる OpenSSL 証明書

gisty を使うには clone する場所を環境変数で指定しておく。post するだけでも同時に clone するので GISTY_DIR の指定は必須である。

また、git の config は最終的にこんな形になればよい。

[github]
       user  = USERNAME
       token = XXXXXXXXXXXXXXXXXXXXXXX

いずれにしてもエラーメッセージを見ればどうすればよいかは分かるので簡単。

実は、4 でハマった。

Ruby の参照できる OpenSSL 証明書

なんかこれ前にもハマった気がするんだけど、今回は Mac OSX でどうやって解決したか。

gistyをMacから使う - Dive into the Tech World!

を見ると

$ ruby -ropenssl -e 'p OpenSSL::X509::DEFAULT_CERT_FILE'

で、どのファイルを見に行っているか分かる。見るとそこには何もファイルがない。

FreeBSD のとき(Ruby の SSL の証明書検証の失敗でハマっていた - あーありがち(2010-01-14))には ca_root 関係の ports があったけど、MacPorts にはないっぽい。それっぽいのは

$ port search cert
curl-ca-bundle @7.21.2 (net)
    CA certificate bundle for curl

なので、これを入れて

/opt/local/etc/openssl/cert.pem@ ->
      /opt/local/share/curl/curl-ca-bundle.crt

の link を張って対処。

使い方

$ gisty help

で確認できる。(gisty –help ではない。)

gisty post *

としてできあがったのがコレ。

gist: 748375 - fabrication with faker and forgery- GitHub

ふー。長かった。

gisty syncに注意

gisty sync は自分の作った gist 全部を local に clone しようとする。その際、

1回1回鍵の passphrase を聞かれる。

自分は普段 ssh-agent とか使わないのでものすごく面倒になって途中でやめてしまった。

sync の際には ssh-agent や keychain を活用すべし。

More