summaryrefslogtreecommitdiff
path: root/tooling/danger/user_types.rb
diff options
context:
space:
mode:
Diffstat (limited to 'tooling/danger/user_types.rb')
-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