Skip to content

Commit 382b290

Browse files
authored
Merge pull request #12 from go-git/auto-bump
objectsigner/auto: Bump gpg/ssh to v0.2.0 and add context to Sign
2 parents cbc3be6 + 762ce9c commit 382b290

4 files changed

Lines changed: 24 additions & 18 deletions

File tree

plugin/objectsigner/auto/auto.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ package auto
1818

1919
import (
2020
"bytes"
21+
"context"
2122
"errors"
2223
"fmt"
2324
"io"
@@ -97,9 +98,10 @@ type Config struct {
9798
}
9899

99100
// Signer signs a message read from an io.Reader and returns the raw signature
100-
// bytes.
101+
// bytes. The context cancels signers that perform external or remote work
102+
// (e.g. an external program); purely local signers ignore it.
101103
type Signer interface {
102-
Sign(message io.Reader) ([]byte, error)
104+
Sign(ctx context.Context, message io.Reader) ([]byte, error)
103105
}
104106

105107
// FromConfig returns a [Signer] configured according to the provided Config.

plugin/objectsigner/auto/auto_test.go

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ func TestFromConfigSSH(t *testing.T) {
3838
})
3939
require.NoError(t, err)
4040

41-
sig, err := signer.Sign(strings.NewReader("hello\n"))
41+
sig, err := signer.Sign(t.Context(), strings.NewReader("hello\n"))
4242
require.NoError(t, err)
4343
assert.Contains(t, string(sig), "-----BEGIN SSH SIGNATURE-----")
4444
assert.Contains(t, string(sig), "-----END SSH SIGNATURE-----")
@@ -62,7 +62,7 @@ func TestFromConfigSSHPubSuffixNoAgent(t *testing.T) {
6262
})
6363
require.NoError(t, err)
6464

65-
sig, err := signer.Sign(strings.NewReader("hello\n"))
65+
sig, err := signer.Sign(t.Context(), strings.NewReader("hello\n"))
6666
require.NoError(t, err)
6767
assert.Contains(t, string(sig), "-----BEGIN SSH SIGNATURE-----")
6868
}
@@ -114,7 +114,7 @@ func TestFromConfigSSHKeyLiteralAgent(t *testing.T) {
114114
})
115115
require.NoError(t, err)
116116

117-
sig, err := signer.Sign(strings.NewReader("hello\n"))
117+
sig, err := signer.Sign(t.Context(), strings.NewReader("hello\n"))
118118
require.NoError(t, err)
119119
assert.Contains(t, string(sig), "-----BEGIN SSH SIGNATURE-----")
120120
}
@@ -149,7 +149,7 @@ func TestFromConfigSSHAgentPubKeyPath(t *testing.T) {
149149
})
150150
require.NoError(t, err)
151151

152-
sig, err := signer.Sign(strings.NewReader("hello\n"))
152+
sig, err := signer.Sign(t.Context(), strings.NewReader("hello\n"))
153153
require.NoError(t, err)
154154
assert.Contains(t, string(sig), "-----BEGIN SSH SIGNATURE-----")
155155
}
@@ -180,7 +180,7 @@ func TestFromConfigSSHAgentMultipleKeys(t *testing.T) {
180180
})
181181
require.NoError(t, err)
182182

183-
sig, err := signer.Sign(strings.NewReader("hello\n"))
183+
sig, err := signer.Sign(t.Context(), strings.NewReader("hello\n"))
184184
require.NoError(t, err)
185185
assert.Contains(t, string(sig), "-----BEGIN SSH SIGNATURE-----")
186186

@@ -260,7 +260,7 @@ func TestFromConfigSSHAgentPrivateKeyPath(t *testing.T) {
260260
})
261261
require.NoError(t, err)
262262

263-
sig, err := signer.Sign(strings.NewReader("hello\n"))
263+
sig, err := signer.Sign(t.Context(), strings.NewReader("hello\n"))
264264
require.NoError(t, err)
265265
assert.Contains(t, string(sig), "-----BEGIN SSH SIGNATURE-----")
266266
}
@@ -303,7 +303,7 @@ func TestFromConfigSSHAgentFirstKey(t *testing.T) {
303303
})
304304
require.NoError(t, err)
305305

306-
sig, err := signer.Sign(strings.NewReader("hello\n"))
306+
sig, err := signer.Sign(t.Context(), strings.NewReader("hello\n"))
307307
require.NoError(t, err)
308308
assert.Contains(t, string(sig), "-----BEGIN SSH SIGNATURE-----")
309309
}
@@ -352,7 +352,7 @@ func TestFromConfigGPG(t *testing.T) {
352352
})
353353
require.NoError(t, err)
354354

355-
sig, err := signer.Sign(strings.NewReader("hello\n"))
355+
sig, err := signer.Sign(t.Context(), strings.NewReader("hello\n"))
356356
require.NoError(t, err)
357357
assert.Contains(t, string(sig), "-----BEGIN PGP SIGNATURE-----")
358358
assert.Contains(t, string(sig), "-----END PGP SIGNATURE-----")
@@ -373,7 +373,7 @@ func TestFromConfigGPGDefaultFormat(t *testing.T) {
373373
})
374374
require.NoError(t, err)
375375

376-
sig, err := signer.Sign(strings.NewReader("hello\n"))
376+
sig, err := signer.Sign(t.Context(), strings.NewReader("hello\n"))
377377
require.NoError(t, err)
378378
assert.Contains(t, string(sig), "-----BEGIN PGP SIGNATURE-----")
379379
}
@@ -442,7 +442,7 @@ func TestFromConfigGPGEncryptedThenUnencrypted(t *testing.T) {
442442
})
443443
require.NoError(t, err)
444444

445-
sig, err := signer.Sign(strings.NewReader("hello\n"))
445+
sig, err := signer.Sign(t.Context(), strings.NewReader("hello\n"))
446446
require.NoError(t, err)
447447
assert.Contains(t, string(sig), "-----BEGIN PGP SIGNATURE-----")
448448
}
@@ -462,7 +462,7 @@ func TestFromConfigGPGMultipleKeys(t *testing.T) {
462462
})
463463
require.NoError(t, err)
464464

465-
sig, err := signer.Sign(strings.NewReader("hello\n"))
465+
sig, err := signer.Sign(t.Context(), strings.NewReader("hello\n"))
466466
require.NoError(t, err)
467467
assert.Contains(t, string(sig), "-----BEGIN PGP SIGNATURE-----")
468468
}
@@ -517,7 +517,7 @@ func TestFromConfigSSHHomeTilde(t *testing.T) {
517517
})
518518
require.NoError(t, err)
519519

520-
sig, err := signer.Sign(strings.NewReader("hello\n"))
520+
sig, err := signer.Sign(t.Context(), strings.NewReader("hello\n"))
521521
require.NoError(t, err)
522522
assert.Contains(t, string(sig), "-----BEGIN SSH SIGNATURE-----")
523523
}
@@ -553,7 +553,7 @@ func TestFromConfigSSHAgentHomeTildePubKey(t *testing.T) {
553553
})
554554
require.NoError(t, err)
555555

556-
sig, err := signer.Sign(strings.NewReader("hello\n"))
556+
sig, err := signer.Sign(t.Context(), strings.NewReader("hello\n"))
557557
require.NoError(t, err)
558558
assert.Contains(t, string(sig), "-----BEGIN SSH SIGNATURE-----")
559559
}
@@ -587,7 +587,7 @@ func TestFromConfigGPGHomeTilde(t *testing.T) {
587587
})
588588
require.NoError(t, err)
589589

590-
sig, err := signer.Sign(strings.NewReader("hello\n"))
590+
sig, err := signer.Sign(t.Context(), strings.NewReader("hello\n"))
591591
require.NoError(t, err)
592592
assert.Contains(t, string(sig), "-----BEGIN PGP SIGNATURE-----")
593593
}

plugin/objectsigner/auto/go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ go 1.25.0
55
require (
66
github.com/ProtonMail/go-crypto v1.3.0
77
github.com/go-git/go-billy/v6 v6.0.0-20260328065524-593ae452e14d
8-
github.com/go-git/x/plugin/objectsigner/gpg v0.1.0
9-
github.com/go-git/x/plugin/objectsigner/ssh v0.1.0
8+
github.com/go-git/x/plugin/objectsigner/gpg v0.2.0
9+
github.com/go-git/x/plugin/objectsigner/ssh v0.2.0
1010
github.com/hiddeco/sshsig v0.2.0
1111
github.com/stretchr/testify v1.11.1
1212
golang.org/x/crypto v0.48.0

plugin/objectsigner/auto/go.sum

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,12 @@ github.com/go-git/go-billy/v6 v6.0.0-20260328065524-593ae452e14d h1:bLMI9z4mKkfQ
1010
github.com/go-git/go-billy/v6 v6.0.0-20260328065524-593ae452e14d/go.mod h1:LLeMBFApkgIKwMzirxpU9XB7NvO2HdTw5FXmeP1M6c8=
1111
github.com/go-git/x/plugin/objectsigner/gpg v0.1.0 h1:NEGVSOD+LPnus6j4iNkAZaHVTc4DNY223y1/I2Jq2yI=
1212
github.com/go-git/x/plugin/objectsigner/gpg v0.1.0/go.mod h1:1iosWq3OOqZxtNrwDHtcjicswuaOT45J5GMFyCk80wc=
13+
github.com/go-git/x/plugin/objectsigner/gpg v0.2.0 h1:3EGE1apJAh2Z9qUxBUCPSdQMbasQi1WFA9VJfgtkMa8=
14+
github.com/go-git/x/plugin/objectsigner/gpg v0.2.0/go.mod h1:1iosWq3OOqZxtNrwDHtcjicswuaOT45J5GMFyCk80wc=
1315
github.com/go-git/x/plugin/objectsigner/ssh v0.1.0 h1:lAeeDgc1oxsMMvVUed6ssrqJnD97UR1K/dXIDdeg1Yc=
1416
github.com/go-git/x/plugin/objectsigner/ssh v0.1.0/go.mod h1:6BvpZj9Yry1ZFNw4N5OZDc+7M1T8oyrZilLNFg2aTsM=
17+
github.com/go-git/x/plugin/objectsigner/ssh v0.2.0 h1:TkAMmGl8SgI3CL6BZv5Pv1cLxBAfmjkyE6jObUm/+zc=
18+
github.com/go-git/x/plugin/objectsigner/ssh v0.2.0/go.mod h1:6BvpZj9Yry1ZFNw4N5OZDc+7M1T8oyrZilLNFg2aTsM=
1519
github.com/hiddeco/sshsig v0.2.0 h1:gMWllgKCITXdydVkDL+Zro0PU96QI55LwUwebSwNTSw=
1620
github.com/hiddeco/sshsig v0.2.0/go.mod h1:nJc98aGgiH6Yql2doqH4CTBVHexQA40Q+hMMLHP4EqE=
1721
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=

0 commit comments

Comments
 (0)