Track repository pushes as audit events
What does this MR do?
Tracks repository pushes to projects at the audit_events
table behind the repository_push_audit_event
feature flag.
This feature flag will remain disabled by default until we have a chance to tackle https://gitlab.com/gitlab-org/gitlab-ee/issues/7865, which is already scheduled for %12.4.
Note that this MR doesn't handle any major refactoring, but avoid adding more things to the AuditEventService
(which is already doing a lot). Instead, it moves specific push audit logic to RepositoryPushAuditEventService
.
Also important to note we're not tracking Wiki changes here.
At this MR we create the structure to be able to insert into audit_events
table in batches, asynchronously with a Sidekiq worker.
Issue: https://gitlab.com/gitlab-org/gitlab-ee/issues/1411