Add support for standard method call interface on Auditor
Problem to solve
The existing Gitlab::Audit::Auditor
currently requires Ruby block to support use cases where multiple events are emitted in the call stacks. However, the majority of the audit instrumentation does not require this support. To simplify audit service, we would like to add support for standard method call interface on Gitlab::Audit::Auditor
.
Proposal
Tweak Gitlab::Audit::Auditor
to support the following instrumentation
audit_context = {
name: 'merge_approval_rule_updated' # [String] the operation name to be audited, used for error tracking
author: current_user, # [User] the user who authors the change
scope: project_alpha, # [User, Project, Group] the scope which audit event belongs to
target: merge_approval_rule, # [Object] the target object being audited
ip_address: request.remote_ip, # [IPAddress] the request IP address
message: 'number of approvals has changed from 0 to 2'
}
merge_approval_rule.save
Gitlab::Audit::Auditor.audit(audit_context)
Edited by Tan Le