debian-mirror-gitlab/app/workers/incident_management/close_incident_worker.rb

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

44 lines
995 B
Ruby
Raw Normal View History

2022-08-13 15:12:31 +05:30
# frozen_string_literal: true
module IncidentManagement
class CloseIncidentWorker
include ApplicationWorker
idempotent!
deduplicate :until_executed
data_consistency :always
feature_category :incident_management
urgency :low
# Issues:CloseService execute webhooks which are treated as external dependencies
worker_has_external_dependencies!
def perform(issue_id)
incident = Issue.incident.opened.find_by_id(issue_id)
return unless incident
close_incident(incident)
add_system_note(incident)
end
private
def user
@user ||= User.alert_bot
end
def close_incident(incident)
::Issues::CloseService
.new(project: incident.project, current_user: user)
.execute(incident, system_note: false)
end
def add_system_note(incident)
return unless incident.reset.closed?
SystemNoteService.auto_resolve_prometheus_alert(incident, incident.project, user)
end
end
end