Commit 248475cd authored by Vitali Tatarintev's avatar Vitali Tatarintev

Add check for an active alerts service

Check if alerts service is active for the project
before creating a GitLab issue from `NotifyService`
parent b8c4b60c
......@@ -11,8 +11,8 @@ module Projects
DEV_TOKEN = :development_token
def execute(token)
return forbidden unless alerts_service_activated?
return unauthorized unless valid_token?(token)
return forbidden unless create_issue?
process_incident_issues
......@@ -31,8 +31,10 @@ module Projects
project.feature_available?(:incident_management)
end
def create_issue?
incident_management_available? && generic_alert_endpoint_enabled?
def alerts_service_activated?
incident_management_available? &&
generic_alert_endpoint_enabled? &&
project.alerts_service.try(:active?)
end
def process_incident_issues
......
......@@ -59,6 +59,9 @@ describe Projects::Alerting::NotifyService do
stub_feature_flags(generic_alert_endpoint: true)
end
context 'with activated Alerts Service' do
let!(:alerts_service) { create(:alerts_service, project: project) }
context 'with valid token' do
context 'with a valid payload' do
it_behaves_like 'processes incident issues', 1
......@@ -82,6 +85,13 @@ describe Projects::Alerting::NotifyService do
end
end
context 'with deactivated Alerts Service' do
let!(:alerts_service) { create(:alerts_service, :inactive, project: project) }
it_behaves_like 'does not process incident issues', http_status: 403
end
end
context 'with Generic Alert Endpoint feature disabled' do
before do
stub_feature_flags(generic_alert_endpoint: false)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment