diff options
Diffstat (limited to 'app/services/projects/alerting/notify_service.rb')
-rw-r--r-- | app/services/projects/alerting/notify_service.rb | 17 |
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 |