@@ -6,7 +6,6 @@ package util
6
6
import (
7
7
"errors"
8
8
"net/mail"
9
- "strings"
10
9
)
11
10
12
11
var ErrInvalidCommitTrailerValueSyntax = errors .New ("syntax error occurred while parsing a commit trailer value" )
@@ -17,26 +16,17 @@ var ErrInvalidCommitTrailerValueSyntax = errors.New("syntax error occurred while
17
16
//
18
17
19
18
func ParseCommitTrailerValueWithAuthor (value string ) (name , email string , err error ) {
20
- value = strings . TrimSpace (value )
21
- if ! strings . HasSuffix ( value , ">" ) {
22
- return "" , "" , ErrInvalidCommitTrailerValueSyntax
19
+ addr , err := mail . ParseAddress (value )
20
+ if err != nil {
21
+ return name , email , err
23
22
}
24
23
25
- closedBracketIdx := len (value ) - 1
26
- openBracketIdx := strings .LastIndex (value , "<" )
27
- if openBracketIdx == - 1 {
28
- return "" , "" , ErrInvalidCommitTrailerValueSyntax
24
+ if addr .Name == "" {
25
+ return name , email , errors .New ("commit trailer missing name" )
29
26
}
30
27
31
- email = value [openBracketIdx + 1 : closedBracketIdx ]
32
- if _ , err := mail .ParseAddress (email ); err != nil {
33
- return "" , "" , ErrInvalidCommitTrailerValueSyntax
34
- }
35
-
36
- name = strings .TrimSpace (value [:openBracketIdx ])
37
- if len (name ) == 0 {
38
- return "" , "" , ErrInvalidCommitTrailerValueSyntax
39
- }
28
+ name = addr .Name
29
+ email = addr .Address
40
30
41
31
return name , email , nil
42
32
}
0 commit comments