From 87766a25c6d5286c55320f4747d70e8e3653a885 Mon Sep 17 00:00:00 2001 From: Anas Nashif Date: Tue, 8 Aug 2017 08:36:01 -0400 Subject: [PATCH] gitlint: ignore titles prefixed with Revert The revert commit title is usually prefixed with "Revert" which causes the title to become longer than the allowed limit. Allow such commits to keep revert commits consistent with the original commit message. Signed-off-by: Anas Nashif --- .gitlint | 7 +++---- scripts/gitlint/zephyr_commit_rules.py | 11 +++++++++++ 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/.gitlint b/.gitlint index fa44ba9223c..371355f0b86 100644 --- a/.gitlint +++ b/.gitlint @@ -1,6 +1,6 @@ # All these sections are optional, edit this file as you like. [general] -ignore=title-trailing-punctuation, T3 +ignore=title-trailing-punctuation, T3, title-max-length, T1 # verbosity should be a value between 1 and 3, the commandline -v flags take precedence over this verbosity = 3 # By default gitlint will ignore merge commits. Set to 'false' to disable. @@ -12,13 +12,12 @@ debug = false # See http://jorisroovers.github.io/gitlint/user_defined_rules for details extra-path=scripts/gitlint +[title-max-length-no-revert] +line-length=72 [body-max-line-count] max-line-count=200 -[title-max-length] -line-length=72 - [title-starts-with-subsystem] regex = ^(([^:]+):)(\s([^:]+):)*\s(.+)$ diff --git a/scripts/gitlint/zephyr_commit_rules.py b/scripts/gitlint/zephyr_commit_rules.py index e4664a846a5..dfeb35e13e8 100644 --- a/scripts/gitlint/zephyr_commit_rules.py +++ b/scripts/gitlint/zephyr_commit_rules.py @@ -55,6 +55,17 @@ class SignedOffBy(CommitRule): return return [RuleViolation(self.id, "Body does not contain a 'Signed-Off-By' line", line_nr=1)] +class TitleMaxLengthRevert(LineRule): + name = "title-max-length-no-revert" + id = "UC5" + target = CommitMessageTitle + options_spec = [IntOption('line-length', 72, "Max line length")] + violation_message = "Title exceeds max length ({0}>{1})" + + def validate(self, line, _commit): + max_length = self.options['line-length'].value + if len(line) > max_length and not line.startswith("Revert"): + return [RuleViolation(self.id, self.violation_message.format(len(line), max_length), line)] class TitleStartsWithSubsystem(LineRule): name = "title-starts-with-subsystem"