summaryrefslogtreecommitdiff
path: root/tooling
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2022-12-14 03:07:29 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2022-12-14 03:07:29 +0000
commit1103945ed4f3e430b8029b4a7893e214dfe289fb (patch)
tree5bd67830842c9d8f964a09f3a601581efdb0c358 /tooling
parentdbfcd56fcbb4e148920094ab004ed175468911c3 (diff)
downloadgitlab-ce-1103945ed4f3e430b8029b4a7893e214dfe289fb.tar.gz
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'tooling')
-rw-r--r--tooling/danger/user_types.rb31
1 files changed, 31 insertions, 0 deletions
diff --git a/tooling/danger/user_types.rb b/tooling/danger/user_types.rb
new file mode 100644
index 00000000000..8320c43ae93
--- /dev/null
+++ b/tooling/danger/user_types.rb
@@ -0,0 +1,31 @@
+# frozen_string_literal: true
+
+module Tooling
+ module Danger
+ module UserTypes
+ FILE_PATH = "app/models/concerns/has_user_type.rb"
+ BOT_USER_TYPES_CHANGE_INDICATOR_REGEX = %r{BOT_USER_TYPES}.freeze
+ BOT_USER_TYPES_CHANGED_WARNING = <<~MSG
+ You are changing BOT_USER_TYPES in `app/models/concerns/has_user_type.rb`.
+ If you are adding or removing new bots, remember to update the `active_billable_users` index with the new value.
+ If the bot is not billable, remember to make sure that it's not counted as a billable user.
+ MSG
+
+ def bot_user_types_change_warning
+ return unless impacted?
+
+ warn BOT_USER_TYPES_CHANGED_WARNING if bot_user_types_impacted?
+ end
+
+ private
+
+ def impacted?
+ helper.modified_files.include?(FILE_PATH)
+ end
+
+ def bot_user_types_impacted?
+ helper.changed_lines(FILE_PATH).any? { |change| change =~ BOT_USER_TYPES_CHANGE_INDICATOR_REGEX }
+ end
+ end
+ end
+end