From cf84dc3113b51c0dff99e132b6a0f83455f5b36b Mon Sep 17 00:00:00 2001 From: Esequiel Virtuoso Date: Mon, 11 Mar 2024 09:41:02 -0300 Subject: [PATCH 1/2] fix(commit-lint): Fix IsValidMessage method to skip commit lint when the message is a merge from master to a developer branch. --- CHANGELOG.md | 7 +++++++ cmd/semantic-release/semantic-release.go | 1 + src/commit-message/commit_message_manager.go | 15 +++++++++++++++ src/commit-message/commit_message_manager_test.go | 7 +++++++ src/commit-type/commit_type.go | 4 ++-- src/commit-type/commit_type_test.go | 4 ++-- 6 files changed, 34 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4af768c..2f26142 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +v2.0.1: + - Fix IsValidMessage method to skip commit lint when the message is a merge from master to a developer branch. (@esequiel.virtuoso) + - Add chore option. (@esequiel.virtuoso) + +v2.0.0: + - Change semantic-release message pattern to 'type(scope?): message here'. (@esequiel.virtuoso) + v1.0.5 - Fix isSetNewVersion function logic (@esequiel.virtuoso) diff --git a/cmd/semantic-release/semantic-release.go b/cmd/semantic-release/semantic-release.go index 8b14b2c..1a7e50f 100644 --- a/cmd/semantic-release/semantic-release.go +++ b/cmd/semantic-release/semantic-release.go @@ -183,6 +183,7 @@ func printCommitTypes() { fmt.Println(colorYellow + "\t* [refactor]" + colorReset + ": A code change that neither fixes a bug nor adds a feature") fmt.Println(colorYellow + "\t* [style]" + colorReset + ": Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)") fmt.Println(colorYellow + "\t* [test]" + colorReset + ": Adding missing tests or correcting existing tests") + fmt.Println(colorYellow + "\t* [chore]" + colorReset + ": No production code change. It won't release a new version.") fmt.Println(colorYellow + "\t* [skip]" + colorReset + ": Skip versioning") fmt.Println(colorYellow + "\t* [bc]" + colorReset + ": Changes that will require other changes in dependant applications") fmt.Println(colorYellow + "\t* [breaking]" + colorReset + ": ||") diff --git a/src/commit-message/commit_message_manager.go b/src/commit-message/commit_message_manager.go index 1a6298a..30863d5 100644 --- a/src/commit-message/commit_message_manager.go +++ b/src/commit-message/commit_message_manager.go @@ -75,7 +75,22 @@ func (f *CommitMessage) PrettifyCommitMessage(commitMessage string) (string, err return f.upperFirstLetterOfSentence(message), nil } +func isMergeMasterBranch(message string) bool { + splitedMessage := strings.Split(strings.ToLower(message), "\n") + + for _, row := range splitedMessage { + if strings.Contains(row, "'origin/master' into") { + return true + } + } + return false +} + func (f *CommitMessage) IsValidMessage(message string) bool { + if isMergeMasterBranch(message) { + return true + } + index := strings.Index(message, ":") if f.commitType.IndexNotFound(index) { diff --git a/src/commit-message/commit_message_manager_test.go b/src/commit-message/commit_message_manager_test.go index c935057..ed648f3 100644 --- a/src/commit-message/commit_message_manager_test.go +++ b/src/commit-message/commit_message_manager_test.go @@ -94,3 +94,10 @@ func TestIsValidMessageFalse(t *testing.T) { actual = f.commitMessageManager.IsValidMessage(message) tests.AssertFalse(t, actual) } + +func TestIsValidMessageMergeMasterBranchSuccess(t *testing.T) { + f := setup(t) + message := "first message row \n Merge remote-tracking branch 'origin/master' into something \n last message row" + actual := f.commitMessageManager.IsValidMessage(message) + tests.AssertTrue(t, actual) +} diff --git a/src/commit-type/commit_type.go b/src/commit-type/commit_type.go index 93f6e77..e9416b0 100644 --- a/src/commit-type/commit_type.go +++ b/src/commit-type/commit_type.go @@ -15,7 +15,7 @@ type CommitType struct { } func (c *CommitType) GetAll() []string { - return []string{"build", "ci", "docs", "fix", "feat", "feature", "feature", "perf", "performance", "refactor", "style", "test", "bc", "breaking", "breaking change", "skip"} + return []string{"build", "ci", "docs", "fix", "feat", "feature", "feature", "perf", "performance", "refactor", "style", "test", "bc", "breaking", "breaking change", "chore", "skip"} } func (c *CommitType) GetMajorUpgrade() []string { @@ -31,7 +31,7 @@ func (c *CommitType) GetPatchUpgrade() []string { } func (c *CommitType) GetSkipVersioning() []string { - return []string{"skip"} + return []string{"skip", "chore"} } func (c *CommitType) isValidCommitType(commitTypeScope string) bool { diff --git a/src/commit-type/commit_type_test.go b/src/commit-type/commit_type_test.go index b55c44d..86186c5 100644 --- a/src/commit-type/commit_type_test.go +++ b/src/commit-type/commit_type_test.go @@ -27,7 +27,7 @@ func setup(t *testing.T) *fixture { func TestGetAll(t *testing.T) { f := setup(t) - expected := []string{"build", "ci", "docs", "fix", "feat", "feature", "feature", "perf", "performance", "refactor", "style", "test", "bc", "breaking", "breaking change", "skip"} + expected := []string{"build", "ci", "docs", "fix", "feat", "feature", "feature", "perf", "performance", "refactor", "style", "test", "bc", "breaking", "breaking change", "chore", "skip"} actual := f.commitType.GetAll() tests.AssertDeepEqualValues(t, expected, actual) @@ -59,7 +59,7 @@ func TestGetPatchUpgrade(t *testing.T) { func TestGetSkipVersioning(t *testing.T) { f := setup(t) - expected := []string{"skip"} + expected := []string{"skip", "chore"} actual := f.commitType.GetSkipVersioning() tests.AssertDeepEqualValues(t, expected, actual) From 273ca2a2982b41ceb763cf1fa626a4d72ecb56bf Mon Sep 17 00:00:00 2001 From: Esequiel Virtuoso Date: Mon, 11 Mar 2024 10:31:26 -0300 Subject: [PATCH 2/2] fix: improve function name --- src/commit-message/commit_message_manager.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/commit-message/commit_message_manager.go b/src/commit-message/commit_message_manager.go index 30863d5..0987272 100644 --- a/src/commit-message/commit_message_manager.go +++ b/src/commit-message/commit_message_manager.go @@ -75,7 +75,7 @@ func (f *CommitMessage) PrettifyCommitMessage(commitMessage string) (string, err return f.upperFirstLetterOfSentence(message), nil } -func isMergeMasterBranch(message string) bool { +func isMergeMasterToBranch(message string) bool { splitedMessage := strings.Split(strings.ToLower(message), "\n") for _, row := range splitedMessage { @@ -87,7 +87,7 @@ func isMergeMasterBranch(message string) bool { } func (f *CommitMessage) IsValidMessage(message string) bool { - if isMergeMasterBranch(message) { + if isMergeMasterToBranch(message) { return true }