* Fix regex for issues in commit messages Use same regex as markup for matching in commits. Fixes #7438 * make fmttags/v1.10.0-rc1
@@ -65,6 +65,7 @@ var ( | |||
) | |||
const issueRefRegexpStr = `(?:([0-9a-zA-Z-_\.]+)/([0-9a-zA-Z-_\.]+))?(#[0-9]+)+` | |||
const issueRefRegexpStrNoKeyword = `(?:\s|^|\(|\[)(?:([0-9a-zA-Z-_\.]+)/([0-9a-zA-Z-_\.]+))?(#[0-9]+)(?:\s|$|\)|\]|\.(\s|$))` | |||
func assembleKeywordsPattern(words []string) string { | |||
return fmt.Sprintf(`(?i)(?:%s)(?::?) %s`, strings.Join(words, "|"), issueRefRegexpStr) | |||
@@ -73,7 +74,7 @@ func assembleKeywordsPattern(words []string) string { | |||
func init() { | |||
issueCloseKeywordsPat = regexp.MustCompile(assembleKeywordsPattern(issueCloseKeywords)) | |||
issueReopenKeywordsPat = regexp.MustCompile(assembleKeywordsPattern(issueReopenKeywords)) | |||
issueReferenceKeywordsPat = regexp.MustCompile(issueRefRegexpStr) | |||
issueReferenceKeywordsPat = regexp.MustCompile(issueRefRegexpStrNoKeyword) | |||
} | |||
// Action represents user operation type and other information to |
@@ -155,6 +155,25 @@ func TestPushCommits_AvatarLink(t *testing.T) { | |||
pushCommits.AvatarLink("nonexistent@example.com")) | |||
} | |||
func TestRegExp_issueReferenceKeywordsPat(t *testing.T) { | |||
trueTestCases := []string{ | |||
"#2", | |||
"[#2]", | |||
"please see go-gitea/gitea#5", | |||
} | |||
falseTestCases := []string{ | |||
"kb#2", | |||
"#2xy", | |||
} | |||
for _, testCase := range trueTestCases { | |||
assert.True(t, issueReferenceKeywordsPat.MatchString(testCase)) | |||
} | |||
for _, testCase := range falseTestCases { | |||
assert.False(t, issueReferenceKeywordsPat.MatchString(testCase)) | |||
} | |||
} | |||
func Test_getIssueFromRef(t *testing.T) { | |||
assert.NoError(t, PrepareTestDatabase()) | |||
repo := AssertExistsAndLoadBean(t, &Repository{ID: 1}).(*Repository) |