diff --git a/ee/app/services/audit_events/repository_download_started_audit_event_service.rb b/ee/app/services/audit_events/repository_download_started_audit_event_service.rb deleted file mode 100644 index 5607e74258b392a8c39daf028a961416e10fd085..0000000000000000000000000000000000000000 --- a/ee/app/services/audit_events/repository_download_started_audit_event_service.rb +++ /dev/null @@ -1,9 +0,0 @@ -# frozen_string_literal: true - -module AuditEvents - class RepositoryDownloadStartedAuditEventService < CustomAuditEventService - def initialize(author, entity, ip_address) - super(author, entity, ip_address, 'Repository Download Started') - end - end -end diff --git a/ee/config/audit_events/types/repository_download_operation.yml b/ee/config/audit_events/types/repository_download_operation.yml new file mode 100644 index 0000000000000000000000000000000000000000..8eefb88dbd2a1ab80a0e7a62d016e1d08d10d1b2 --- /dev/null +++ b/ee/config/audit_events/types/repository_download_operation.yml @@ -0,0 +1,9 @@ +--- +name: repository_download_operation +description: Event triggered when a Git repository for a project is downloaded +introduced_by_issue: https://gitlab.com/gitlab-org/gitlab/-/issues/374108 +introduced_by_mr: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/111218 +feature_category: compliance_management +milestone: '15.9' +saved_to_database: true +streamed: true diff --git a/ee/lib/ee/api/helpers.rb b/ee/lib/ee/api/helpers.rb index cf2151e27cb10534b04e8cb856976a68f7a4fdb7..17570479bbe9d7385c3899fde3ce7abf1b54776b 100644 --- a/ee/lib/ee/api/helpers.rb +++ b/ee/lib/ee/api/helpers.rb @@ -119,11 +119,17 @@ def send_git_archive(repository, **kwargs) result = ::Users::Abuse::ProjectsDownloadBanCheckService.execute(current_user, repository.project) forbidden!(_('You are not allowed to download code from this project.')) if result.error? - ::AuditEvents::RepositoryDownloadStartedAuditEventService.new( - current_user, - repository.project, - ip_address - ).for_project.security_event + project = repository.project + audit_context = { + name: 'repository_download_operation', + ip_address: ip_address, + author: current_user || ::Gitlab::Audit::UnauthenticatedAuthor.new, + target: project, + scope: project, + message: "Repository Download Started", + target_details: project.full_path + } + ::Gitlab::Audit::Auditor.audit(audit_context) super end diff --git a/ee/spec/services/audit_events/repository_download_started_audit_event_service_spec.rb b/ee/spec/services/audit_events/repository_download_started_audit_event_service_spec.rb deleted file mode 100644 index b49032769d896989ca16f13a3bf73fa4f19620e5..0000000000000000000000000000000000000000 --- a/ee/spec/services/audit_events/repository_download_started_audit_event_service_spec.rb +++ /dev/null @@ -1,16 +0,0 @@ -# frozen_string_literal: true - -require 'spec_helper' - -RSpec.describe AuditEvents::RepositoryDownloadStartedAuditEventService do - describe '#security_event' do - include_examples 'logs the custom audit event' do - let(:user) { create(:user) } - let(:ip_address) { '127.0.0.1' } - let(:entity) { create(:project) } - let(:entity_type) { 'Project' } - let(:custom_message) { 'Repository Download Started' } - let(:service) { described_class.new(user, entity, ip_address) } - end - end -end