0
0
mirror of https://github.com/thegeeklab/git-sv.git synced 2024-11-25 07:30:38 +00:00

refactor: rename ValidateMessageProcessor to MessageProcessor

This commit is contained in:
Beatriz Vieira 2020-12-01 23:52:15 -03:00
parent 9947c06b72
commit 8ea624efa3
4 changed files with 27 additions and 27 deletions

View File

@ -189,7 +189,7 @@ func tagHandler(git sv.Git, semverProcessor sv.SemVerCommitsProcessor) func(c *c
} }
} }
func commitHandler(cfg Config, git sv.Git, messageProcessor sv.ValidateMessageProcessor) func(c *cli.Context) error { func commitHandler(cfg Config, git sv.Git, messageProcessor sv.MessageProcessor) func(c *cli.Context) error {
return func(c *cli.Context) error { return func(c *cli.Context) error {
ctype, err := promptType() ctype, err := promptType()
@ -294,10 +294,10 @@ func changelogHandler(git sv.Git, semverProcessor sv.SemVerCommitsProcessor, rnP
} }
} }
func validateCommitMessageHandler(git sv.Git, validateMessageProcessor sv.ValidateMessageProcessor) func(c *cli.Context) error { func validateCommitMessageHandler(git sv.Git, messageProcessor sv.MessageProcessor) func(c *cli.Context) error {
return func(c *cli.Context) error { return func(c *cli.Context) error {
branch := git.Branch() branch := git.Branch()
if validateMessageProcessor.SkipBranch(branch) { if messageProcessor.SkipBranch(branch) {
warn("commit message validation skipped, branch in ignore list...") warn("commit message validation skipped, branch in ignore list...")
return nil return nil
} }
@ -309,11 +309,11 @@ func validateCommitMessageHandler(git sv.Git, validateMessageProcessor sv.Valida
return fmt.Errorf("failed to read commit message, error: %s", err.Error()) return fmt.Errorf("failed to read commit message, error: %s", err.Error())
} }
if err := validateMessageProcessor.Validate(commitMessage); err != nil { if err := messageProcessor.Validate(commitMessage); err != nil {
return fmt.Errorf("invalid commit message, error: %s", err.Error()) return fmt.Errorf("invalid commit message, error: %s", err.Error())
} }
msg, err := validateMessageProcessor.Enhance(branch, commitMessage) msg, err := messageProcessor.Enhance(branch, commitMessage)
if err != nil { if err != nil {
warn("could not enhance commit message, %s", err.Error()) warn("could not enhance commit message, %s", err.Error())
return nil return nil

View File

@ -23,7 +23,7 @@ func main() {
semverProcessor := sv.NewSemVerCommitsProcessor(cfg.IncludeUnknownTypeAsPatch, cfg.MajorVersionTypes, cfg.MinorVersionTypes, cfg.PatchVersionTypes) semverProcessor := sv.NewSemVerCommitsProcessor(cfg.IncludeUnknownTypeAsPatch, cfg.MajorVersionTypes, cfg.MinorVersionTypes, cfg.PatchVersionTypes)
releasenotesProcessor := sv.NewReleaseNoteProcessor(cfg.ReleaseNotesTags) releasenotesProcessor := sv.NewReleaseNoteProcessor(cfg.ReleaseNotesTags)
outputFormatter := sv.NewOutputFormatter() outputFormatter := sv.NewOutputFormatter()
validateMessageProcessor := sv.NewValidateMessageProcessor(cfg.ValidateMessageSkipBranches, cfg.CommitMessageTypes, cfg.IssueKeyName, cfg.BranchIssueRegex, cfg.IssueRegex) messageProcessor := sv.NewMessageProcessor(cfg.ValidateMessageSkipBranches, cfg.CommitMessageTypes, cfg.IssueKeyName, cfg.BranchIssueRegex, cfg.IssueRegex)
app := cli.NewApp() app := cli.NewApp()
app.Name = "sv" app.Name = "sv"
@ -76,13 +76,13 @@ func main() {
Name: "commit", Name: "commit",
Aliases: []string{"cmt"}, Aliases: []string{"cmt"},
Usage: "execute git commit with convetional commit message helper", Usage: "execute git commit with convetional commit message helper",
Action: commitHandler(cfg, git, validateMessageProcessor), Action: commitHandler(cfg, git, messageProcessor),
}, },
{ {
Name: "validate-commit-message", Name: "validate-commit-message",
Aliases: []string{"vcm"}, Aliases: []string{"vcm"},
Usage: "use as prepare-commit-message hook to validate message", Usage: "use as prepare-commit-message hook to validate message",
Action: validateCommitMessageHandler(git, validateMessageProcessor), Action: validateCommitMessageHandler(git, messageProcessor),
Flags: []cli.Flag{ Flags: []cli.Flag{
&cli.StringFlag{Name: "path", Required: true, Usage: "git working directory"}, &cli.StringFlag{Name: "path", Required: true, Usage: "git working directory"},
&cli.StringFlag{Name: "file", Required: true, Usage: "name of the file that contains the commit log message"}, &cli.StringFlag{Name: "file", Required: true, Usage: "name of the file that contains the commit log message"},

View File

@ -9,8 +9,8 @@ import (
const breakingChangeKey = "BREAKING CHANGE" const breakingChangeKey = "BREAKING CHANGE"
// ValidateMessageProcessor interface. // MessageProcessor interface.
type ValidateMessageProcessor interface { type MessageProcessor interface {
SkipBranch(branch string) bool SkipBranch(branch string) bool
Validate(message string) error Validate(message string) error
Enhance(branch string, message string) (string, error) Enhance(branch string, message string) (string, error)
@ -18,9 +18,9 @@ type ValidateMessageProcessor interface {
Format(ctype, scope, subject, body, issue, breakingChanges string) (string, string, string) Format(ctype, scope, subject, body, issue, breakingChanges string) (string, string, string)
} }
// NewValidateMessageProcessor ValidateMessageProcessorImpl constructor // NewMessageProcessor MessageProcessorImpl constructor
func NewValidateMessageProcessor(skipBranches, supportedTypes []string, issueKeyName, branchIssueRegex, issueRegex string) *ValidateMessageProcessorImpl { func NewMessageProcessor(skipBranches, supportedTypes []string, issueKeyName, branchIssueRegex, issueRegex string) *MessageProcessorImpl {
return &ValidateMessageProcessorImpl{ return &MessageProcessorImpl{
skipBranches: skipBranches, skipBranches: skipBranches,
supportedTypes: supportedTypes, supportedTypes: supportedTypes,
issueKeyName: issueKeyName, issueKeyName: issueKeyName,
@ -29,8 +29,8 @@ func NewValidateMessageProcessor(skipBranches, supportedTypes []string, issueKey
} }
} }
// ValidateMessageProcessorImpl process validate message hook. // MessageProcessorImpl process validate message hook.
type ValidateMessageProcessorImpl struct { type MessageProcessorImpl struct {
skipBranches []string skipBranches []string
supportedTypes []string supportedTypes []string
issueKeyName string issueKeyName string
@ -39,12 +39,12 @@ type ValidateMessageProcessorImpl struct {
} }
// SkipBranch check if branch should be ignored. // SkipBranch check if branch should be ignored.
func (p ValidateMessageProcessorImpl) SkipBranch(branch string) bool { func (p MessageProcessorImpl) SkipBranch(branch string) bool {
return contains(branch, p.skipBranches) return contains(branch, p.skipBranches)
} }
// Validate commit message. // Validate commit message.
func (p ValidateMessageProcessorImpl) Validate(message string) error { func (p MessageProcessorImpl) Validate(message string) error {
valid, err := regexp.MatchString("^("+strings.Join(p.supportedTypes, "|")+")(\\(.+\\))?!?: .*$", firstLine(message)) valid, err := regexp.MatchString("^("+strings.Join(p.supportedTypes, "|")+")(\\(.+\\))?!?: .*$", firstLine(message))
if err != nil { if err != nil {
return err return err
@ -56,7 +56,7 @@ func (p ValidateMessageProcessorImpl) Validate(message string) error {
} }
// Enhance add metadata on commit message. // Enhance add metadata on commit message.
func (p ValidateMessageProcessorImpl) Enhance(branch string, message string) (string, error) { func (p MessageProcessorImpl) Enhance(branch string, message string) (string, error) {
if p.branchIssueRegex == "" || p.issueKeyName == "" || hasIssueID(message, p.issueKeyName) { if p.branchIssueRegex == "" || p.issueKeyName == "" || hasIssueID(message, p.issueKeyName) {
return "", nil //enhance disabled return "", nil //enhance disabled
} }
@ -79,7 +79,7 @@ func (p ValidateMessageProcessorImpl) Enhance(branch string, message string) (st
} }
// 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 ValidateMessageProcessorImpl) IssueID(branch string) (string, error) { func (p MessageProcessorImpl) IssueID(branch string) (string, error) {
r, err := regexp.Compile(p.branchIssueRegex) r, err := regexp.Compile(p.branchIssueRegex)
if err != nil { if err != nil {
return "", fmt.Errorf("could not compile issue regex: %s, error: %v", p.branchIssueRegex, err.Error()) return "", fmt.Errorf("could not compile issue regex: %s, error: %v", p.branchIssueRegex, err.Error())
@ -93,7 +93,7 @@ func (p ValidateMessageProcessorImpl) IssueID(branch string) (string, error) {
} }
// Format format commit message to header, body and footer // Format format commit message to header, body and footer
func (p ValidateMessageProcessorImpl) Format(ctype, scope, subject, body, issue, breakingChanges string) (string, string, string) { func (p MessageProcessorImpl) Format(ctype, scope, subject, body, issue, breakingChanges string) (string, string, string) {
var header strings.Builder var header strings.Builder
header.WriteString(ctype) header.WriteString(ctype)
if scope != "" { if scope != "" {

View File

@ -45,8 +45,8 @@ BREAKING CHANGE: refactor to use JavaScript features not available in Node 6.`
// multiline samples end // multiline samples end
func TestValidateMessageProcessorImpl_Validate(t *testing.T) { func TestMessageProcessorImpl_Validate(t *testing.T) {
p := NewValidateMessageProcessor([]string{"develop", "master"}, []string{"feat", "fix"}, "jira", branchIssueRegex, issueRegex) p := NewMessageProcessor([]string{"develop", "master"}, []string{"feat", "fix"}, "jira", branchIssueRegex, issueRegex)
tests := []struct { tests := []struct {
name string name string
@ -72,14 +72,14 @@ func TestValidateMessageProcessorImpl_Validate(t *testing.T) {
for _, tt := range tests { for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) { t.Run(tt.name, func(t *testing.T) {
if err := p.Validate(tt.message); (err != nil) != tt.wantErr { if err := p.Validate(tt.message); (err != nil) != tt.wantErr {
t.Errorf("ValidateMessageProcessorImpl.Validate() error = %v, wantErr %v", err, tt.wantErr) t.Errorf("MessageProcessorImpl.Validate() error = %v, wantErr %v", err, tt.wantErr)
} }
}) })
} }
} }
func TestValidateMessageProcessorImpl_Enhance(t *testing.T) { func TestMessageProcessorImpl_Enhance(t *testing.T) {
p := NewValidateMessageProcessor([]string{"develop", "master"}, []string{"feat", "fix"}, "jira", branchIssueRegex, issueRegex) p := NewMessageProcessor([]string{"develop", "master"}, []string{"feat", "fix"}, "jira", branchIssueRegex, issueRegex)
tests := []struct { tests := []struct {
name string name string
@ -101,11 +101,11 @@ func TestValidateMessageProcessorImpl_Enhance(t *testing.T) {
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 := p.Enhance(tt.branch, tt.message)
if (err != nil) != tt.wantErr { if (err != nil) != tt.wantErr {
t.Errorf("ValidateMessageProcessorImpl.Enhance() error = %v, wantErr %v", err, tt.wantErr) t.Errorf("MessageProcessorImpl.Enhance() error = %v, wantErr %v", err, tt.wantErr)
return return
} }
if got != tt.want { if got != tt.want {
t.Errorf("ValidateMessageProcessorImpl.Enhance() = %v, want %v", got, tt.want) t.Errorf("MessageProcessorImpl.Enhance() = %v, want %v", got, tt.want)
} }
}) })
} }