47 lines
1.2 KiB
Ruby
47 lines
1.2 KiB
Ruby
# 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'
|
|
},
|
|
pagerduty_active: {
|
|
name: 'pagerduty_webhook'
|
|
},
|
|
auto_close_incident: {
|
|
name: 'auto_close_incident'
|
|
}
|
|
}.with_indifferent_access.freeze
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|