# frozen_string_literal: true module Gitlab module Danger module Changelog NO_CHANGELOG_LABELS = [ 'tooling', 'tooling::pipelines', 'tooling::workflow', 'ci-build', 'meta' ].freeze NO_CHANGELOG_CATEGORIES = %i[docs none].freeze def needed? categories_need_changelog? && without_no_changelog_label? end def found @found ||= git.added_files.find { |path| path =~ %r{\A(ee/)?(changelogs/unreleased)(-ee)?/} } end def sanitized_mr_title gitlab.mr_json["title"].gsub(/^WIP: */, '').gsub(/`/, '\\\`') end def ee_changelog? found.start_with?('ee/') end private def categories_need_changelog? (helper.changes_by_category.keys - NO_CHANGELOG_CATEGORIES).any? end def without_no_changelog_label? (gitlab.mr_labels & NO_CHANGELOG_LABELS).empty? end end end end