summaryrefslogtreecommitdiff
path: root/app/services/alert_management/create_alert_issue_service.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/services/alert_management/create_alert_issue_service.rb')
-rw-r--r--app/services/alert_management/create_alert_issue_service.rb32
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