diff --git a/main.go b/main.go index efc3551b3705f61625a96e7944b5e9a94a131333..faa9ea8921ada510daa13cd59b8c1503e7ddb677 100644 --- a/main.go +++ b/main.go @@ -62,6 +62,10 @@ formatted-commit upgrade -a return err } + if breakingChange && !hasBreakingChangeFooter(body) { + return fmt.Errorf("breaking change flag (-B) requires a BREAKING CHANGE: or CHANGES: footer at the end of the body. It instructs users how to resolve the breaking changes resulting from this commit") + } + var commitMsg strings.Builder commitMsg.WriteString(subject) @@ -164,6 +168,17 @@ func buildAndValidateSubject(commitType, scope, message string, breaking bool) ( return result, nil } +func hasBreakingChangeFooter(body string) bool { + lines := strings.Split(body, "\n") + for _, line := range lines { + trimmed := strings.TrimSpace(line) + if strings.HasPrefix(trimmed, "BREAKING CHANGE:") || strings.HasPrefix(trimmed, "BREAKING CHANGES:") { + return true + } + } + return false +} + func main() { ctx := context.Background()