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が開くので, 鍵を作成する.

img1 こんな感じで.

有効期限を設定したほうがいいのかもしれないが面倒なので無期限にした.

これで作成完了.

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"

うまく行ってればこんなふうに表示される.

img2 以上.