Danger: Allow fixup commits if squash enabled or MR is WIP

This commit is contained in:
Elan Ruusamäe 2019-09-10 14:49:19 +00:00 committed by Nick Thomas
parent 6a0d160f07
commit 634e65e98d
1 changed files with 28 additions and 1 deletions

View File

@ -88,9 +88,36 @@ def lint_commit(commit) # rubocop:disable Metrics/AbcSize
# We ignore revert commits as they are well structured by Git already
return false if commit.message.start_with?('Revert "')
is_squash = gitlab.mr_json['squash']
is_wip = gitlab.mr_json['work_in_progress']
is_fixup = commit.message.start_with?('fixup!', 'squash!')
if is_fixup
# The MR is set to squash - Danger adds an informative notice
# The MR is not set to squash - Danger fails. if also WIP warn only, not error
if is_squash
return false
end
if is_wip
warn_commit(
commit,
'Squash or Fixup commits must be squashed before merge, or enable squash merge option'
)
else
fail_commit(
commit,
'Squash or Fixup commits must be squashed before merge, or enable squash merge option'
)
end
# Makes no sense to process other rules for fixup commits, they trigger just more noise
return false
end
# Fail if a suggestion commit is used and squash is not enabled
if commit.message.start_with?('Apply suggestion to')
if gitlab.mr_json['squash']
if is_squash
return false
else
fail_commit(