From 6124c072786240d6b2546799d5e08b00c27afcf3 Mon Sep 17 00:00:00 2001 From: nrosandich Date: Tue, 20 Dec 2022 16:49:56 +1300 Subject: [PATCH] Add meaningful audit event names --- .../project_ci_cd_setting_changes_auditor.rb | 16 +++++++++++-- ...ject_ci_cd_setting_changes_auditor_spec.rb | 24 +++++++++++++++---- 2 files changed, 33 insertions(+), 7 deletions(-) diff --git a/ee/lib/audit/project_ci_cd_setting_changes_auditor.rb b/ee/lib/audit/project_ci_cd_setting_changes_auditor.rb index edae2727b082bf..e77621240b9a44 100644 --- a/ee/lib/audit/project_ci_cd_setting_changes_auditor.rb +++ b/ee/lib/audit/project_ci_cd_setting_changes_auditor.rb @@ -12,11 +12,23 @@ def execute return if model.blank? 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 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 nil diff --git a/ee/spec/lib/audit/project_ci_cd_setting_changes_auditor_spec.rb b/ee/spec/lib/audit/project_ci_cd_setting_changes_auditor_spec.rb index 711367b46d0531..80f63a49f04de6 100644 --- a/ee/spec/lib/audit/project_ci_cd_setting_changes_auditor_spec.rb +++ b/ee/spec/lib/audit/project_ci_cd_setting_changes_auditor_spec.rb @@ -2,16 +2,24 @@ require 'spec_helper' -RSpec.describe Audit::ProjectCiCdSettingChangesAuditor do +RSpec.describe Audit::ProjectCiCdSettingChangesAuditor, feature_category: :audit_events do using RSpec::Parameterized::TableSyntax describe '#execute' do 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(:project_ci_cd_setting_changes_auditor) { described_class.new(user, ci_cd_settings, project) } 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 context 'when auditable boolean column is changed' do @@ -25,12 +33,11 @@ before do project.ci_cd_settings.update_attribute(column, prev_value) + project.ci_cd_settings.update_attribute(column, new_value) end with_them 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(AuditEvent.last.details).to include({ change: column, @@ -38,6 +45,13 @@ to: new_value }) 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 -- GitLab