mirror of
https://github.com/go-gitea/git.git
synced 2026-02-05 06:45:03 +01:00
Add parsing support for tag GPG signatures (#124)
* Add parsing support for tag GPG signatures * Test that signature is not left in commit message * Fix object not found error in test
This commit is contained in:
committed by
Jonas Franz
parent
344971f642
commit
6ef79e80b3
@@ -34,14 +34,18 @@ type CommitGPGSignature struct {
|
||||
}
|
||||
|
||||
// similar to https://github.com/git/git/blob/3bc53220cb2dcf709f7a027a3f526befd021d858/commit.c#L1128
|
||||
func newGPGSignatureFromCommitline(data []byte, signatureStart int) (*CommitGPGSignature, error) {
|
||||
func newGPGSignatureFromCommitline(data []byte, signatureStart int, tag bool) (*CommitGPGSignature, error) {
|
||||
sig := new(CommitGPGSignature)
|
||||
signatureEnd := bytes.LastIndex(data, []byte("-----END PGP SIGNATURE-----"))
|
||||
if signatureEnd == -1 {
|
||||
return nil, fmt.Errorf("end of commit signature not found")
|
||||
}
|
||||
sig.Signature = strings.Replace(string(data[signatureStart:signatureEnd+27]), "\n ", "\n", -1)
|
||||
sig.Payload = string(data[:signatureStart-8]) + string(data[signatureEnd+27:])
|
||||
if tag {
|
||||
sig.Payload = string(data[:signatureStart-1])
|
||||
} else {
|
||||
sig.Payload = string(data[:signatureStart-8]) + string(data[signatureEnd+27:])
|
||||
}
|
||||
return sig, nil
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user