GitHubの署名付きコミットしたかったので設定した話
タイトル通り.
GPG Keyつくる
これがなきゃ始まらない.
ここ見た: https://help.github.com/en/articles/generating-a-new-gpg-key#supported-gpg-key-algorithms
自分が使っているOS用のGPGコマンドラインツールを入れろって書いてある.
GPG SuiteからGPG Suiteをダウンロードする.
dmgを開き, install.pkgをクリックし, インストーラーを起動する.
GPG Keychainが開くので, 鍵を作成する.
こんな感じで.
有効期限を設定したほうがいいのかもしれないが面倒なので無期限にした.
これで作成完了.
GPG KeyをGitHubに登録する
gpg --list-secret-keys --keyid-format LONG
コマンドで, 公開鍵と秘密鍵の両方があるGPG Keyが見れる.
$ gpg --list-secret-keys --keyid-format LONG /Users/hubot/.gnupg/secring.gpg ------------------------------------ sec 4096R/3AA5C34371567BD2 2016-03-10 [expires: 2017-03-10] uid Hubot ssb 4096R/42B317FD4BA89E7A 2016-03-10
こんな感じになる。
大事なのは, secの3AA5C34371567BD2
の部分.
次にこれを実行する.
すると, gpg keyが出てくるので, コピーし, GitHubの"Settings→SSH and GPG Keys"のところに貼り付ける.
$ gpg --armor --export 3AA5C34371567BD2 # Prints the GPG key ID, in ASCII armor format
パイプでpbcopyに渡してコピーしたほうが楽.
署名付きコミットしてpushしてみる
ローカルリポジトリで署名付きコミットしたい場合は,
$ git config commit.gpgsign true
全てのリポジトリで署名付きコミットしたい場合は,
$ git config --global commit.gpgsign true
そして, コミットするときは, -S
オプションを付ける.
$ git commit -S -m "your commit message"
うまく行ってればこんなふうに表示される.
以上.