Mercurial > hg-git
annotate tests/test-git-gpg.t @ 1108:aae2d15de6af
git_handler: store gpgsig header to maintain commit coherence
author | Tony Tung <ttung@chanzuckerberg.com <mailto:ttung@chanzuckerberg.com>> |
---|---|
date | Tue, 06 Feb 2018 17:04:24 -0800 |
parents | |
children |
rev | line source |
---|---|
1108
aae2d15de6af
git_handler: store gpgsig header to maintain commit coherence
Tony Tung <ttung@chanzuckerberg.com <mailto:ttung@chanzuckerberg.com>>
parents:
diff
changeset
|
1 #require gpg |
aae2d15de6af
git_handler: store gpgsig header to maintain commit coherence
Tony Tung <ttung@chanzuckerberg.com <mailto:ttung@chanzuckerberg.com>>
parents:
diff
changeset
|
2 |
aae2d15de6af
git_handler: store gpgsig header to maintain commit coherence
Tony Tung <ttung@chanzuckerberg.com <mailto:ttung@chanzuckerberg.com>>
parents:
diff
changeset
|
3 Load commonly used test logic |
aae2d15de6af
git_handler: store gpgsig header to maintain commit coherence
Tony Tung <ttung@chanzuckerberg.com <mailto:ttung@chanzuckerberg.com>>
parents:
diff
changeset
|
4 $ . "$TESTDIR/testutil" |
aae2d15de6af
git_handler: store gpgsig header to maintain commit coherence
Tony Tung <ttung@chanzuckerberg.com <mailto:ttung@chanzuckerberg.com>>
parents:
diff
changeset
|
5 |
aae2d15de6af
git_handler: store gpgsig header to maintain commit coherence
Tony Tung <ttung@chanzuckerberg.com <mailto:ttung@chanzuckerberg.com>>
parents:
diff
changeset
|
6 $ export GNUPGHOME="$(mktemp -d)" |
aae2d15de6af
git_handler: store gpgsig header to maintain commit coherence
Tony Tung <ttung@chanzuckerberg.com <mailto:ttung@chanzuckerberg.com>>
parents:
diff
changeset
|
7 $ cp -R "$TESTDIR"/gpg/* "$GNUPGHOME" |
aae2d15de6af
git_handler: store gpgsig header to maintain commit coherence
Tony Tung <ttung@chanzuckerberg.com <mailto:ttung@chanzuckerberg.com>>
parents:
diff
changeset
|
8 |
aae2d15de6af
git_handler: store gpgsig header to maintain commit coherence
Tony Tung <ttung@chanzuckerberg.com <mailto:ttung@chanzuckerberg.com>>
parents:
diff
changeset
|
9 Start gpg-agent, which is required by GnuPG v2 |
aae2d15de6af
git_handler: store gpgsig header to maintain commit coherence
Tony Tung <ttung@chanzuckerberg.com <mailto:ttung@chanzuckerberg.com>>
parents:
diff
changeset
|
10 |
aae2d15de6af
git_handler: store gpgsig header to maintain commit coherence
Tony Tung <ttung@chanzuckerberg.com <mailto:ttung@chanzuckerberg.com>>
parents:
diff
changeset
|
11 #if gpg21 |
aae2d15de6af
git_handler: store gpgsig header to maintain commit coherence
Tony Tung <ttung@chanzuckerberg.com <mailto:ttung@chanzuckerberg.com>>
parents:
diff
changeset
|
12 $ gpg-connect-agent -q --subst /serverpid '/echo ${get serverpid}' /bye \ |
aae2d15de6af
git_handler: store gpgsig header to maintain commit coherence
Tony Tung <ttung@chanzuckerberg.com <mailto:ttung@chanzuckerberg.com>>
parents:
diff
changeset
|
13 > >> $DAEMON_PIDS |
aae2d15de6af
git_handler: store gpgsig header to maintain commit coherence
Tony Tung <ttung@chanzuckerberg.com <mailto:ttung@chanzuckerberg.com>>
parents:
diff
changeset
|
14 #endif |
aae2d15de6af
git_handler: store gpgsig header to maintain commit coherence
Tony Tung <ttung@chanzuckerberg.com <mailto:ttung@chanzuckerberg.com>>
parents:
diff
changeset
|
15 |
aae2d15de6af
git_handler: store gpgsig header to maintain commit coherence
Tony Tung <ttung@chanzuckerberg.com <mailto:ttung@chanzuckerberg.com>>
parents:
diff
changeset
|
16 and migrate secret keys |
aae2d15de6af
git_handler: store gpgsig header to maintain commit coherence
Tony Tung <ttung@chanzuckerberg.com <mailto:ttung@chanzuckerberg.com>>
parents:
diff
changeset
|
17 |
aae2d15de6af
git_handler: store gpgsig header to maintain commit coherence
Tony Tung <ttung@chanzuckerberg.com <mailto:ttung@chanzuckerberg.com>>
parents:
diff
changeset
|
18 #if gpg2 |
aae2d15de6af
git_handler: store gpgsig header to maintain commit coherence
Tony Tung <ttung@chanzuckerberg.com <mailto:ttung@chanzuckerberg.com>>
parents:
diff
changeset
|
19 $ gpg --no-permission-warning --no-secmem-warning --list-secret-keys \ |
aae2d15de6af
git_handler: store gpgsig header to maintain commit coherence
Tony Tung <ttung@chanzuckerberg.com <mailto:ttung@chanzuckerberg.com>>
parents:
diff
changeset
|
20 > > /dev/null 2>&1 |
aae2d15de6af
git_handler: store gpgsig header to maintain commit coherence
Tony Tung <ttung@chanzuckerberg.com <mailto:ttung@chanzuckerberg.com>>
parents:
diff
changeset
|
21 #endif |
aae2d15de6af
git_handler: store gpgsig header to maintain commit coherence
Tony Tung <ttung@chanzuckerberg.com <mailto:ttung@chanzuckerberg.com>>
parents:
diff
changeset
|
22 |
aae2d15de6af
git_handler: store gpgsig header to maintain commit coherence
Tony Tung <ttung@chanzuckerberg.com <mailto:ttung@chanzuckerberg.com>>
parents:
diff
changeset
|
23 $ alias gpg='gpg --no-permission-warning --no-secmem-warning --no-auto-check-trustdb' |
aae2d15de6af
git_handler: store gpgsig header to maintain commit coherence
Tony Tung <ttung@chanzuckerberg.com <mailto:ttung@chanzuckerberg.com>>
parents:
diff
changeset
|
24 |
aae2d15de6af
git_handler: store gpgsig header to maintain commit coherence
Tony Tung <ttung@chanzuckerberg.com <mailto:ttung@chanzuckerberg.com>>
parents:
diff
changeset
|
25 Set up two identical git repos. |
aae2d15de6af
git_handler: store gpgsig header to maintain commit coherence
Tony Tung <ttung@chanzuckerberg.com <mailto:ttung@chanzuckerberg.com>>
parents:
diff
changeset
|
26 |
aae2d15de6af
git_handler: store gpgsig header to maintain commit coherence
Tony Tung <ttung@chanzuckerberg.com <mailto:ttung@chanzuckerberg.com>>
parents:
diff
changeset
|
27 $ mkdir gitrepo |
aae2d15de6af
git_handler: store gpgsig header to maintain commit coherence
Tony Tung <ttung@chanzuckerberg.com <mailto:ttung@chanzuckerberg.com>>
parents:
diff
changeset
|
28 $ cd gitrepo |
aae2d15de6af
git_handler: store gpgsig header to maintain commit coherence
Tony Tung <ttung@chanzuckerberg.com <mailto:ttung@chanzuckerberg.com>>
parents:
diff
changeset
|
29 $ git init |
aae2d15de6af
git_handler: store gpgsig header to maintain commit coherence
Tony Tung <ttung@chanzuckerberg.com <mailto:ttung@chanzuckerberg.com>>
parents:
diff
changeset
|
30 Initialized empty Git repository in $TESTTMP/gitrepo/.git/ |
aae2d15de6af
git_handler: store gpgsig header to maintain commit coherence
Tony Tung <ttung@chanzuckerberg.com <mailto:ttung@chanzuckerberg.com>>
parents:
diff
changeset
|
31 $ touch a |
aae2d15de6af
git_handler: store gpgsig header to maintain commit coherence
Tony Tung <ttung@chanzuckerberg.com <mailto:ttung@chanzuckerberg.com>>
parents:
diff
changeset
|
32 $ git add a |
aae2d15de6af
git_handler: store gpgsig header to maintain commit coherence
Tony Tung <ttung@chanzuckerberg.com <mailto:ttung@chanzuckerberg.com>>
parents:
diff
changeset
|
33 $ git commit -m "initial commit" |
aae2d15de6af
git_handler: store gpgsig header to maintain commit coherence
Tony Tung <ttung@chanzuckerberg.com <mailto:ttung@chanzuckerberg.com>>
parents:
diff
changeset
|
34 [master (root-commit) *] initial commit (glob) |
aae2d15de6af
git_handler: store gpgsig header to maintain commit coherence
Tony Tung <ttung@chanzuckerberg.com <mailto:ttung@chanzuckerberg.com>>
parents:
diff
changeset
|
35 1 file changed, 0 insertions(+), 0 deletions(-) |
aae2d15de6af
git_handler: store gpgsig header to maintain commit coherence
Tony Tung <ttung@chanzuckerberg.com <mailto:ttung@chanzuckerberg.com>>
parents:
diff
changeset
|
36 create mode 100644 a |
aae2d15de6af
git_handler: store gpgsig header to maintain commit coherence
Tony Tung <ttung@chanzuckerberg.com <mailto:ttung@chanzuckerberg.com>>
parents:
diff
changeset
|
37 $ cd .. |
aae2d15de6af
git_handler: store gpgsig header to maintain commit coherence
Tony Tung <ttung@chanzuckerberg.com <mailto:ttung@chanzuckerberg.com>>
parents:
diff
changeset
|
38 $ git clone gitrepo gitrepo2 |
aae2d15de6af
git_handler: store gpgsig header to maintain commit coherence
Tony Tung <ttung@chanzuckerberg.com <mailto:ttung@chanzuckerberg.com>>
parents:
diff
changeset
|
39 Cloning into 'gitrepo2'... |
aae2d15de6af
git_handler: store gpgsig header to maintain commit coherence
Tony Tung <ttung@chanzuckerberg.com <mailto:ttung@chanzuckerberg.com>>
parents:
diff
changeset
|
40 done. |
aae2d15de6af
git_handler: store gpgsig header to maintain commit coherence
Tony Tung <ttung@chanzuckerberg.com <mailto:ttung@chanzuckerberg.com>>
parents:
diff
changeset
|
41 |
aae2d15de6af
git_handler: store gpgsig header to maintain commit coherence
Tony Tung <ttung@chanzuckerberg.com <mailto:ttung@chanzuckerberg.com>>
parents:
diff
changeset
|
42 Add a signed commit to the first clone. |
aae2d15de6af
git_handler: store gpgsig header to maintain commit coherence
Tony Tung <ttung@chanzuckerberg.com <mailto:ttung@chanzuckerberg.com>>
parents:
diff
changeset
|
43 |
aae2d15de6af
git_handler: store gpgsig header to maintain commit coherence
Tony Tung <ttung@chanzuckerberg.com <mailto:ttung@chanzuckerberg.com>>
parents:
diff
changeset
|
44 $ cd gitrepo |
aae2d15de6af
git_handler: store gpgsig header to maintain commit coherence
Tony Tung <ttung@chanzuckerberg.com <mailto:ttung@chanzuckerberg.com>>
parents:
diff
changeset
|
45 $ git checkout -b signed |
aae2d15de6af
git_handler: store gpgsig header to maintain commit coherence
Tony Tung <ttung@chanzuckerberg.com <mailto:ttung@chanzuckerberg.com>>
parents:
diff
changeset
|
46 Switched to a new branch 'signed' |
aae2d15de6af
git_handler: store gpgsig header to maintain commit coherence
Tony Tung <ttung@chanzuckerberg.com <mailto:ttung@chanzuckerberg.com>>
parents:
diff
changeset
|
47 $ touch b |
aae2d15de6af
git_handler: store gpgsig header to maintain commit coherence
Tony Tung <ttung@chanzuckerberg.com <mailto:ttung@chanzuckerberg.com>>
parents:
diff
changeset
|
48 $ git add b |
aae2d15de6af
git_handler: store gpgsig header to maintain commit coherence
Tony Tung <ttung@chanzuckerberg.com <mailto:ttung@chanzuckerberg.com>>
parents:
diff
changeset
|
49 $ git commit -m "message" -Shgtest |
aae2d15de6af
git_handler: store gpgsig header to maintain commit coherence
Tony Tung <ttung@chanzuckerberg.com <mailto:ttung@chanzuckerberg.com>>
parents:
diff
changeset
|
50 [signed *] message (glob) |
aae2d15de6af
git_handler: store gpgsig header to maintain commit coherence
Tony Tung <ttung@chanzuckerberg.com <mailto:ttung@chanzuckerberg.com>>
parents:
diff
changeset
|
51 1 file changed, 0 insertions(+), 0 deletions(-) |
aae2d15de6af
git_handler: store gpgsig header to maintain commit coherence
Tony Tung <ttung@chanzuckerberg.com <mailto:ttung@chanzuckerberg.com>>
parents:
diff
changeset
|
52 create mode 100644 b |
aae2d15de6af
git_handler: store gpgsig header to maintain commit coherence
Tony Tung <ttung@chanzuckerberg.com <mailto:ttung@chanzuckerberg.com>>
parents:
diff
changeset
|
53 $ cd .. |
aae2d15de6af
git_handler: store gpgsig header to maintain commit coherence
Tony Tung <ttung@chanzuckerberg.com <mailto:ttung@chanzuckerberg.com>>
parents:
diff
changeset
|
54 |
aae2d15de6af
git_handler: store gpgsig header to maintain commit coherence
Tony Tung <ttung@chanzuckerberg.com <mailto:ttung@chanzuckerberg.com>>
parents:
diff
changeset
|
55 Hg clone it |
aae2d15de6af
git_handler: store gpgsig header to maintain commit coherence
Tony Tung <ttung@chanzuckerberg.com <mailto:ttung@chanzuckerberg.com>>
parents:
diff
changeset
|
56 |
aae2d15de6af
git_handler: store gpgsig header to maintain commit coherence
Tony Tung <ttung@chanzuckerberg.com <mailto:ttung@chanzuckerberg.com>>
parents:
diff
changeset
|
57 $ hg clone gitrepo hgrepo |
aae2d15de6af
git_handler: store gpgsig header to maintain commit coherence
Tony Tung <ttung@chanzuckerberg.com <mailto:ttung@chanzuckerberg.com>>
parents:
diff
changeset
|
58 importing git objects into hg |
aae2d15de6af
git_handler: store gpgsig header to maintain commit coherence
Tony Tung <ttung@chanzuckerberg.com <mailto:ttung@chanzuckerberg.com>>
parents:
diff
changeset
|
59 updating to branch default |
aae2d15de6af
git_handler: store gpgsig header to maintain commit coherence
Tony Tung <ttung@chanzuckerberg.com <mailto:ttung@chanzuckerberg.com>>
parents:
diff
changeset
|
60 2 files updated, 0 files merged, 0 files removed, 0 files unresolved |
aae2d15de6af
git_handler: store gpgsig header to maintain commit coherence
Tony Tung <ttung@chanzuckerberg.com <mailto:ttung@chanzuckerberg.com>>
parents:
diff
changeset
|
61 |
aae2d15de6af
git_handler: store gpgsig header to maintain commit coherence
Tony Tung <ttung@chanzuckerberg.com <mailto:ttung@chanzuckerberg.com>>
parents:
diff
changeset
|
62 $ cd hgrepo |
aae2d15de6af
git_handler: store gpgsig header to maintain commit coherence
Tony Tung <ttung@chanzuckerberg.com <mailto:ttung@chanzuckerberg.com>>
parents:
diff
changeset
|
63 $ hg push ../gitrepo2 -B signed |
aae2d15de6af
git_handler: store gpgsig header to maintain commit coherence
Tony Tung <ttung@chanzuckerberg.com <mailto:ttung@chanzuckerberg.com>>
parents:
diff
changeset
|
64 pushing to ../gitrepo2 |
aae2d15de6af
git_handler: store gpgsig header to maintain commit coherence
Tony Tung <ttung@chanzuckerberg.com <mailto:ttung@chanzuckerberg.com>>
parents:
diff
changeset
|
65 searching for changes |
aae2d15de6af
git_handler: store gpgsig header to maintain commit coherence
Tony Tung <ttung@chanzuckerberg.com <mailto:ttung@chanzuckerberg.com>>
parents:
diff
changeset
|
66 adding objects |
aae2d15de6af
git_handler: store gpgsig header to maintain commit coherence
Tony Tung <ttung@chanzuckerberg.com <mailto:ttung@chanzuckerberg.com>>
parents:
diff
changeset
|
67 added 1 commits with 1 trees and 0 blobs |
aae2d15de6af
git_handler: store gpgsig header to maintain commit coherence
Tony Tung <ttung@chanzuckerberg.com <mailto:ttung@chanzuckerberg.com>>
parents:
diff
changeset
|
68 $ cd .. |
aae2d15de6af
git_handler: store gpgsig header to maintain commit coherence
Tony Tung <ttung@chanzuckerberg.com <mailto:ttung@chanzuckerberg.com>>
parents:
diff
changeset
|
69 |
aae2d15de6af
git_handler: store gpgsig header to maintain commit coherence
Tony Tung <ttung@chanzuckerberg.com <mailto:ttung@chanzuckerberg.com>>
parents:
diff
changeset
|
70 Verify the commit |
aae2d15de6af
git_handler: store gpgsig header to maintain commit coherence
Tony Tung <ttung@chanzuckerberg.com <mailto:ttung@chanzuckerberg.com>>
parents:
diff
changeset
|
71 |
aae2d15de6af
git_handler: store gpgsig header to maintain commit coherence
Tony Tung <ttung@chanzuckerberg.com <mailto:ttung@chanzuckerberg.com>>
parents:
diff
changeset
|
72 $ cd gitrepo2 |
aae2d15de6af
git_handler: store gpgsig header to maintain commit coherence
Tony Tung <ttung@chanzuckerberg.com <mailto:ttung@chanzuckerberg.com>>
parents:
diff
changeset
|
73 $ git show --show-signature signed | grep "Good signature from" |
aae2d15de6af
git_handler: store gpgsig header to maintain commit coherence
Tony Tung <ttung@chanzuckerberg.com <mailto:ttung@chanzuckerberg.com>>
parents:
diff
changeset
|
74 gpg: Good signature from "hgtest" [ultimate] |