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 'app/services/projects/alerting/notify_service.rb')
-rw-r--r--app/services/projects/alerting/notify_service.rb17
1 files changed, 14 insertions, 3 deletions
diff --git a/app/services/projects/alerting/notify_service.rb b/app/services/projects/alerting/notify_service.rb
index 1ce1ef7a1cd..76c89e85f17 100644
--- a/app/services/projects/alerting/notify_service.rb
+++ b/app/services/projects/alerting/notify_service.rb
@@ -10,7 +10,10 @@ module Projects
return forbidden unless alerts_service_activated?
return unauthorized unless valid_token?(token)
- process_incident_issues if process_issues?
+ alert = create_alert
+ return bad_request unless alert.persisted?
+
+ process_incident_issues(alert) if process_issues?
send_alert_email if send_email?
ServiceResponse.success
@@ -22,13 +25,21 @@ module Projects
delegate :alerts_service, :alerts_service_activated?, to: :project
+ def am_alert_params
+ Gitlab::AlertManagement::AlertParams.from_generic_alert(project: project, payload: params.to_h)
+ end
+
+ def create_alert
+ AlertManagement::Alert.create(am_alert_params)
+ end
+
def send_email?
incident_management_setting.send_email?
end
- def process_incident_issues
+ def process_incident_issues(alert)
IncidentManagement::ProcessAlertWorker
- .perform_async(project.id, parsed_payload)
+ .perform_async(project.id, parsed_payload, alert.id)
end
def send_alert_email