mirror of
https://github.com/thegeeklab/git-sv.git
synced 2024-11-24 21:20:40 +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")
|
||||
}
|
||||
|
||||
footer := fmt.Sprintf("%s: %s", p.messageCfg.IssueFooterConfig().Key, issue)
|
||||
|
||||
footer := formatIssueFooter(p.messageCfg.IssueFooterConfig(), issue)
|
||||
if !hasFooter(message) {
|
||||
return "\n" + footer, nil
|
||||
}
|
||||
@ -117,6 +116,13 @@ func (p MessageProcessorImpl) Enhance(branch string, message string) (string, er
|
||||
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.
|
||||
func (p MessageProcessorImpl) IssueID(branch string) (string, error) {
|
||||
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 {
|
||||
footer.WriteString("\n")
|
||||
}
|
||||
if p.messageCfg.IssueFooterConfig().UseHash {
|
||||
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))
|
||||
}
|
||||
footer.WriteString(formatIssueFooter(p.messageCfg.IssueFooterConfig(), issue))
|
||||
}
|
||||
|
||||
return header.String(), msg.Body, footer.String()
|
||||
|
@ -15,6 +15,16 @@ var ccfg = CommitMessageConfig{
|
||||
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{
|
||||
Types: []string{"feat", "fix"},
|
||||
Scope: CommitMessageScopeConfig{},
|
||||
@ -139,27 +149,27 @@ func TestMessageProcessorImpl_Validate(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestMessageProcessorImpl_Enhance(t *testing.T) {
|
||||
p := NewMessageProcessor(ccfg, newBranchCfg(false))
|
||||
|
||||
tests := []struct {
|
||||
name string
|
||||
cfg CommitMessageConfig
|
||||
branch string
|
||||
message string
|
||||
want string
|
||||
wantErr bool
|
||||
}{
|
||||
{"issue on branch name", "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 prefix", "feature/JIRA-123", "fix: fix something", "\njira: JIRA-123", false},
|
||||
{"with footer", "JIRA-123", fullMessage, "jira: JIRA-123", false},
|
||||
{"with issue on footer", "JIRA-123", fullMessageWithJira, "", false},
|
||||
{"issue on branch name with prefix and description", "feature/JIRA-123-some-description", "fix: fix something", "\njira: JIRA-123", false},
|
||||
{"no issue on branch name", "branch", "fix: fix something", "", true},
|
||||
{"unexpected branch name", "feature /JIRA-123", "fix: fix something", "", true},
|
||||
{"issue on branch name", ccfg, "JIRA-123", "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", ccfg, "feature/JIRA-123", "fix: fix something", "\njira: JIRA-123", false},
|
||||
{"with footer", ccfg, "JIRA-123", fullMessage, "jira: JIRA-123", false},
|
||||
{"with issue on footer", ccfg, "JIRA-123", fullMessageWithJira, "", 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", ccfg, "branch", "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 {
|
||||
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 {
|
||||
t.Errorf("MessageProcessorImpl.Enhance() error = %v, wantErr %v", err, tt.wantErr)
|
||||
return
|
||||
@ -325,6 +335,8 @@ func TestMessageProcessorImpl_Format(t *testing.T) {
|
||||
}{
|
||||
{"simple message", ccfg, NewCommitMessage("feat", "", "something", "", "", ""), "feat: something", "", ""},
|
||||
{"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 scope", ccfg, NewCommitMessage("feat", "scope", "something", "", "", ""), "feat(scope): something", "", ""},
|
||||
{"with body", ccfg, NewCommitMessage("feat", "", "something", "body", "", ""), "feat: something", "body", ""},
|
||||
|
Loading…
Reference in New Issue
Block a user