Some merge requests (e.g. those created for release branches) include
merge commits. Prevent Danger from warning about excessive subject line
length for merge commits. (While the proper way to detect a merge
commit would be to check the 'parents' attribute of a commit object,
Danger Python does not seem to populate that attribute, so a simple
string search is performed on the commit subject instead.)
#
# - WARN if any of the following is true for any commit on the MR branch:
#
-# * The length of the subject line exceeds 72 characters.
+# * The length of the subject line for a non-merge commit exceeds 72
+# characters.
#
# * There is no log message present (i.e. commit only has a subject) and
# the subject line does not contain any of the following strings:
fail('Fixup commits are still present in this merge request. '
'Please squash them before merging.')
fixup_error_logged = True
- if len(subject) > 72:
+ if len(subject) > 72 and not subject.startswith('Merge branch '):
warn(
f'Subject line for commit {commit.sha} is too long: '
f'```{subject}``` ({len(subject)} > 72 characters).'