diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2022-08-18 11:17:02 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2022-08-18 11:17:02 +0300 |
commit | b39512ed755239198a9c294b6a45e65c05900235 (patch) | |
tree | d234a3efade1de67c46b9e5a38ce813627726aa7 /tooling/danger/customer_success.rb | |
parent | d31474cf3b17ece37939d20082b07f6657cc79a9 (diff) |
Add latest changes from gitlab-org/gitlab@15-3-stable-eev15.3.0-rc42
Diffstat (limited to 'tooling/danger/customer_success.rb')
-rw-r--r-- | tooling/danger/customer_success.rb | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/tooling/danger/customer_success.rb b/tooling/danger/customer_success.rb new file mode 100644 index 00000000000..43bdeadd8a4 --- /dev/null +++ b/tooling/danger/customer_success.rb @@ -0,0 +1,45 @@ +# frozen_string_literal: true + +module Tooling + module Danger + module CustomerSuccess + CHANGED_SCHEMA_MESSAGE = <<~MSG + Notification to the Customer Success about changes to files with possible breaking downstream processes, add label `Customer Success::Impact Check`. + + /label ~"Customer Success::Impact Check" + + The following files require a review: + MSG + + FILE_PATH_REGEX = %r{((ee|jh)/)?config/metrics/.+\.yml}.freeze + CATEGORY_CHANGED = /data_category: operational/i.freeze + + def build_message + return unless impacted? + + CHANGED_SCHEMA_MESSAGE + helper.markdown_list(impacted_files) + end + + private + + def impacted? + !helper.has_scoped_label_with_scope?('Customer Success') && impacted_files.any? + end + + def impacted_files + @impacted_files ||= + metric_files.select do |file| + helper.changed_lines(file).any? { |change| metric_category_changed?(change) } + end.compact + end + + def metric_files + helper.modified_files.grep(FILE_PATH_REGEX) + end + + def metric_category_changed?(change) + change =~ CATEGORY_CHANGED + end + end + end +end |