Skip to content

Commit a398c15

Browse files
authored
Merge pull request #24 from ArtusC/add-plural-of-messages
feat: add new merge master commit message to be validated
2 parents 83eb060 + eb22507 commit a398c15

File tree

3 files changed

+31
-6
lines changed

3 files changed

+31
-6
lines changed

CHANGELOG.md

+3
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
v2.0.4:
2+
- Added a new commit message to be validated for merge from master to the branch (@artus.andermann)
3+
14
v2.0.3:
25
- Fix IsValidMessage method adding a new exception for merge from master to the branch (@esequiel.virtuoso)
36

src/commit-message/commit_message_manager.go

+24-6
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package commitmessage
33
import (
44
"errors"
55
"fmt"
6+
"regexp"
67
"strings"
78
)
89

@@ -78,17 +79,34 @@ func (f *CommitMessage) PrettifyCommitMessage(commitMessage string) (string, err
7879
func isMergeMasterToBranch(message string) bool {
7980
splitedMessage := strings.Split(strings.ToLower(message), "\n")
8081

82+
mergePatterns := []string{
83+
"'origin/master' into",
84+
"merge branches 'master' into",
85+
"merge branch 'master' into",
86+
"merge branch 'master' of",
87+
"'origin/main' into",
88+
"merge branch 'main' into",
89+
"merge branch 'main' of",
90+
}
91+
92+
mergeRegexPattern := `merge branches '.*' and 'master' of`
93+
re := regexp.MustCompile(mergeRegexPattern)
94+
8195
for _, row := range splitedMessage {
8296
lowerRow := strings.ToLower(row)
83-
if strings.Contains(lowerRow, "'origin/master' into") ||
84-
strings.Contains(lowerRow, "merge branch 'master' into") ||
85-
strings.Contains(lowerRow, "merge branch 'master' of") ||
86-
strings.Contains(lowerRow, "'origin/main' into") ||
87-
strings.Contains(lowerRow, "merge branch 'main' into") ||
88-
strings.Contains(lowerRow, "merge branch 'main' of") {
97+
98+
found := re.MatchString(lowerRow)
99+
if found {
89100
return true
90101
}
102+
103+
for _, pattern := range mergePatterns {
104+
if strings.Contains(lowerRow, pattern) {
105+
return true
106+
}
107+
}
91108
}
109+
92110
return false
93111
}
94112

src/commit-message/commit_message_manager_test.go

+4
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,10 @@ func TestIsValidMessageSuccess(t *testing.T) {
5959
actual := f.commitMessageManager.IsValidMessage(message)
6060
tests.AssertTrue(t, actual)
6161

62+
message = "Merge branches 'sample-branch' and 'master' of ssh://gitlab.lalala/j/dv into sample-branch"
63+
actual = f.commitMessageManager.IsValidMessage(message)
64+
tests.AssertTrue(t, actual)
65+
6266
message = "feat(scope): This is a message"
6367
actual = f.commitMessageManager.IsValidMessage(message)
6468
tests.AssertTrue(t, actual)

0 commit comments

Comments
 (0)