nownab.log

nownabe's daily posts

GitHubでコミットにVerifiedバッジをつけたい

Posted on Oct 8, 2016

はじめに

GitHubのコミットに署名するとVerifiedというバッジが表示されます。

基本的にGitHubに書いてあるとおりにやってます。 https://help.github.com/categories/gpg/

MacのEl Capitanでやってみました。

準備する

必要なものをインストール

brew install gnupg2 gpg-agent pinentry-mac

GPG鍵を作る

鍵を作る。最後にパスフレーズを入力する。

$ gpg --gen-key
gpg (GnuPG) 2.0.30; Copyright (C) 2015 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Please select what kind of key you want:
   (1) RSA and RSA (default)
   (2) DSA and Elgamal
   (3) DSA (sign only)
   (4) RSA (sign only)
Your selection? 1
RSA keys may be between 1024 and 4096 bits long.
What keysize do you want? (2048) 4096
Requested keysize is 4096 bits
Please specify how long the key should be valid.
         0 = key does not expire
      <n>  = key expires in n days
      <n>w = key expires in n weeks
      <n>m = key expires in n months
      <n>y = key expires in n years
Key is valid for? (0)
Key does not expire at all
Is this correct? (y/N) y

GnuPG needs to construct a user ID to identify your key.

Real name: onamae
Email address: [email protected]
Comment: for GitHub
You selected this USER-ID:
    "onamae (for GitHub) <[email protected]>"

Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O

鍵がどこにあるかは次のコマンドで確認できる。

$ gpg --list-keys --keyid-format LONG
/Users/hubot/.gnupg/secring.gpg
------------------------------------
pub   4096R/3AA5C34371567BD2 2016-03-10 [expires: 2017-03-10]
uid                          Hubot 
sub   4096R/42B317FD4BA89E7A 2016-03-10

このpubのとこの3AA5C34371567BD2ってのがGPG鍵のID。

GitHubに登録する

GitHubにGPG鍵を登録する。

次のコマンドで公開鍵をエクスポートできるので、コピペしてGitHubに登録する。

gpg --armor --export 3AA5C34371567BD2

Gitに登録する

Gitに署名用として作ったGPG鍵を登録する。

git config --global user.signingkey 3AA5C34371567BD2

次のコマンドで、自動でコミットに署名するようになる。

git config --global commit.gpgSign true

push.gpgSignですべてのpushに署名するのもあった。

Mac用の設定をする

パスフレーズをKeyChainとよろしくやってくれる感じっぽい。

.gnupg/gpg.confuser-agentのコメントを外す。

.gnupg/gpg-agent.confというファイルを次の内容で作る。

use-standard-socket
pinentry-program /usr/local/bin/pinentry-mac

できた

こんな感じ

スクリーンショット 2016-10-08 21.17.15.png (94.5 kB)