summaryrefslogtreecommitdiff
path: root/git_test.go
diff options
context:
space:
mode:
authormichael boulton <[email protected]>2020-08-18 17:25:31 +0100
committerGitHub <[email protected]>2020-08-18 09:25:31 -0700
commit7d4453198b55ecc2d9e09b64352edecb5db8b6ef (patch)
tree60fd2ff9d59edb85fce2e49a3fea2a553bac73f7 /git_test.go
parent7883ec85de56ee55667481228282fd690fce6246 (diff)
Add support for creating signed commits and signing commits during a rebase (#626)
Diffstat (limited to 'git_test.go')
-rw-r--r--git_test.go31
1 files changed, 31 insertions, 0 deletions
diff --git a/git_test.go b/git_test.go
index 807dcc2..91ade73 100644
--- a/git_test.go
+++ b/git_test.go
@@ -45,7 +45,16 @@ func createBareTestRepo(t *testing.T) *Repository {
return repo
}
+// commitOpts contains any extra options for creating commits in the seed repo
+type commitOpts struct {
+ CommitSigningCallback
+}
+
func seedTestRepo(t *testing.T, repo *Repository) (*Oid, *Oid) {
+ return seedTestRepoOpt(t, repo, commitOpts{})
+}
+
+func seedTestRepoOpt(t *testing.T, repo *Repository, opts commitOpts) (*Oid, *Oid) {
loc, err := time.LoadLocation("Europe/Berlin")
checkFatal(t, err)
sig := &Signature{
@@ -69,6 +78,28 @@ func seedTestRepo(t *testing.T, repo *Repository) (*Oid, *Oid) {
commitId, err := repo.CreateCommit("HEAD", sig, sig, message, tree)
checkFatal(t, err)
+ if opts.CommitSigningCallback != nil {
+ commit, err := repo.LookupCommit(commitId)
+ checkFatal(t, err)
+
+ signature, signatureField, err := opts.CommitSigningCallback(commit.ContentToSign())
+ checkFatal(t, err)
+
+ oid, err := commit.WithSignature(signature, signatureField)
+ checkFatal(t, err)
+ newCommit, err := repo.LookupCommit(oid)
+ checkFatal(t, err)
+ head, err := repo.Head()
+ checkFatal(t, err)
+ _, err = repo.References.Create(
+ head.Name(),
+ newCommit.Id(),
+ true,
+ "repoint to signed commit",
+ )
+ checkFatal(t, err)
+ }
+
return commitId, treeId
}