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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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]