From 8ce6381f3cc822a919492406455e82af4373c4f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Coutable?= Date: Mon, 16 Jul 2018 19:23:45 +0200 Subject: [PATCH] Improve danger/specs/Dangerfile by not requiring new specs if specific labels are applied MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Rémy Coutable --- danger/specs/Dangerfile | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/danger/specs/Dangerfile b/danger/specs/Dangerfile index 934ea0beadb..97188df8785 100644 --- a/danger/specs/Dangerfile +++ b/danger/specs/Dangerfile @@ -1,12 +1,18 @@ +NO_SPECS_LABELS = %w[backstage Documentation QA].freeze NO_NEW_SPEC_MESSAGE = <<~MSG.freeze You've made some app changes, but didn't add any tests. That's OK as long as you're refactoring existing code, -but please consider adding the ~backstage label in that case. +but please consider adding any of the %s labels. MSG -has_app_changes = !git.modified_files.grep(%r{\A(ee/)?(app|lib|db/(geo/)?(post_)?migrate)/}).empty? -has_spec_changes = !git.modified_files.grep(/spec/).empty? - -if has_app_changes && !has_spec_changes - warn NO_NEW_SPEC_MESSAGE, sticky: false +def presented_no_changelog_labels + NO_SPECS_LABELS.map { |label| "~#{label}" }.join(', ') +end + +has_app_changes = !git.modified_files.grep(%r{\A(ee/)?(app|lib|db/(geo/)?(post_)?migrate)/}).empty? +has_spec_changes = !git.modified_files.grep(%r{\A(ee/)?spec/}).empty? +new_specs_needed = (gitlab.mr_labels & NO_SPECS_LABELS).empty? + +if has_app_changes && !has_spec_changes && new_specs_needed + warn format(NO_NEW_SPEC_MESSAGE, labels: presented_no_changelog_labels), sticky: false end