summaryrefslogtreecommitdiffstats
path: root/gitlint/contrib/rules/conventional_commit.py
diff options
context:
space:
mode:
Diffstat (limited to 'gitlint/contrib/rules/conventional_commit.py')
-rw-r--r--gitlint/contrib/rules/conventional_commit.py37
1 files changed, 0 insertions, 37 deletions
diff --git a/gitlint/contrib/rules/conventional_commit.py b/gitlint/contrib/rules/conventional_commit.py
deleted file mode 100644
index 9c9d5cb..0000000
--- a/gitlint/contrib/rules/conventional_commit.py
+++ /dev/null
@@ -1,37 +0,0 @@
-import re
-
-from gitlint.options import ListOption
-from gitlint.rules import CommitMessageTitle, LineRule, RuleViolation
-
-RULE_REGEX = re.compile(r"([^(]+?)(\([^)]+?\))?!?: .+")
-
-
-class ConventionalCommit(LineRule):
- """ This rule enforces the spec at https://www.conventionalcommits.org/. """
-
- name = "contrib-title-conventional-commits"
- id = "CT1"
- target = CommitMessageTitle
-
- options_spec = [
- ListOption(
- "types",
- ["fix", "feat", "chore", "docs", "style", "refactor", "perf", "test", "revert", "ci", "build"],
- "Comma separated list of allowed commit types.",
- )
- ]
-
- def validate(self, line, _commit):
- violations = []
- match = RULE_REGEX.match(line)
-
- if not match:
- msg = "Title does not follow ConventionalCommits.org format 'type(optional-scope): description'"
- violations.append(RuleViolation(self.id, msg, line))
- else:
- line_commit_type = match.group(1)
- if line_commit_type not in self.options["types"].value:
- opt_str = ', '.join(self.options['types'].value)
- violations.append(RuleViolation(self.id, f"Title does not start with one of {opt_str}", line))
-
- return violations