From 38db5f12c516c36cea99d2486fc446f52f351f84 Mon Sep 17 00:00:00 2001 From: Jessica Wagantall Date: Wed, 7 Mar 2018 13:23:07 -0800 Subject: [PATCH] Add signing details for commits - Prerequisites before using Gerrit - Signing Gerrit Commits - Generating the GPG key - Install gpg - Adding your key to Gerrit - Set up Git to sign commits - Commit and push a change Change-Id: I8ebe6615ead80608e9256e782e63de1302c856ad Issue-ID: RELENG-556 Signed-off-by: Jessica Wagantall --- docs/_static/gerrit-signed-push.png | Bin 0 -> 20593 bytes docs/_static/gpg-setup.example | 22 ++++++ docs/conf.py | 1 + docs/gerrit.rst | 138 ++++++++++++++++++++++++++++++++++++ 4 files changed, 161 insertions(+) create mode 100644 docs/_static/gerrit-signed-push.png create mode 100644 docs/_static/gpg-setup.example diff --git a/docs/_static/gerrit-signed-push.png b/docs/_static/gerrit-signed-push.png new file mode 100644 index 0000000000000000000000000000000000000000..b76d01931b6017eeb6f7954bcd9bcbeb51bb93ca GIT binary patch literal 20593 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 LzHUk}c8&c9HRl<7 literal 0 HcmV?d00001 diff --git a/docs/_static/gpg-setup.example b/docs/_static/gpg-setup.example new file mode 100644 index 0000000..bc33493 --- /dev/null +++ b/docs/_static/gpg-setup.example @@ -0,0 +1,22 @@ +brew install gpg2 # If you don't have homebrew, get that here: http://brew.sh/ +gpg2 --gen-key +# pick 1 for "RSA and RSA" +# enter 4096 to creat a 4096-bit key +# enter an expiration time, I picked 2y for 2 years +# enter y to accept the expiration time +# pick O or Q to accept your name/email/comment +# enter a pass phrase twice. it seems like backspace doesn't work, so type carefully +gpg2 --fingerprint +# you'll get something like this: +# spectre:~ ckd$ gpg2 --fingerprint +# /Users/ckd/.gnupg/pubring.gpg +# ----------------------------- +# pub 4096R/F566C9B1 2015-04-06 [expires: 2017-04-05] +# Key fingerprint = 7C37 02AC D651 1FA7 9209 48D3 5DD5 0C4B F566 C9B1 +# uid [ultimate] Colin Dixon +# sub 4096R/DC1497E1 2015-04-06 [expires: 2017-04-05] +# you're looking for the part after 4096R, which is your key ID +gpg2 --send-keys $KEY_ID +# in the above example, the $KEY_ID would be F566C9B1 +# you should see output like this: +# gpg: sending key F566C9B1 to hkp server keys.gnupg.net \ No newline at end of file diff --git a/docs/conf.py b/docs/conf.py index 7ec6e88..4d16e6a 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -26,4 +26,5 @@ linkcheck_ignore = [ 'https://gerrit.linuxfoundation.org/infra/#/settings/http-password', 'https://jenkins.acumos.org.*', 'https://.*.example.org.*', + 'https://git.opendaylight.org/gerrit/#/settings/gpg-keys', ] diff --git a/docs/gerrit.rst b/docs/gerrit.rst index 8feca45..e0cf0f2 100644 --- a/docs/gerrit.rst +++ b/docs/gerrit.rst @@ -15,6 +15,33 @@ occur around the code commits. Here is more information on `Gerrit `_ +Prerequisites +============= + +Before you get started, you should have: + +* an LFID account (sign up `here + `_) +* git installed (see: http://www.git-scm.com/downloads) +* git configured with your name, e-mail address and editor + + .. code-block:: bash + + git config --global user.name "Firstname Lastname" + git config --global user.email "email@address.com" + git config --global core.editor "text-editor-name" + + .. note:: Your name and e-mail address (including capitalization) must match what you entered + when creating your LFID account. + +* an ssh public/private key pair (see the good `GitHub docs on generating ssh keys + `_) + + * register in the Gerrit server. See below for detailed instructions. + :ref:`register-key-gerrit` + +* git-review installed (see: https://www.mediawiki.org/wiki/Gerrit/git-review#Installation) + Clone the code ============== @@ -533,6 +560,8 @@ For a system running Ubuntu operating system, follow the steps below: Your public key is now available as **.ssh/id\_rsa.pub** in your home folder. +.. _register-key-gerrit: + Register your SSH key with Gerrit --------------------------------- @@ -661,6 +690,115 @@ repository. git review -v -s +Signing Gerrit Commits +====================== + +1. Generate your GPG key. + + The following instructions work on a Mac, but the general approach + should be the same on other OSes. + + .. literalinclude:: _static/gpg-setup.example + + If you are collaborating in keysigning, then send the output of + ``gpg2 --fingerprint $KEY_ID`` to your coworkers. + + .. code-block:: bash + + gpg2 --fingerprint $KEY_ID + # in the above example, the $KEY_ID would be F566C9B1 + # in my case, the output was: + # pub 4096R/F566C9B1 2015-04-06 [expires: 2017-04-05] + # Key fingerprint = 7C37 02AC D651 1FA7 9209 48D3 5DD5 0C4B F566 C9B1 + # uid [ultimate] Colin Dixon + # sub 4096R/DC1497E1 2015-04-06 [expires: 2017-04-05] + +2. Install gpg, instead of or addition to gpg2. + + .. note:: you can tell Git to use gpg by doing: + ``git config --global gpg.program gpg2`` + but that then will seem to struggle asking for your + passphrase unless you have your gpg-agent set up right. + +3. Add you GPG to Gerrit + + a. Run the following at the CLI: + + .. code-block:: bash + + gpg --export -a $FINGER_PRINT + # e.g., gpg --export -a F566C9B1 + # in my case the output looked like: + # -----BEGIN PGP PUBLIC KEY BLOCK----- + # Version: GnuPG v2 + # + # mQINBFUisGABEAC/DkcjNUhxQkRLdfbfdlq9NlfDusWri0cXLVz4YN1cTUTF5HiW + # ... + # gJT+FwDvCGgaE+JGlmXgjv0WSd4f9cNXkgYqfb6mpji0F3TF2HXXiVPqbwJ1V3I2 + # NA+l+/koCW0aMReK + # =A/ql + # -----END PGP PUBLIC KEY BLOCK----- + + b. Browse to https://git.opendaylight.org/gerrit/#/settings/gpg-keys + c. Click Add Key... + d. Copy the output from the above command, paste it into the box, + and click Add + +4. Set up your Git to sign commits and push signatures + + .. code-block:: bash + + git config commit.gpgsign true + git config push.gpgsign true + git config user.signingkey $FINGER_PRINT + # e.g., git config user.signingkey F566C9B1 + + .. note:: + + We can create a signed commit with ``git commit -S`` and + a signed push with ``git push --signed`` on the CLI instead of + configuring it in config if we want to manually control which commits + use the signature. + +5. Create a signed commit + + a. Change a file + b. Create a signed commit with ``git commit -asm "test commit"`` + + This will result in Git asking you for your passphrase. + Enter it to proceed. + +6. Push to Gerrit with a signed-push with ``git review`` + + This will result in Git asking you for your passphrase. + Enter it to proceed. + + .. note:: + + The signing a commit or pushing again with a signed push is not + recognized as a "change" by Gerrit, so if you forget to do either, you + need to change something about the commit to get Gerrit to accept the + patch again. Slightly tweaking the commit message is a good way. + + .. note:: + + This assumes you have git review set up and push.gpgsign + set to true. Otherwise: + + ``git push --signed gerrit HEAD:refs/for/master`` + + This assumes the gerrit remote is available, if not, configure + something like: ``ssh://ckd@git.opendaylight.org:29418/.git`` + where repo is something like docs or controller + +6. Verify the signature + + To do this, navigate to Gerrit and check for a green check next to your name in the patch. + + .. figure:: _static/gerrit-signed-push.png + + Example signed push to Gerrit. + Appendix ======== -- 2.16.6