gitlint: Ignore signed-off-by line

When checking for line length limits, ignore lines with Signed-off-by.
Some developers have a long name that would not fit within the limits.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
This commit is contained in:
Anas Nashif 2017-06-06 08:50:11 -04:00 committed by Anas Nashif
commit b520075788
2 changed files with 14 additions and 2 deletions

View file

@ -35,7 +35,7 @@ words=wip,title
# (e.g. title-must-not-contain-word). # (e.g. title-must-not-contain-word).
#regex=^US[0-9]* #regex=^US[0-9]*
[B1] [max-line-length-with-exceptions]
# B1 = body-max-line-length # B1 = body-max-line-length
line-length=72 line-length=72

View file

@ -1,4 +1,4 @@
from gitlint.rules import CommitRule, RuleViolation, TitleRegexMatches, CommitMessageTitle, LineRule from gitlint.rules import CommitRule, RuleViolation, TitleRegexMatches, CommitMessageTitle, LineRule, CommitMessageBody
from gitlint.options import IntOption, BoolOption, StrOption, ListOption from gitlint.options import IntOption, BoolOption, StrOption, ListOption
import re import re
@ -68,3 +68,15 @@ class TitleStartsWithSubsystem(LineRule):
violation_message = "Title does not follow <subsystem>: <subject>" violation_message = "Title does not follow <subsystem>: <subject>"
if not pattern.search(title): if not pattern.search(title):
return [RuleViolation(self.id, violation_message, title)] return [RuleViolation(self.id, violation_message, title)]
class MaxLineLengthExceptions(LineRule):
name = "max-line-length-with-exceptions"
id = "UC4"
target = CommitMessageBody
options_spec = [IntOption('line-length', 80, "Max line length")]
violation_message = "Line 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('Signed-off-by'):
return [RuleViolation(self.id, self.violation_message.format(len(line), max_length), line)]