diff options
Diffstat (limited to 'app/services/alert_management/create_alert_issue_service.rb')
-rw-r--r-- | app/services/alert_management/create_alert_issue_service.rb | 32 |
1 files changed, 6 insertions, 26 deletions
diff --git a/app/services/alert_management/create_alert_issue_service.rb b/app/services/alert_management/create_alert_issue_service.rb index 6ea3fd867ef..f16b106b748 100644 --- a/app/services/alert_management/create_alert_issue_service.rb +++ b/app/services/alert_management/create_alert_issue_service.rb @@ -15,10 +15,10 @@ module AlertManagement return error_no_permissions unless allowed? return error_issue_already_exists if alert.issue - result = create_issue - issue = result.payload[:issue] + result = create_incident + return result unless result.success? - return error(result.message, issue) if result.error? + issue = result.payload[:issue] return error(object_errors(alert), issue) unless associate_alert_with_issue(issue) SystemNoteService.new_alert_issue(alert, issue, user) @@ -36,35 +36,19 @@ module AlertManagement user.can?(:create_issue, project) end - def create_issue - label_result = find_or_create_incident_label - - # Create an unlabelled issue if we couldn't create the label - # due to a race condition. - # See https://gitlab.com/gitlab-org/gitlab-foss/issues/65042 - extra_params = label_result.success? ? { label_ids: [label_result.payload[:label].id] } : {} - - issue = Issues::CreateService.new( + def create_incident + ::IncidentManagement::Incidents::CreateService.new( project, user, title: alert_presenter.title, - description: alert_presenter.issue_description, - **extra_params + description: alert_presenter.issue_description ).execute - - return error(object_errors(issue), issue) unless issue.valid? - - success(issue) end def associate_alert_with_issue(issue) alert.update(issue_id: issue.id) end - def success(issue) - ServiceResponse.success(payload: { issue: issue }) - end - def error(message, issue = nil) ServiceResponse.error(payload: { issue: issue }, message: message) end @@ -83,10 +67,6 @@ module AlertManagement end end - def find_or_create_incident_label - IncidentManagement::CreateIncidentLabelService.new(project, user).execute - end - def object_errors(object) object.errors.full_messages.to_sentence end |