diff options
author | Iskander (Alex) Sharipov <[email protected]> | 2021-10-12 12:32:09 +0300 |
---|---|---|
committer | GitHub <[email protected]> | 2021-10-12 11:32:09 +0200 |
commit | d7331aaa7ec8d314764a270edf970db71c4a3011 (patch) | |
tree | 278ba2b9ace6e63d911f161871f5aac4957a7b65 | |
parent | cd4e67af182a1b3aa19db7609c7581c424e9310f (diff) | |
download | hugo-d7331aaa7ec8d314764a270edf970db71c4a3011.tar.gz hugo-d7331aaa7ec8d314764a270edf970db71c4a3011.zip |
releaser: Fix regexp
Original regexp used a char class which caused the regexp to only
check 1 symbol instead of a substring like "See" and "Closes".
So it would match `e #x` instead of `See #x` and many other
weird combinations.
Tests were passing as they never checked against an input that
would confuse that regexp.
Found with go-critic static analyzer, `badRegexp` checker.
-rw-r--r-- | releaser/git.go | 2 | ||||
-rw-r--r-- | releaser/git_test.go | 10 |
2 files changed, 11 insertions, 1 deletions
diff --git a/releaser/git.go b/releaser/git.go index 4db1c2329..a03a48e99 100644 --- a/releaser/git.go +++ b/releaser/git.go @@ -23,7 +23,7 @@ import ( "github.com/gohugoio/hugo/common/hexec" ) -var issueRe = regexp.MustCompile(`(?i)[Updates?|Closes?|Fix.*|See] #(\d+)`) +var issueRe = regexp.MustCompile(`(?i)(?:Updates?|Closes?|Fix.*|See) #(\d+)`) const ( notesChanges = "notesChanges" diff --git a/releaser/git_test.go b/releaser/git_test.go index 21d261a62..ff77eb8c6 100644 --- a/releaser/git_test.go +++ b/releaser/git_test.go @@ -45,6 +45,16 @@ See #456 c.Assert(len(issues), qt.Equals, 4) c.Assert(issues[0], qt.Equals, 123) c.Assert(issues[2], qt.Equals, 543) + + bodyNoIssues := ` +This is a commit message without issue refs. + +But it has e #10 to make old regexp confused. +Streets #20. + ` + + emptyIssuesList := extractIssues(bodyNoIssues) + c.Assert(len(emptyIssuesList), qt.Equals, 0) } func TestGitVersionTagBefore(t *testing.T) { |