Skip to content
Snippets Groups Projects
Commit 44daeea6 authored by Mayra Cabrera's avatar Mayra Cabrera :zero:
Browse files

Merge branch...

Merge branch '369317-add-a-meaningful-audit-event-name-for-merge_trains_enabled-in-project-cicd-settings' into 'master'

Add a meaningful audit event name changes in Project CICD settings

See merge request !107428



Merged-by: default avatarMayra Cabrera <mcabrera@gitlab.com>
Approved-by: default avatarValery Sizov <valery@gitlab.com>
Approved-by: default avatarMayra Cabrera <mcabrera@gitlab.com>
Co-authored-by: Nate Rosandich's avatarnrosandich <nrosandich@gitlab.com>
parents 1b029f84 ee970821
No related branches found
No related tags found
1 merge request!107428Add a meaningful audit event name changes in Project CICD settings
Pipeline #728385861 passed
...@@ -12,11 +12,23 @@ def execute ...@@ -12,11 +12,23 @@ def execute
return if model.blank? return if model.blank?
if should_audit?(:merge_pipelines_enabled) if should_audit?(:merge_pipelines_enabled)
audit_changes(:merge_pipelines_enabled, as: 'merge_pipelines_enabled', entity: @project, model: model) audit_changes(
:merge_pipelines_enabled,
as: 'merge_pipelines_enabled',
entity: @project,
model: model,
event_type: 'project_cicd_merge_pipelines_enabled_updated'
)
end end
if should_audit?(:merge_trains_enabled) if should_audit?(:merge_trains_enabled)
audit_changes(:merge_trains_enabled, as: 'merge_trains_enabled', entity: @project, model: model) audit_changes(
:merge_trains_enabled,
as: 'merge_trains_enabled',
entity: @project,
model: model,
event_type: 'project_cicd_merge_trains_enabled_updated'
)
end end
nil nil
......
...@@ -2,16 +2,24 @@ ...@@ -2,16 +2,24 @@
require 'spec_helper' require 'spec_helper'
RSpec.describe Audit::ProjectCiCdSettingChangesAuditor do RSpec.describe Audit::ProjectCiCdSettingChangesAuditor, feature_category: :audit_events do
using RSpec::Parameterized::TableSyntax using RSpec::Parameterized::TableSyntax
describe '#execute' do describe '#execute' do
let_it_be(:user) { create(:user) } let_it_be(:user) { create(:user) }
let_it_be(:project) { create(:project) } let_it_be(:group) { create(:group) }
let_it_be(:project) do
create(
:project,
group: group
)
end
let_it_be(:ci_cd_settings) { project.ci_cd_settings } let_it_be(:ci_cd_settings) { project.ci_cd_settings }
let_it_be(:project_ci_cd_setting_changes_auditor) { described_class.new(user, ci_cd_settings, project) } let_it_be(:project_ci_cd_setting_changes_auditor) { described_class.new(user, ci_cd_settings, project) }
before do before do
stub_licensed_features(extended_audit_events: true) stub_licensed_features(extended_audit_events: true, external_audit_events: true)
group.external_audit_event_destinations.create!(destination_url: 'http://example.com')
end end
context 'when auditable boolean column is changed' do context 'when auditable boolean column is changed' do
...@@ -25,12 +33,11 @@ ...@@ -25,12 +33,11 @@
before do before do
project.ci_cd_settings.update_attribute(column, prev_value) project.ci_cd_settings.update_attribute(column, prev_value)
project.ci_cd_settings.update_attribute(column, new_value)
end end
with_them do with_them do
it 'creates an audit event' do it 'creates an audit event' do
project.ci_cd_settings.update_attribute(column, new_value)
expect { project_ci_cd_setting_changes_auditor.execute }.to change(AuditEvent, :count).by(1) expect { project_ci_cd_setting_changes_auditor.execute }.to change(AuditEvent, :count).by(1)
expect(AuditEvent.last.details).to include({ expect(AuditEvent.last.details).to include({
change: column, change: column,
...@@ -38,6 +45,13 @@ ...@@ -38,6 +45,13 @@
to: new_value to: new_value
}) })
end end
it 'streams correct audit event', :aggregate_failures do
event_name = "project_cicd_#{column}_updated"
expect(AuditEvents::AuditEventStreamingWorker).to receive(:perform_async)
.with(event_name, anything, anything)
project_ci_cd_setting_changes_auditor.execute
end
end end
end end
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment