Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'lib/gitlab/tracking/incident_management.rb')
-rw-r--r--lib/gitlab/tracking/incident_management.rb41
1 files changed, 41 insertions, 0 deletions
diff --git a/lib/gitlab/tracking/incident_management.rb b/lib/gitlab/tracking/incident_management.rb
new file mode 100644
index 00000000000..bd8d1669dd3
--- /dev/null
+++ b/lib/gitlab/tracking/incident_management.rb
@@ -0,0 +1,41 @@
+# frozen_string_literal: true
+
+module Gitlab
+ module Tracking
+ module IncidentManagement
+ class << self
+ def track_from_params(incident_params)
+ return if incident_params.blank?
+
+ incident_params.each do |k, v|
+ prefix = ['', '0'].include?(v.to_s) ? 'disabled' : 'enabled'
+
+ key = tracking_keys.dig(k, :name)
+ label = tracking_keys.dig(k, :label)
+
+ next if key.blank?
+
+ details = label ? { label: label, property: v } : {}
+
+ ::Gitlab::Tracking.event('IncidentManagement::Settings', "#{prefix}_#{key}", **details )
+ end
+ end
+
+ def tracking_keys
+ {
+ create_issue: {
+ name: 'issue_auto_creation_on_alerts'
+ },
+ issue_template_key: {
+ name: 'issue_template_on_alerts',
+ label: 'Template name'
+ },
+ send_email: {
+ name: 'sending_emails'
+ }
+ }.with_indifferent_access.freeze
+ end
+ end
+ end
+ end
+end