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 any of the %s labels. MSG 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