Merge pull request #43 from zeroshade/breaking

fix(internal/angular): fix angular parsing of breaking change messages that have multiple lines
This commit is contained in:
Sebastian
2020-07-28 21:13:58 +02:00
committed by GitHub
2 changed files with 50 additions and 3 deletions

View File

@@ -22,7 +22,7 @@ const ANGULAR = "angular"
func newAngular() *angular { func newAngular() *angular {
return &angular{ return &angular{
regex: `^(TAG)(?:\((.*)\))?: (.*)`, regex: `^(TAG)(?:\((.*)\))?: (?s)(.*)`,
log: log.WithField("analyzer", ANGULAR), log: log.WithField("analyzer", ANGULAR),
rules: []Rule{ rules: []Rule{
{ {
@@ -105,8 +105,8 @@ func (a *angular) analyze(commit shared.Commit, rule Rule) (shared.AnalyzedCommi
} }
breakingChange := strings.SplitN(message, "BREAKING CHANGE:", 2) breakingChange := strings.SplitN(message, "BREAKING CHANGE:", 2)
analyzed.ParsedMessage = strings.Trim(breakingChange[0], " ") analyzed.ParsedMessage = strings.TrimSpace(breakingChange[0])
analyzed.ParsedBreakingChangeMessage = strings.Trim(breakingChange[1], " ") analyzed.ParsedBreakingChangeMessage = strings.TrimSpace(breakingChange[1])
a.log.Tracef(" %s, BREAKING CHANGE found", commit.Message) a.log.Tracef(" %s, BREAKING CHANGE found", commit.Message)
return analyzed, true, nil return analyzed, true, nil

View File

@@ -93,6 +93,53 @@ func TestAngular(t *testing.T) {
}, },
}, },
}, },
{ testCase: "feat breaking change footer",
commits: []shared.Commit{
shared.Commit{
Message: "feat(internal/changelog): my first commit",
Author: "me",
Hash: "12345667",
},
shared.Commit{
Message: "feat(internal/changelog): my first break \n\nBREAKING CHANGE: change api to v2\n",
Author: "me",
Hash: "12345668",
},
},
analyzedCommits: map[shared.Release][]shared.AnalyzedCommit{
"minor": []shared.AnalyzedCommit{
shared.AnalyzedCommit{
Commit: shared.Commit{
Message: "feat(internal/changelog): my first commit",
Author: "me",
Hash: "12345667",
},
Scope: "internal/changelog",
ParsedMessage: "my first commit",
Tag: "feat",
TagString: "Features",
Print: true,
},
},
"major": []shared.AnalyzedCommit{
shared.AnalyzedCommit{
Commit: shared.Commit{
Message: "feat(internal/changelog): my first break \n\nBREAKING CHANGE: change api to v2\n",
Author: "me",
Hash: "12345668",
},
Scope: "internal/changelog",
ParsedMessage: "my first break",
Tag: "feat",
TagString: "Features",
Print: true,
ParsedBreakingChangeMessage: "change api to v2",
},
},
"patch": []shared.AnalyzedCommit{},
"none": []shared.AnalyzedCommit{},
},
},
{ {
testCase: "invalid", testCase: "invalid",
analyzedCommits: map[shared.Release][]shared.AnalyzedCommit{ analyzedCommits: map[shared.Release][]shared.AnalyzedCommit{