mirror of
https://github.com/thegeeklab/git-sv.git
synced 2024-11-21 22:10:39 +00:00
fix: use use-hash config when enhancing commit message
This commit is contained in:
parent
c4964d7531
commit
a8139b4b26
@ -108,8 +108,7 @@ func (p MessageProcessorImpl) Enhance(branch string, message string) (string, er
|
|||||||
return "", fmt.Errorf("could not find issue id using configured regex")
|
return "", fmt.Errorf("could not find issue id using configured regex")
|
||||||
}
|
}
|
||||||
|
|
||||||
footer := fmt.Sprintf("%s: %s", p.messageCfg.IssueFooterConfig().Key, issue)
|
footer := formatIssueFooter(p.messageCfg.IssueFooterConfig(), issue)
|
||||||
|
|
||||||
if !hasFooter(message) {
|
if !hasFooter(message) {
|
||||||
return "\n" + footer, nil
|
return "\n" + footer, nil
|
||||||
}
|
}
|
||||||
@ -117,6 +116,13 @@ func (p MessageProcessorImpl) Enhance(branch string, message string) (string, er
|
|||||||
return footer, nil
|
return footer, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func formatIssueFooter(cfg CommitMessageFooterConfig, issue string) string {
|
||||||
|
if cfg.UseHash {
|
||||||
|
return fmt.Sprintf("%s #%s", cfg.Key, strings.TrimPrefix(issue, "#"))
|
||||||
|
}
|
||||||
|
return fmt.Sprintf("%s: %s", cfg.Key, issue)
|
||||||
|
}
|
||||||
|
|
||||||
// IssueID try to extract issue id from branch, return empty if not found.
|
// IssueID try to extract issue id from branch, return empty if not found.
|
||||||
func (p MessageProcessorImpl) IssueID(branch string) (string, error) {
|
func (p MessageProcessorImpl) IssueID(branch string) (string, error) {
|
||||||
if p.branchesCfg.DisableIssue || p.messageCfg.Issue.Regex == "" {
|
if p.branchesCfg.DisableIssue || p.messageCfg.Issue.Regex == "" {
|
||||||
@ -154,11 +160,7 @@ func (p MessageProcessorImpl) Format(msg CommitMessage) (string, string, string)
|
|||||||
if footer.Len() > 0 {
|
if footer.Len() > 0 {
|
||||||
footer.WriteString("\n")
|
footer.WriteString("\n")
|
||||||
}
|
}
|
||||||
if p.messageCfg.IssueFooterConfig().UseHash {
|
footer.WriteString(formatIssueFooter(p.messageCfg.IssueFooterConfig(), issue))
|
||||||
footer.WriteString(fmt.Sprintf("%s #%s", p.messageCfg.IssueFooterConfig().Key, strings.TrimPrefix(issue, "#")))
|
|
||||||
} else {
|
|
||||||
footer.WriteString(fmt.Sprintf("%s: %s", p.messageCfg.IssueFooterConfig().Key, issue))
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return header.String(), msg.Body, footer.String()
|
return header.String(), msg.Body, footer.String()
|
||||||
|
@ -15,6 +15,16 @@ var ccfg = CommitMessageConfig{
|
|||||||
Issue: CommitMessageIssueConfig{Regex: "[A-Z]+-[0-9]+"},
|
Issue: CommitMessageIssueConfig{Regex: "[A-Z]+-[0-9]+"},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var ccfgHash = CommitMessageConfig{
|
||||||
|
Types: []string{"feat", "fix"},
|
||||||
|
Scope: CommitMessageScopeConfig{},
|
||||||
|
Footer: map[string]CommitMessageFooterConfig{
|
||||||
|
"issue": {Key: "jira", KeySynonyms: []string{"Jira"}, UseHash: true},
|
||||||
|
"refs": {Key: "Refs", UseHash: true},
|
||||||
|
},
|
||||||
|
Issue: CommitMessageIssueConfig{Regex: "[A-Z]+-[0-9]+"},
|
||||||
|
}
|
||||||
|
|
||||||
var ccfgEmptyIssue = CommitMessageConfig{
|
var ccfgEmptyIssue = CommitMessageConfig{
|
||||||
Types: []string{"feat", "fix"},
|
Types: []string{"feat", "fix"},
|
||||||
Scope: CommitMessageScopeConfig{},
|
Scope: CommitMessageScopeConfig{},
|
||||||
@ -139,27 +149,27 @@ func TestMessageProcessorImpl_Validate(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestMessageProcessorImpl_Enhance(t *testing.T) {
|
func TestMessageProcessorImpl_Enhance(t *testing.T) {
|
||||||
p := NewMessageProcessor(ccfg, newBranchCfg(false))
|
|
||||||
|
|
||||||
tests := []struct {
|
tests := []struct {
|
||||||
name string
|
name string
|
||||||
|
cfg CommitMessageConfig
|
||||||
branch string
|
branch string
|
||||||
message string
|
message string
|
||||||
want string
|
want string
|
||||||
wantErr bool
|
wantErr bool
|
||||||
}{
|
}{
|
||||||
{"issue on branch name", "JIRA-123", "fix: fix something", "\njira: JIRA-123", false},
|
{"issue on branch name", ccfg, "JIRA-123", "fix: fix something", "\njira: JIRA-123", false},
|
||||||
{"issue on branch name with description", "JIRA-123-some-description", "fix: fix something", "\njira: JIRA-123", false},
|
{"issue on branch name with description", ccfg, "JIRA-123-some-description", "fix: fix something", "\njira: JIRA-123", false},
|
||||||
{"issue on branch name with prefix", "feature/JIRA-123", "fix: fix something", "\njira: JIRA-123", false},
|
{"issue on branch name with prefix", ccfg, "feature/JIRA-123", "fix: fix something", "\njira: JIRA-123", false},
|
||||||
{"with footer", "JIRA-123", fullMessage, "jira: JIRA-123", false},
|
{"with footer", ccfg, "JIRA-123", fullMessage, "jira: JIRA-123", false},
|
||||||
{"with issue on footer", "JIRA-123", fullMessageWithJira, "", false},
|
{"with issue on footer", ccfg, "JIRA-123", fullMessageWithJira, "", false},
|
||||||
{"issue on branch name with prefix and description", "feature/JIRA-123-some-description", "fix: fix something", "\njira: JIRA-123", false},
|
{"issue on branch name with prefix and description", ccfg, "feature/JIRA-123-some-description", "fix: fix something", "\njira: JIRA-123", false},
|
||||||
{"no issue on branch name", "branch", "fix: fix something", "", true},
|
{"no issue on branch name", ccfg, "branch", "fix: fix something", "", true},
|
||||||
{"unexpected branch name", "feature /JIRA-123", "fix: fix something", "", true},
|
{"unexpected branch name", ccfg, "feature /JIRA-123", "fix: fix something", "", true},
|
||||||
|
{"issue on branch name using hash", ccfgHash, "JIRA-123-some-description", "fix: fix something", "\njira #JIRA-123", false},
|
||||||
}
|
}
|
||||||
for _, tt := range tests {
|
for _, tt := range tests {
|
||||||
t.Run(tt.name, func(t *testing.T) {
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
got, err := p.Enhance(tt.branch, tt.message)
|
got, err := NewMessageProcessor(tt.cfg, newBranchCfg(false)).Enhance(tt.branch, tt.message)
|
||||||
if (err != nil) != tt.wantErr {
|
if (err != nil) != tt.wantErr {
|
||||||
t.Errorf("MessageProcessorImpl.Enhance() error = %v, wantErr %v", err, tt.wantErr)
|
t.Errorf("MessageProcessorImpl.Enhance() error = %v, wantErr %v", err, tt.wantErr)
|
||||||
return
|
return
|
||||||
@ -325,6 +335,8 @@ func TestMessageProcessorImpl_Format(t *testing.T) {
|
|||||||
}{
|
}{
|
||||||
{"simple message", ccfg, NewCommitMessage("feat", "", "something", "", "", ""), "feat: something", "", ""},
|
{"simple message", ccfg, NewCommitMessage("feat", "", "something", "", "", ""), "feat: something", "", ""},
|
||||||
{"with issue", ccfg, NewCommitMessage("feat", "", "something", "", "JIRA-123", ""), "feat: something", "", "jira: JIRA-123"},
|
{"with issue", ccfg, NewCommitMessage("feat", "", "something", "", "JIRA-123", ""), "feat: something", "", "jira: JIRA-123"},
|
||||||
|
{"with issue using hash", ccfgHash, NewCommitMessage("feat", "", "something", "", "JIRA-123", ""), "feat: something", "", "jira #JIRA-123"},
|
||||||
|
{"with issue using double hash", ccfgHash, NewCommitMessage("feat", "", "something", "", "#JIRA-123", ""), "feat: something", "", "jira #JIRA-123"},
|
||||||
{"with breaking change", ccfg, NewCommitMessage("feat", "", "something", "", "", "breaks"), "feat: something", "", "BREAKING CHANGE: breaks"},
|
{"with breaking change", ccfg, NewCommitMessage("feat", "", "something", "", "", "breaks"), "feat: something", "", "BREAKING CHANGE: breaks"},
|
||||||
{"with scope", ccfg, NewCommitMessage("feat", "scope", "something", "", "", ""), "feat(scope): something", "", ""},
|
{"with scope", ccfg, NewCommitMessage("feat", "scope", "something", "", "", ""), "feat(scope): something", "", ""},
|
||||||
{"with body", ccfg, NewCommitMessage("feat", "", "something", "body", "", ""), "feat: something", "body", ""},
|
{"with body", ccfg, NewCommitMessage("feat", "", "something", "body", "", ""), "feat: something", "body", ""},
|
||||||
|
Loading…
Reference in New Issue
Block a user