mirror of
https://codeberg.org/forgejo/forgejo
synced 2024-08-14 19:51:35 +02:00
Replace #28849. Thanks to @yp05327 for the looking into the problem.
Fix #28840
The old behavior of newSignatureFromCommitline is not right. The new
parseSignatureFromCommitLine:
1. never fails
2. only accept one format (if there is any other, it could be easily added)
And add some tests.
(cherry picked from commit a24e1da7e9
)
31 lines
774 B
Go
31 lines
774 B
Go
// Copyright 2015 The Gogs Authors. All rights reserved.
|
|
// Copyright 2019 The Gitea Authors. All rights reserved.
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
//go:build !gogit
|
|
|
|
package git
|
|
|
|
import (
|
|
"fmt"
|
|
"time"
|
|
|
|
"code.gitea.io/gitea/modules/util"
|
|
)
|
|
|
|
// Signature represents the Author, Committer or Tagger information.
|
|
type Signature struct {
|
|
Name string // the committer name, it can be anything
|
|
Email string // the committer email, it can be anything
|
|
When time.Time // the timestamp of the signature
|
|
}
|
|
|
|
func (s *Signature) String() string {
|
|
return fmt.Sprintf("%s <%s>", s.Name, s.Email)
|
|
}
|
|
|
|
// Decode decodes a byte array representing a signature to signature
|
|
func (s *Signature) Decode(b []byte) {
|
|
*s = *parseSignatureFromCommitLine(util.UnsafeBytesToString(b))
|
|
}
|