Skip to content

Commit 3dc1cdc

Browse files
committed
plumbing: object/{commit,tag} add PGPPayload, Implement src-d#1116
Signed-off-by: Antoine GIRARD <[email protected]>
1 parent e5268e9 commit 3dc1cdc

File tree

2 files changed

+22
-10
lines changed

2 files changed

+22
-10
lines changed

plumbing/object/commit.go

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -233,6 +233,16 @@ func (b *Commit) Encode(o plumbing.EncodedObject) error {
233233
return b.encode(o, true)
234234
}
235235

236+
// PGPPayload export to a Reader the commit payload that is signed
237+
func (b *Commit) PGPPayload() (io.Reader, error) {
238+
encoded := &plumbing.MemoryObject{}
239+
// Encode commit components, excluding signature and get a reader object.
240+
if err := b.encode(encoded, false); err != nil {
241+
return nil, err
242+
}
243+
return encoded.Reader()
244+
}
245+
236246
func (b *Commit) encode(o plumbing.EncodedObject, includeSig bool) (err error) {
237247
o.SetType(plumbing.CommitObject)
238248
w, err := o.Writer()
@@ -345,12 +355,8 @@ func (c *Commit) Verify(armoredKeyRing string) (*openpgp.Entity, error) {
345355
// Extract signature.
346356
signature := strings.NewReader(c.PGPSignature)
347357

348-
encoded := &plumbing.MemoryObject{}
349358
// Encode commit components, excluding signature and get a reader object.
350-
if err := c.encode(encoded, false); err != nil {
351-
return nil, err
352-
}
353-
er, err := encoded.Reader()
359+
er, err := c.PGPPayload()
354360
if err != nil {
355361
return nil, err
356362
}

plumbing/object/tag.go

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,16 @@ func (t *Tag) Encode(o plumbing.EncodedObject) error {
169169
return t.encode(o, true)
170170
}
171171

172+
// PGPPayload export to a Reader the tag payload that is signed
173+
func (t *Tag) PGPPayload() (io.Reader, error) {
174+
encoded := &plumbing.MemoryObject{}
175+
// Encode commit components, excluding signature and get a reader object.
176+
if err := t.encode(encoded, false); err != nil {
177+
return nil, err
178+
}
179+
return encoded.Reader()
180+
}
181+
172182
func (t *Tag) encode(o plumbing.EncodedObject, includeSig bool) (err error) {
173183
o.SetType(plumbing.TagObject)
174184
w, err := o.Writer()
@@ -287,12 +297,8 @@ func (t *Tag) Verify(armoredKeyRing string) (*openpgp.Entity, error) {
287297
// Extract signature.
288298
signature := strings.NewReader(t.PGPSignature)
289299

290-
encoded := &plumbing.MemoryObject{}
291300
// Encode tag components, excluding signature and get a reader object.
292-
if err := t.encode(encoded, false); err != nil {
293-
return nil, err
294-
}
295-
er, err := encoded.Reader()
301+
er, err := t.PGPPayload()
296302
if err != nil {
297303
return nil, err
298304
}

0 commit comments

Comments
 (0)