diff --git a/config/audit_events/types/manually_trigger_housekeeping.yml b/config/audit_events/types/manually_trigger_housekeeping.yml index 70c9818d8e80f8c12c90c4711b70bdc8899e66eb..9005f54151a54c6c5911f70aeabefd27104ad291 100644 --- a/config/audit_events/types/manually_trigger_housekeeping.yml +++ b/config/audit_events/types/manually_trigger_housekeeping.yml @@ -1,6 +1,6 @@ --- name: manually_trigger_housekeeping -description: Triggered when manually triggering housekeeping via api or admin UI +description: Triggered when manually triggering housekeeping via API or admin UI introduced_by_issue: https://gitlab.com/gitlab-org/gitlab/-/issues/390761 introduced_by_mr: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/112095 feature_category: source_code_management diff --git a/doc/administration/audit_event_streaming/audit_event_types.md b/doc/administration/audit_event_streaming/audit_event_types.md new file mode 100644 index 0000000000000000000000000000000000000000..61aa5e9e70cc9faf4aece404821ff9aaaeb22aba --- /dev/null +++ b/doc/administration/audit_event_streaming/audit_event_types.md @@ -0,0 +1,272 @@ +--- +stage: Govern +group: Compliance +info: "See the Technical Writers assigned to Development Guidelines: https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments-to-development-guidelines" +--- + +<!--- + This documentation is auto generated by a Rake task. + + Please do not edit this file directly, check compile_docs task on lib/tasks/gitlab/audit_event_types.rake. +---> + +# Available audit event types **(ULTIMATE)** + +Audit event types are used to [filter streamed audit events](index.md#update-event-filters). + +| Name | Description | Saved to database | Streamed | Feature category | Milestone | +|----------|-------------------------------------|----|----|----------------|------| +| [`add_gpg_key`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/111744) | Event triggered when a GPG Key is created | **{check-circle}** Yes | **{check-circle}** Yes | `compliance_management` | [15.9](https://gitlab.com/gitlab-org/gitlab/-/issues/373961) | +| [`allow_author_approval_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/102256) | Event triggered on updating prevent merge request approval from authors from group merge request setting | **{check-circle}** Yes | **{check-circle}** Yes | `compliance_management` | [15.6](https://gitlab.com/gitlab-org/gitlab/-/issues/373949) | +| [`allow_committer_approval_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/102256) | Event triggered on updating prevent merge request approval from committers from group merge request setting | **{check-circle}** Yes | **{check-circle}** Yes | `compliance_management` | [15.6](https://gitlab.com/gitlab-org/gitlab/-/issues/373949) | +| [`allow_merge_on_skipped_pipeline_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/83922) | There is a project setting which toggles the ability to merge when a pipeline is skipped. This audit event tracks changes to that setting. This MR adds a setting to allow this (like previous GitLab versions). | **{check-circle}** Yes | **{check-circle}** Yes | `continuous_integration` | [14.10](https://gitlab.com/gitlab-org/gitlab/-/issues/301124) | +| [`allow_overrides_to_approver_list_per_merge_request_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/102256) | Event triggered on updating prevent users from modifying MR approval rules in merge requests from group merge request setting | **{check-circle}** Yes | **{check-circle}** Yes | `compliance_management` | [15.6](https://gitlab.com/gitlab-org/gitlab/-/issues/373949) | +| [`approval_rule_created`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/89939) | Triggered when a merge request approval rule is created | **{check-circle}** Yes | **{check-circle}** Yes | `source_code_management` | [15.2](https://gitlab.com/gitlab-org/gitlab/-/issues/363092) | +| [`approval_rule_deleted`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/82297) | Triggered on successful approval rule deletion | **{check-circle}** Yes | **{check-circle}** Yes | `source_code_management` | [14.9](https://gitlab.com/gitlab-org/gitlab/-/issues/329514) | +| [`audit_events_streaming_headers_create`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/92068) | Triggered when a streaming header for audit events is created | **{check-circle}** Yes | **{check-circle}** Yes | `audit_events` | [15.3](https://gitlab.com/gitlab-org/gitlab/-/issues/366350) | +| [`audit_events_streaming_headers_destroy`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/92068) | Triggered when a streaming header for audit events is deleted | **{check-circle}** Yes | **{check-circle}** Yes | `audit_events` | [15.3](https://gitlab.com/gitlab-org/gitlab/-/issues/366350) | +| [`audit_events_streaming_headers_update`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/92068) | Triggered when a streaming header for audit events is updated | **{check-circle}** Yes | **{check-circle}** Yes | `compliance_management` | [15.3](https://gitlab.com/gitlab-org/gitlab/-/issues/366350) | +| [`authenticated_with_group_saml`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/28575) | Triggered after successfully signing in with SAML authentication | **{check-circle}** Yes | **{check-circle}** Yes | `user_management` | [12.10](https://gitlab.com/gitlab-org/gitlab/-/issues/35710) | +| [`ban_user`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/116103) | Event triggered on user ban action | **{check-circle}** Yes | **{check-circle}** Yes | `user_management` | [15.11](https://gitlab.com/gitlab-org/gitlab/-/issues/377620) | +| [`change_membership_state`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/87924) | Event triggered on a users membership is updated | **{check-circle}** Yes | **{check-circle}** Yes | `user_management` | [15.1](https://gitlab.com/gitlab-org/gitlab/-/issues/362200) | +| [`ci_group_variable_created`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/91983) | Triggered when a CI variable is created at a group level | **{check-circle}** Yes | **{check-circle}** Yes | `continuous_integration` | [15.2](https://gitlab.com/gitlab-org/gitlab/-/issues/363090) | +| [`ci_group_variable_deleted`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/91983) | Triggered when a group's CI variable is deleted | **{check-circle}** Yes | **{check-circle}** Yes | `continuous_integration` | [15.2](https://gitlab.com/gitlab-org/gitlab/-/issues/363090) | +| [`ci_group_variable_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/91983) | Triggered when a group's CI variable is updated | **{check-circle}** Yes | **{check-circle}** Yes | `continuous_integration` | [15.2](https://gitlab.com/gitlab-org/gitlab/-/issues/363090) | +| [`ci_variable_created`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/91983) | Triggered when a CI variable is created at a project level | **{check-circle}** Yes | **{check-circle}** Yes | `continuous_integration` | [15.2](https://gitlab.com/gitlab-org/gitlab/-/issues/363090) | +| [`ci_variable_deleted`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/91983) | Triggered when a project's CI variable is deleted | **{check-circle}** Yes | **{check-circle}** Yes | `continuous_integration` | [15.2](https://gitlab.com/gitlab-org/gitlab/-/issues/363090) | +| [`ci_variable_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/91983) | Triggered when a project's CI variable is updated | **{check-circle}** Yes | **{check-circle}** Yes | `continuous_integration` | [15.2](https://gitlab.com/gitlab-org/gitlab/-/issues/363090) | +| [`cluster_agent_token_created`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/112036) | Event triggered when a user creates a cluster agent token | **{check-circle}** Yes | **{check-circle}** Yes | `deployment_management` | [15.10](https://gitlab.com/gitlab-org/gitlab/-/issues/382133) | +| [`cluster_agent_token_revoked`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/112036) | Event triggered when a user revokes a cluster agent token | **{check-circle}** Yes | **{check-circle}** Yes | `deployment_management` | [15.10](https://gitlab.com/gitlab-org/gitlab/-/issues/382133) | +| [`code_suggestions_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/117174) | Code Suggestion UI group setting change | **{check-circle}** Yes | **{check-circle}** Yes | `code_suggestions` | [15.11](https://gitlab.com/gitlab-org/gitlab/-/issues/405295) | +| [`comment_by_project_bot`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/120927) | Triggered when a comment is added to an issue or an MR using the project access token | **{dotted-circle}** No | **{check-circle}** Yes | `team_planning` | [16.1](https://gitlab.com/gitlab-org/gitlab/-/issues/323299) | +| [`compliance_framework_deleted`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/65343) | Triggered when a framework gets removed from a project | **{check-circle}** Yes | **{check-circle}** Yes | `compliance_management` | [14.1](https://gitlab.com/gitlab-org/gitlab/-/issues/329362) | +| [`compliance_framework_id_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/94711) | audit when compliance framework ID is updated | **{check-circle}** Yes | **{check-circle}** Yes | `compliance_management` | [15.7](https://gitlab.com/gitlab-org/gitlab/-/issues/369310) | +| [`coverage_fuzzing_corpus_create`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/71992) | Event triggered on a corpus action is added | **{check-circle}** Yes | **{check-circle}** Yes | `fuzz_testing` | [14.5](https://gitlab.com/gitlab-org/gitlab/-/issues/341485) | +| [`create_compliance_framework`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/74292) | Triggered on successful compliance framework creation | **{check-circle}** Yes | **{check-circle}** Yes | `compliance_management` | [14.6](https://gitlab.com/gitlab-org/gitlab/-/issues/340649) | +| [`create_event_streaming_destination`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/74632) | Event triggered when an external audit event destination is created | **{check-circle}** Yes | **{check-circle}** Yes | `audit_events` | [14.6](https://gitlab.com/gitlab-org/gitlab/-/issues/344664) | +| [`create_instance_event_streaming_destination`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/123882) | Event triggered when an instance level external audit event destination is created | **{check-circle}** Yes | **{check-circle}** Yes | `audit_events` | [16.2](https://gitlab.com/gitlab-org/gitlab/-/issues/404730) | +| [`create_status_check`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/84624) | Event triggered when an external status check is created | **{check-circle}** Yes | **{check-circle}** Yes | `compliance_management` | [15.9](https://gitlab.com/gitlab-org/gitlab/-/issues/355805) | +| [`dast_profile_create`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/62604) | Triggered when a dynamic application security testing profile is created | **{check-circle}** Yes | **{check-circle}** Yes | `dynamic_application_security_testing` | [14.1](https://gitlab.com/gitlab-org/gitlab/-/issues/217872) | +| [`dast_profile_destroy`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/62604) | Triggered when a dynamic application security profile is removed | **{check-circle}** Yes | **{check-circle}** Yes | `dynamic_application_security_testing` | [14.1](https://gitlab.com/gitlab-org/gitlab/-/issues/217872) | +| [`dast_profile_schedule_create`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/68046) | Triggered when a dynamic application security testing profile schedule is created | **{check-circle}** Yes | **{check-circle}** Yes | `dynamic_application_security_testing` | [14.3](https://gitlab.com/gitlab-org/gitlab/-/issues/330308) | +| [`dast_profile_schedule_update`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/66445) | Triggered when a dynamic application security testing profile schedule is updated | **{check-circle}** Yes | **{check-circle}** Yes | `dynamic_application_security_testing` | [14.3](https://gitlab.com/gitlab-org/gitlab/-/issues/330308) | +| [`dast_profile_update`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/62604) | Triggered when a dynamic application security profile is updated | **{check-circle}** Yes | **{check-circle}** Yes | `dynamic_application_security_testing` | [14.1](https://gitlab.com/gitlab-org/gitlab/-/issues/217872) | +| [`dast_scanner_profile_create`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/62007) | Triggered when a dynamic application security testing scanner profile is created | **{check-circle}** Yes | **{check-circle}** Yes | `dynamic_application_security_testing` | [14.0](https://gitlab.com/gitlab-org/gitlab/-/issues/217872) | +| [`dast_scanner_profile_destroy`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/62007) | Triggered when a dynamic application security testing scanner profile is removed | **{check-circle}** Yes | **{check-circle}** Yes | `dynamic_application_security_testing` | [14.0](https://gitlab.com/gitlab-org/gitlab/-/issues/217872) | +| [`dast_scanner_profile_update`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/62007) | Triggered when a dynamic application security testing scanner profile is updated | **{check-circle}** Yes | **{check-circle}** Yes | `dynamic_application_security_testing` | [14.0](https://gitlab.com/gitlab-org/gitlab/-/issues/217872) | +| [`dast_site_profile_create`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/62465) | Triggered when a dynamic application security testing site profile is created | **{check-circle}** Yes | **{check-circle}** Yes | `dynamic_application_security_testing` | [14.0](https://gitlab.com/gitlab-org/gitlab/-/issues/217872) | +| [`dast_site_profile_destroy`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/62465) | Triggered when a dynamic application security testing site profile is removed | **{check-circle}** Yes | **{check-circle}** Yes | `dynamic_application_security_testing` | [14.0](https://gitlab.com/gitlab-org/gitlab/-/issues/217872) | +| [`dast_site_profile_update`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/62465) | Triggered when a dynamic application security testing site profile is updated | **{check-circle}** Yes | **{check-circle}** Yes | `dynamic_application_security_testing` | [14.0](https://gitlab.com/gitlab-org/gitlab/-/issues/217872) | +| [`delete_epic`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/96773) | Event triggered on successful epic deletion | **{dotted-circle}** No | **{check-circle}** Yes | `portfolio_management` | [15.4](https://gitlab.com/gitlab-org/gitlab/-/issues/370487) | +| [`delete_issue`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/96773) | Event triggered on successful issue deletion | **{dotted-circle}** No | **{check-circle}** Yes | `team_planning` | [15.4](https://gitlab.com/gitlab-org/gitlab/-/issues/370487) | +| [`delete_merge_request`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/96773) | Event triggered on successful merge request deletion | **{dotted-circle}** No | **{check-circle}** Yes | `code_review` | [15.4](https://gitlab.com/gitlab-org/gitlab/-/issues/370487) | +| [`delete_status_check`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/84624) | Event triggered when an external status check is deleted | **{check-circle}** Yes | **{check-circle}** Yes | `compliance_management` | [15.9](https://gitlab.com/gitlab-org/gitlab/-/issues/355805) | +| [`delete_work_item`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/96773) | Event triggered on successful work item deletion | **{dotted-circle}** No | **{check-circle}** Yes | `team_planning` | [15.4](https://gitlab.com/gitlab-org/gitlab/-/issues/370487) | +| [`deploy_key_added`](https://gitlab.com/gitlab-org/gitlab/-/commit/08586a616909c7f9efe2210c2b74fd3422d4eb62) | Triggered when deploy key is added | **{check-circle}** Yes | **{check-circle}** Yes | `continuous_delivery` | [15.3](https://gitlab.com/gitlab-org/gitlab/-/issues/363087) | +| [`deploy_key_removed`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/92219) | Audit event triggered when deploy key is removed | **{check-circle}** Yes | **{check-circle}** Yes | `continuous_delivery` | [15.3](https://gitlab.com/gitlab-org/gitlab/-/issues/363087) | +| [`deploy_token_created`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/89391) | Audit event triggered when deploy token is created | **{check-circle}** Yes | **{check-circle}** Yes | `continuous_delivery` | [15.1](https://gitlab.com/gitlab-org/gitlab/-/issues/363087) | +| [`deploy_token_creation_failed`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/89391) | Audit event triggered when deploy token fails to create | **{check-circle}** Yes | **{check-circle}** Yes | `continuous_delivery` | [15.1](https://gitlab.com/gitlab-org/gitlab/-/issues/363087) | +| [`deploy_token_destroyed`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/89391) | Audit event triggered when deploy token is destroyed | **{check-circle}** Yes | **{check-circle}** Yes | `continuous_delivery` | [15.1](https://gitlab.com/gitlab-org/gitlab/-/issues/363087) | +| [`deploy_token_revoked`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/89391) | Triggered when project deploy token is revoked | **{check-circle}** Yes | **{check-circle}** Yes | `continuous_delivery` | [15.1](https://gitlab.com/gitlab-org/gitlab/-/issues/363087) | +| [`destroy_compliance_framework`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/74292) | Triggered on successful compliance framework deletion | **{check-circle}** Yes | **{check-circle}** Yes | `compliance_management` | [14.6](https://gitlab.com/gitlab-org/gitlab/-/issues/340649) | +| [`destroy_event_streaming_destination`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/74632) | Event triggered when an external audit event destination is deleted | **{check-circle}** Yes | **{check-circle}** Yes | `audit_events` | [14.6](https://gitlab.com/gitlab-org/gitlab/-/issues/344664) | +| [`destroy_instance_event_streaming_destination`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/125846) | Event triggered when an instance level external audit event destination is deleted | **{check-circle}** Yes | **{check-circle}** Yes | `audit_events` | [16.2](https://gitlab.com/gitlab-org/gitlab/-/issues/404730) | +| [`environment_protected`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/108247) | This event is triggered when a protected environment is created. | **{check-circle}** Yes | **{dotted-circle}** No | `environment_management` | [15.8](https://gitlab.com/gitlab-org/gitlab/-/issues/216164) | +| [`environment_unprotected`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/108247) | This event is triggered when a protected environment is deleted. | **{check-circle}** Yes | **{dotted-circle}** No | `environment_management` | [15.8](https://gitlab.com/gitlab-org/gitlab/-/issues/216164) | +| [`epic_closed_by_project_bot`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/121485) | Triggered when an epic is closed by a group access token | **{check-circle}** Yes | **{check-circle}** Yes | `portfolio_management` | [16.1](https://gitlab.com/gitlab-org/gitlab/-/issues/323299) | +| [`epic_created_by_project_bot`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/121485) | Triggered when an epic is created by a group access token | **{check-circle}** Yes | **{check-circle}** Yes | `portfolio_management` | [16.1](https://gitlab.com/gitlab-org/gitlab/-/issues/323299) | +| [`epic_reopened_by_project_bot`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/121485) | Triggered when an epic is reopened by a group access token | **{check-circle}** Yes | **{check-circle}** Yes | `portfolio_management` | [16.1](https://gitlab.com/gitlab-org/gitlab/-/issues/323299) | +| [`event_type_filters_created`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/113081) | Event triggered when a new audit events streaming event type filter is created | **{check-circle}** Yes | **{check-circle}** Yes | `audit_events` | [15.10](https://gitlab.com/gitlab-org/gitlab/-/issues/344848) | +| [`event_type_filters_deleted`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/113489) | Event triggered when audit events streaming event type filters are deleted | **{check-circle}** Yes | **{check-circle}** Yes | `audit_events` | [15.10](https://gitlab.com/gitlab-org/gitlab/-/issues/344848) | +| [`experiment_features_enabled_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/118222) | Event triggered on toggling setting for enabling experiment AI features | **{check-circle}** Yes | **{check-circle}** Yes | `not_owned` | [16.0](https://gitlab.com/gitlab-org/gitlab/-/issues/404856/) | +| [`external_status_check_name_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/106095) | Event triggered on updating name of a external status check | **{check-circle}** Yes | **{check-circle}** Yes | `compliance_management` | [15.7](https://gitlab.com/gitlab-org/gitlab/-/issues/369333) | +| [`external_status_check_url_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/84624) | Whenever the URL that is used for external status checks for a pipeline is updated, this audit event is created | **{check-circle}** Yes | **{check-circle}** Yes | `compliance_management` | [15.0](https://gitlab.com/gitlab-org/gitlab/-/issues/355805) | +| [`google_cloud_logging_configuration_created`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/122025) | Triggered when Google Cloud Logging configuration is created | **{check-circle}** Yes | **{check-circle}** Yes | `audit_events` | [16.1](https://gitlab.com/gitlab-org/gitlab/-/issues/409422) | +| [`google_cloud_logging_configuration_deleted`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/122025) | Triggered when Google Cloud Logging configuration is deleted | **{check-circle}** Yes | **{check-circle}** Yes | `audit_events` | [16.1](https://gitlab.com/gitlab-org/gitlab/-/issues/409422) | +| [`google_cloud_logging_configuration_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/122025) | Triggered when Google Cloud Logging configuration is updated | **{check-circle}** Yes | **{check-circle}** Yes | `audit_events` | [16.1](https://gitlab.com/gitlab-org/gitlab/-/issues/409422) | +| [`group_access_token_created`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/92225) | Event triggered on creating a group access token | **{check-circle}** Yes | **{check-circle}** Yes | `subgroup` | [15.2](https://gitlab.com/gitlab-org/gitlab/-/issues/363087) | +| [`group_access_token_creation_failed`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/92225) | Event triggered on failing to create a group access token | **{check-circle}** Yes | **{check-circle}** Yes | `subgroup` | [15.2](https://gitlab.com/gitlab-org/gitlab/-/issues/363087) | +| [`group_access_token_deleted`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/92225) | Event triggered on deleting a group access token | **{check-circle}** Yes | **{check-circle}** Yes | `subgroup` | [15.2](https://gitlab.com/gitlab-org/gitlab/-/issues/363087) | +| [`group_access_token_deletion_failed`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/92225) | Event triggered on failure to delete a group access token | **{check-circle}** Yes | **{check-circle}** Yes | `subgroup` | [15.2](https://gitlab.com/gitlab-org/gitlab/-/issues/363087) | +| [`group_deletion_marked`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/116986) | Event triggered when a group is marked for deletion. | **{check-circle}** Yes | **{check-circle}** Yes | `compliance_management` | [15.11](https://gitlab.com/gitlab-org/gitlab/-/issues/374106) | +| [`group_deploy_token_created`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/93091) | Audit event triggered when a groups deploy token is created | **{check-circle}** Yes | **{check-circle}** Yes | `continuous_delivery` | [15.3](https://gitlab.com/gitlab-org/gitlab/-/issues/363087) | +| [`group_deploy_token_creation_failed`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/93091) | Audit event triggered when a groups deploy token fails to create | **{check-circle}** Yes | **{check-circle}** Yes | `continuous_delivery` | [15.3](https://gitlab.com/gitlab-org/gitlab/-/issues/363087) | +| [`group_deploy_token_destroyed`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/93091) | Audit event triggered when group deploy token is destroyed | **{check-circle}** Yes | **{check-circle}** Yes | `continuous_delivery` | [15.3](https://gitlab.com/gitlab-org/gitlab/-/issues/363087) | +| [`group_deploy_token_revoked`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/93091) | Audit event triggered when group deploy token is revoked | **{check-circle}** Yes | **{check-circle}** Yes | `continuous_delivery` | [15.3](https://gitlab.com/gitlab-org/gitlab/-/issues/363087) | +| [`group_destroyed`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/116986) | Event triggered when a group is destroyed. | **{check-circle}** Yes | **{check-circle}** Yes | `compliance_management` | [15.11](https://gitlab.com/gitlab-org/gitlab/-/issues/374106) | +| [`group_lfs_enabled_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/106079) | Event triggered when a groups lfs enabled is updated. | **{check-circle}** Yes | **{check-circle}** Yes | `groups_and_projects` | [15.7](https://gitlab.com/gitlab-org/gitlab/-/issues/369323) | +| [`group_membership_lock_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/106079) | Event triggered when a groups membership lock is updated. | **{check-circle}** Yes | **{check-circle}** Yes | `groups_and_projects` | [15.7](https://gitlab.com/gitlab-org/gitlab/-/issues/369323) | +| [`group_merge_request_approval_setting_created`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/87880) | Triggered when merge request approval settings are added on a group level. | **{check-circle}** Yes | **{check-circle}** Yes | `groups_and_projects` | [15.1](https://gitlab.com/gitlab-org/gitlab/-/issues/356152) | +| [`group_name_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/106079) | Event triggered when a groups name is updated. | **{check-circle}** Yes | **{check-circle}** Yes | `groups_and_projects` | [15.7](https://gitlab.com/gitlab-org/gitlab/-/issues/369320) | +| [`group_path_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/106079) | Event triggered when a groups path is updated. | **{check-circle}** Yes | **{check-circle}** Yes | `groups_and_projects` | [15.7](https://gitlab.com/gitlab-org/gitlab/-/issues/369321) | +| [`group_project_creation_level_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/106079) | Event triggered when a groups project creation level is updated. | **{check-circle}** Yes | **{check-circle}** Yes | `groups_and_projects` | [15.7](https://gitlab.com/gitlab-org/gitlab/-/issues/369327) | +| [`group_push_rules_author_email_regex_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/105791) | Event triggered when a groups push rules settings is changed for author email regex. | **{check-circle}** Yes | **{check-circle}** Yes | `source_code_management` | [15.7](https://gitlab.com/gitlab-org/gitlab/-/issues/369343) | +| [`group_push_rules_branch_name_regex_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/105791) | Event triggered when a groups push rules settings is changed for branch name regex. | **{check-circle}** Yes | **{check-circle}** Yes | `source_code_management` | [15.7](https://gitlab.com/gitlab-org/gitlab/-/issues/369340) | +| [`group_push_rules_commit_committer_check_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/86046) | Triggered when group push rule setting is updated for reject unverified users. | **{check-circle}** Yes | **{check-circle}** Yes | `source_code_management` | [15.0](https://gitlab.com/gitlab-org/gitlab/-/issues/227629) | +| [`group_push_rules_commit_message_negative_regex_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/105791) | Event triggered when a groups push rules settings is changed for commit message negative regex. | **{check-circle}** Yes | **{check-circle}** Yes | `source_code_management` | [15.7](https://gitlab.com/gitlab-org/gitlab/-/issues/369342) | +| [`group_push_rules_commit_message_regex_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/105791) | Event triggered when a groups push rules settings is changed for commit message regex. | **{check-circle}** Yes | **{check-circle}** Yes | `source_code_management` | [15.7](https://gitlab.com/gitlab-org/gitlab/-/issues/369341) | +| [`group_push_rules_file_name_regex_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/105791) | Event triggered when a groups push rules settings is changed for file name regex. | **{check-circle}** Yes | **{check-circle}** Yes | `source_code_management` | [15.7](https://gitlab.com/gitlab-org/gitlab/-/issues/369344) | +| [`group_push_rules_max_file_size_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/105791) | Event triggered when a groups push rules settings is changed for max file size. | **{check-circle}** Yes | **{check-circle}** Yes | `source_code_management` | [15.7](https://gitlab.com/gitlab-org/gitlab/-/issues/369345) | +| [`group_push_rules_prevent_secrets_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/86046) | Triggered when group push rule setting is updated to prevent pushing secret files. | **{check-circle}** Yes | **{check-circle}** Yes | `source_code_management` | [15.0](https://gitlab.com/gitlab-org/gitlab/-/issues/227629) | +| [`group_push_rules_reject_deny_delete_tag_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/86046) | Triggered when group push rule setting is updated to deny deletion of tags using Git push. | **{check-circle}** Yes | **{check-circle}** Yes | `source_code_management` | [15.0](https://gitlab.com/gitlab-org/gitlab/-/issues/227629) | +| [`group_push_rules_reject_member_check_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/86046) | Triggered when group push rule setting is updated to check if commit author is a GitLab user. | **{check-circle}** Yes | **{check-circle}** Yes | `source_code_management` | [15.0](https://gitlab.com/gitlab-org/gitlab/-/issues/227629) | +| [`group_push_rules_reject_non_dco_commits_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/86046) | Triggered when group push rule setting is updated for reject non DCO certified commits. | **{check-circle}** Yes | **{check-circle}** Yes | `source_code_management` | [15.0](https://gitlab.com/gitlab-org/gitlab/-/issues/227629) | +| [`group_push_rules_reject_unsigned_commits_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/86046) | Triggered when group push rule setting is updated for reject unsigned commits. | **{check-circle}** Yes | **{check-circle}** Yes | `source_code_management` | [15.0](https://gitlab.com/gitlab-org/gitlab/-/issues/227629) | +| [`group_repository_size_limit_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/106079) | Event triggered when a groups repository size limit is updated. | **{check-circle}** Yes | **{check-circle}** Yes | `groups_and_projects` | [15.7](https://gitlab.com/gitlab-org/gitlab/-/issues/369322) | +| [`group_request_access_enabled_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/106079) | Event triggered when a groups request access enabled is updated. | **{check-circle}** Yes | **{check-circle}** Yes | `groups_and_projects` | [15.7](https://gitlab.com/gitlab-org/gitlab/-/issues/369323) | +| [`group_require_two_factor_authentication_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/106079) | Event triggered when a groups require two factor authentication setting is updated. | **{check-circle}** Yes | **{check-circle}** Yes | `groups_and_projects` | [15.7](https://gitlab.com/gitlab-org/gitlab/-/issues/369325) | +| [`group_restored`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/116986) | Event triggered when a group is restored. | **{check-circle}** Yes | **{check-circle}** Yes | `compliance_management` | [15.11](https://gitlab.com/gitlab-org/gitlab/-/issues/374106) | +| [`group_saml_provider_create`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/111227) | Event triggered when a group SAML provider is created | **{check-circle}** Yes | **{check-circle}** Yes | `compliance_management` | [15.9](https://gitlab.com/gitlab-org/gitlab/-/issues/373964) | +| [`group_saml_provider_update`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/111227) | Event triggered when a group SAML provider is updated | **{check-circle}** Yes | **{check-circle}** Yes | `compliance_management` | [15.9](https://gitlab.com/gitlab-org/gitlab/-/issues/373964) | +| [`group_share_with_group_link_created`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/112719) | This event is triggered when you proceed to invite a group to another group via the 'invite group' tab on the group's membership page | **{check-circle}** Yes | **{check-circle}** Yes | `groups_and_projects` | [15.10](https://gitlab.com/gitlab-org/gitlab/-/issues/327909) | +| [`group_share_with_group_link_removed`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/112719) | This event is triggered when you proceed to invite a group to another group via the 'invite group' tab on the group's membership page | **{check-circle}** Yes | **{check-circle}** Yes | `groups_and_projects` | [15.10](https://gitlab.com/gitlab-org/gitlab/-/issues/327909) | +| [`group_share_with_group_link_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/112719) | This event is triggered when you proceed to invite a group to another group via the 'invite group' tab on the group's membership page | **{check-circle}** Yes | **{check-circle}** Yes | `groups_and_projects` | [15.10](https://gitlab.com/gitlab-org/gitlab/-/issues/327909) | +| [`group_shared_runners_minutes_limit_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/106079) | Event triggered when a groups shared runners minutes limit is updated. | **{check-circle}** Yes | **{check-circle}** Yes | `groups_and_projects` | [15.7](https://gitlab.com/gitlab-org/gitlab/-/issues/369324) | +| [`group_two_factor_grace_period_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/106079) | Event triggered when a groups two factor grace period is updated. | **{check-circle}** Yes | **{check-circle}** Yes | `groups_and_projects` | [15.7](https://gitlab.com/gitlab-org/gitlab/-/issues/369326) | +| [`group_visibility_level_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/106079) | Event triggered when a groups visibility level is updated. | **{check-circle}** Yes | **{check-circle}** Yes | `groups_and_projects` | [15.7](https://gitlab.com/gitlab-org/gitlab/-/issues/369322) | +| [`incident_closed_by_project_bot`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/121485) | Triggered when an incident is closed using a project access token | **{check-circle}** Yes | **{check-circle}** Yes | `incident_management` | [16.1](https://gitlab.com/gitlab-org/gitlab/-/issues/323299) | +| [`incident_created_by_project_bot`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/121485) | Triggered when an incident is created using a project access token | **{check-circle}** Yes | **{check-circle}** Yes | `incident_management` | [16.1](https://gitlab.com/gitlab-org/gitlab/-/issues/323299) | +| [`incident_reopened_by_project_bot`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/121485) | Triggered when an incident is reopened using a project access token | **{check-circle}** Yes | **{check-circle}** Yes | `incident_management` | [16.1](https://gitlab.com/gitlab-org/gitlab/-/issues/323299) | +| [`ip_restrictions_changed`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/86037) | Event triggered on any changes in the IP AllowList | **{check-circle}** Yes | **{check-circle}** Yes | `system_access` | [15.0](https://gitlab.com/gitlab-org/gitlab/-/issues/358986) | +| [`issue_closed_by_project_bot`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/121485) | Triggered when an issue is closed using a project access token | **{check-circle}** Yes | **{check-circle}** Yes | `team_planning` | [16.1](https://gitlab.com/gitlab-org/gitlab/-/issues/323299) | +| [`issue_created_by_project_bot`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/121485) | Triggered when an issue is created using a project access token | **{check-circle}** Yes | **{check-circle}** Yes | `team_planning` | [16.1](https://gitlab.com/gitlab-org/gitlab/-/issues/323299) | +| [`issue_reopened_by_project_bot`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/121485) | Triggered when an issue is reopened using a project access token | **{check-circle}** Yes | **{check-circle}** Yes | `team_planning` | [16.1](https://gitlab.com/gitlab-org/gitlab/-/issues/323299) | +| [`member_created`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/109711) | Event triggered when a membership is created | **{check-circle}** Yes | **{check-circle}** Yes | `compliance_management` | [15.9](https://gitlab.com/gitlab-org/gitlab/-/issues/374112) | +| [`member_destroyed`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/109711) | Event triggered when a membership is destroyed | **{check-circle}** Yes | **{check-circle}** Yes | `compliance_management` | [15.9](https://gitlab.com/gitlab-org/gitlab/-/issues/374112) | +| [`member_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/109711) | Event triggered when a membership is updated | **{check-circle}** Yes | **{check-circle}** Yes | `compliance_management` | [15.9](https://gitlab.com/gitlab-org/gitlab/-/issues/374112) | +| [`merge_commit_template_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/107533) | audit when merge commit template is updated | **{check-circle}** Yes | **{check-circle}** Yes | `groups_and_projects` | [15.8](https://gitlab.com/gitlab-org/gitlab/-/issues/369314) | +| [`merge_request_approval_operation`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/92983) | Audit event triggered when a merge request is approved | **{dotted-circle}** No | **{check-circle}** Yes | `code_review_workflow` | [15.3](https://gitlab.com/gitlab-org/gitlab/-/issues/10869) | +| [`merge_request_closed_by_project_bot`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/120927) | Triggered when a merge request is closed using a project access token | **{check-circle}** Yes | **{check-circle}** Yes | `code_review_workflow` | [16.1](https://gitlab.com/gitlab-org/gitlab/-/issues/323299) | +| [`merge_request_create`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/90911) | Event triggered when a Merge Request is created | **{dotted-circle}** No | **{check-circle}** Yes | `compliance_management` | [15.9](https://gitlab.com/gitlab-org/gitlab/-/issues/367239) | +| [`merge_request_created_by_project_bot`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/120927) | Triggered when a merge request is created using a project access token | **{check-circle}** Yes | **{check-circle}** Yes | `code_review_workflow` | [16.1](https://gitlab.com/gitlab-org/gitlab/-/issues/323299) | +| [`merge_request_invalid_approver_rules`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/100496) | Audit event triggered for an invalid rule when merge request is approved | **{check-circle}** Yes | **{check-circle}** Yes | `code_review_workflow` | [15.5](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/100496) | +| [`merge_request_merged_by_project_bot`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/120927) | Triggered when a merge request is merged using a project access token | **{check-circle}** Yes | **{check-circle}** Yes | `code_review_workflow` | [16.1](https://gitlab.com/gitlab-org/gitlab/-/issues/323299) | +| [`merge_request_reopened_by_project_bot`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/120927) | Triggered when a merge request is reopened using a project access token | **{check-circle}** Yes | **{check-circle}** Yes | `code_review_workflow` | [16.1](https://gitlab.com/gitlab-org/gitlab/-/issues/323299) | +| [`merged_merge_request_deleted`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/118793) | Audit event triggered when a merged merge request is deleted | **{dotted-circle}** No | **{check-circle}** Yes | `source_code_management` | [16.0](https://gitlab.com/gitlab-org/gitlab/-/issues/408288) | +| [`merged_merge_request_deletion_started`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/118793) | Audit event triggered when a merged merge request's deletion is started | **{dotted-circle}** No | **{check-circle}** Yes | `source_code_management` | [16.1](https://gitlab.com/gitlab-org/gitlab/-/issues/408288) | +| [`omniauth_login_failed`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/123080) | Event triggered when an OmniAuth login fails | **{check-circle}** Yes | **{check-circle}** Yes | `compliance_management` | [16.3](https://gitlab.com/gitlab-org/gitlab/-/issues/374107) | +| [`password_reset_requested`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/114548) | Event triggered when a user requests a password reset using a registered email address | **{check-circle}** Yes | **{dotted-circle}** No | `compliance_management` | [15.11](https://gitlab.com/gitlab-org/gitlab/-/issues/374107) | +| [`personal_access_token_created`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/108952) | Event triggered when a user creates a personal access token | **{check-circle}** Yes | **{check-circle}** Yes | `compliance_management` | [15.9](https://gitlab.com/gitlab-org/gitlab/-/issues/374113) | +| [`personal_access_token_revoked`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/108952) | Event triggered when a personal access token is revoked | **{check-circle}** Yes | **{check-circle}** Yes | `compliance_management` | [15.9](https://gitlab.com/gitlab-org/gitlab/-/issues/374113) | +| [`policy_project_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/102154) | This event is triggered whenever the security policy project is updated for a project. | **{check-circle}** Yes | **{check-circle}** Yes | `security_policy_management` | [15.6](https://gitlab.com/gitlab-org/gitlab/-/issues/377877) | +| [`project_access_token_created`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/92225) | Event triggered on creating a project access token | **{check-circle}** Yes | **{check-circle}** Yes | `project` | [15.2](https://gitlab.com/gitlab-org/gitlab/-/issues/363087) | +| [`project_access_token_creation_failed`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/92225) | Event triggered on failure to create a project access token | **{check-circle}** Yes | **{check-circle}** Yes | `project` | [15.2](https://gitlab.com/gitlab-org/gitlab/-/issues/363087) | +| [`project_access_token_deleted`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/92225) | Event triggered on creating a project access token | **{check-circle}** Yes | **{check-circle}** Yes | `project` | [15.2](https://gitlab.com/gitlab-org/gitlab/-/issues/363087) | +| [`project_access_token_deletion_failed`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/92225) | Event triggered on failure to delete a project access token | **{check-circle}** Yes | **{check-circle}** Yes | `project` | [15.2](https://gitlab.com/gitlab-org/gitlab/-/issues/363087) | +| [`project_archived`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/117528) | Event triggered when a project is archived. | **{check-circle}** Yes | **{check-circle}** Yes | `compliance_management` | [15.11](https://gitlab.com/gitlab-org/gitlab/-/issues/374105) | +| [`project_cicd_merge_pipelines_enabled_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/107428) | audit when project cicd merge pipelines setting is updated | **{check-circle}** Yes | **{check-circle}** Yes | `groups_and_projects` | [15.8](https://gitlab.com/gitlab-org/gitlab/-/issues/369317) | +| [`project_cicd_merge_trains_enabled_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/107428) | Event triggered on updating project setting for enabling ci cd merge trains | **{check-circle}** Yes | **{check-circle}** Yes | `groups_and_projects` | [15.8](https://gitlab.com/gitlab-org/gitlab/-/issues/369317) | +| [`project_created`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/117543) | Event triggered when a project is created. | **{check-circle}** Yes | **{check-circle}** Yes | `groups_and_projects` | [16.0](https://gitlab.com/gitlab-org/gitlab/-/issues/374105) | +| [`project_default_branch_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/117543) | Event triggered when default branch of a project's repository is updated. | **{check-circle}** Yes | **{check-circle}** Yes | `groups_and_projects` | [16.0](https://gitlab.com/gitlab-org/gitlab/-/issues/374105) | +| [`project_deletion_marked`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/117546) | Event triggered when a project is marked for deletion. | **{check-circle}** Yes | **{check-circle}** Yes | `compliance_management` | [15.11](https://gitlab.com/gitlab-org/gitlab/-/issues/374105) | +| [`project_destroyed`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/117546) | Event triggered when a project is destroyed. | **{check-circle}** Yes | **{check-circle}** Yes | `compliance_management` | [15.11](https://gitlab.com/gitlab-org/gitlab/-/issues/374105) | +| [`project_disable_overriding_approvers_per_merge_request_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/106652) | audit when project disable overriding approvers per mr setting is updated | **{check-circle}** Yes | **{check-circle}** Yes | `groups_and_projects` | [15.7](https://gitlab.com/gitlab-org/gitlab/-/issues/369288) | +| [`project_export_file_download_started`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/117528) | Event triggered when download of project export file gets started. | **{check-circle}** Yes | **{check-circle}** Yes | `compliance_management` | [15.11](https://gitlab.com/gitlab-org/gitlab/-/issues/374105) | +| [`project_feature_analytics_access_level_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/106919) | Event triggered when a project's analytics access level setting is updated. | **{check-circle}** Yes | **{check-circle}** Yes | `groups_and_projects` | [15.7](https://gitlab.com/gitlab-org/gitlab/-/issues/369299) | +| [`project_feature_builds_access_level_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/106919) | Event triggered when a project's builds access level setting is updated. | **{check-circle}** Yes | **{check-circle}** Yes | `groups_and_projects` | [15.7](https://gitlab.com/gitlab-org/gitlab/-/issues/369294) | +| [`project_feature_container_registry_access_level_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/106919) | Event triggered when a project's container registry access level setting is updated. | **{check-circle}** Yes | **{check-circle}** Yes | `groups_and_projects` | [15.7](https://gitlab.com/gitlab-org/gitlab/-/issues/369303) | +| [`project_feature_environments_access_level_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/106919) | Event triggered when a project's environments access level setting is updated. | **{check-circle}** Yes | **{check-circle}** Yes | `groups_and_projects` | [15.7](https://gitlab.com/gitlab-org/gitlab/-/issues/369307) | +| [`project_feature_feature_flags_access_level_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/106919) | Event triggered when a project's feature flags access level setting is updated. | **{check-circle}** Yes | **{check-circle}** Yes | `groups_and_projects` | [15.7](https://gitlab.com/gitlab-org/gitlab/-/issues/369306) | +| [`project_feature_forking_access_level_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/106919) | Event triggered when a project's feature forking access level setting is updated. | **{check-circle}** Yes | **{check-circle}** Yes | `groups_and_projects` | [15.7](https://gitlab.com/gitlab-org/gitlab/-/issues/369290) | +| [`project_feature_infrastructure_access_level_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/106919) | Event triggered when a project's infrastructure access level setting is updated. | **{check-circle}** Yes | **{check-circle}** Yes | `groups_and_projects` | [15.7](https://gitlab.com/gitlab-org/gitlab/-/issues/369305) | +| [`project_feature_issues_access_level_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/106919) | Event triggered when a project's issues access level setting is updated. | **{check-circle}** Yes | **{check-circle}** Yes | `groups_and_projects` | [15.7](https://gitlab.com/gitlab-org/gitlab/-/issues/369289) | +| [`project_feature_merge_requests_access_level_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/106919) | Event triggered when a project's merge request access level setting is updated. | **{check-circle}** Yes | **{check-circle}** Yes | `groups_and_projects` | [15.7](https://gitlab.com/gitlab-org/gitlab/-/issues/369289) | +| [`project_feature_metrics_dashboard_access_level_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/106919) | Event triggered when a project's metrics dashboard access level setting is updated. | **{check-circle}** Yes | **{check-circle}** Yes | `groups_and_projects` | [15.7](https://gitlab.com/gitlab-org/gitlab/-/issues/369289) | +| [`project_feature_model_experiments_access_level_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/121027) | Model experiments access level was updated | **{check-circle}** Yes | **{check-circle}** Yes | `mlops` | [16.1](https://gitlab.com/gitlab-org/gitlab/-/issues/412384) | +| [`project_feature_monitor_access_level_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/106919) | Event triggered when a project's monitor access level setting is updated. | **{check-circle}** Yes | **{check-circle}** Yes | `groups_and_projects` | [15.7](https://gitlab.com/gitlab-org/gitlab/-/issues/369304) | +| [`project_feature_operations_access_level_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/106919) | Event triggered when a project's operation access level setting is updated. | **{check-circle}** Yes | **{check-circle}** Yes | `groups_and_projects` | [15.7](https://gitlab.com/gitlab-org/gitlab/-/issues/369300) | +| [`project_feature_package_registry_access_level_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/106919) | Event triggered when a project's package registry access level setting is updated. | **{check-circle}** Yes | **{check-circle}** Yes | `groups_and_projects` | [15.7](https://gitlab.com/gitlab-org/gitlab/-/issues/369296) | +| [`project_feature_pages_access_level_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/106919) | Event triggered when a project's page access level setting is updated. | **{check-circle}** Yes | **{check-circle}** Yes | `groups_and_projects` | [15.7](https://gitlab.com/gitlab-org/gitlab/-/issues/369297) | +| [`project_feature_releases_access_level_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/106919) | Event triggered when a project's releases access level setting is updated. | **{check-circle}** Yes | **{check-circle}** Yes | `groups_and_projects` | [15.7](https://gitlab.com/gitlab-org/gitlab/-/issues/369308) | +| [`project_feature_repository_access_level_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/106919) | Event triggered when a project's repository access level setting is updated. | **{check-circle}** Yes | **{check-circle}** Yes | `groups_and_projects` | [15.7](https://gitlab.com/gitlab-org/gitlab/-/issues/369295) | +| [`project_feature_requirements_access_level_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/106919) | Event triggered when a project's requirements access level setting is updated. | **{check-circle}** Yes | **{check-circle}** Yes | `groups_and_projects` | [15.7](https://gitlab.com/gitlab-org/gitlab/-/issues/369301) | +| [`project_feature_security_and_compliance_access_level_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/106919) | Event triggered when a project's security and compliance access level setting is updated. | **{check-circle}** Yes | **{check-circle}** Yes | `groups_and_projects` | [15.7](https://gitlab.com/gitlab-org/gitlab/-/issues/369302) | +| [`project_feature_snippets_access_level_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/106919) | Event triggered when a project's snippet access level setting is updated. | **{check-circle}** Yes | **{check-circle}** Yes | `groups_and_projects` | [15.7](https://gitlab.com/gitlab-org/gitlab/-/issues/369293) | +| [`project_feature_wiki_access_level_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/106919) | Event triggered when a project's wiki access level setting is updated. | **{check-circle}** Yes | **{check-circle}** Yes | `groups_and_projects` | [15.7](https://gitlab.com/gitlab-org/gitlab/-/issues/369292) | +| [`project_fork_operation`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/90916) | Audit event triggered when a project is forked | **{check-circle}** Yes | **{check-circle}** Yes | `source_code_management` | [15.2](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/90916) | +| [`project_fork_relationship_removed`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/101017) | Event triggered on successful removal of project's fork relationship | **{check-circle}** Yes | **{check-circle}** Yes | `source_code_management` | [15.6](https://gitlab.com/gitlab-org/gitlab/-/issues/272532) | +| [`project_group_link_created`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/108918) | Event triggered when a group is invited to a project | **{check-circle}** Yes | **{check-circle}** Yes | `compliance_management` | [15.9](https://gitlab.com/gitlab-org/gitlab/-/issues/374114) | +| [`project_group_link_deleted`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/108918) | Event triggered when a project group link is deleted | **{check-circle}** Yes | **{check-circle}** Yes | `compliance_management` | [15.9](https://gitlab.com/gitlab-org/gitlab/-/issues/374114) | +| [`project_group_link_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/108918) | Event triggered when a project group link is updated | **{check-circle}** Yes | **{check-circle}** Yes | `compliance_management` | [15.9](https://gitlab.com/gitlab-org/gitlab/-/issues/374114) | +| [`project_imported`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/117528) | Event triggered when a project is imported. | **{check-circle}** Yes | **{check-circle}** Yes | `compliance_management` | [15.11](https://gitlab.com/gitlab-org/gitlab/-/issues/374105) | +| [`project_merge_method_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/83922) | Triggered when a project's merge request method has been changed. | **{check-circle}** Yes | **{check-circle}** Yes | `groups_and_projects` | [14.10](https://gitlab.com/gitlab-org/gitlab/-/issues/301124) | +| [`project_merge_requests_author_approval_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/106652) | audit when project mr author approval setting is updated | **{check-circle}** Yes | **{check-circle}** Yes | `groups_and_projects` | [15.7](https://gitlab.com/gitlab-org/gitlab/-/issues/369288) | +| [`project_merge_requests_disable_committers_approval_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/106652) | Event triggered on updating project setting for disabling committers approval on merge requests | **{check-circle}** Yes | **{check-circle}** Yes | `groups_and_projects` | [15.7](https://gitlab.com/gitlab-org/gitlab/-/issues/369277) | +| [`project_merge_requests_template_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/84624) | Whenever a MR template is updated for a project, this audit event is created | **{check-circle}** Yes | **{check-circle}** Yes | `code_review_workflow` | [15.0](https://gitlab.com/gitlab-org/gitlab/-/issues/355805) | +| [`project_name_updated`](https://gitlab.com/gitlab-org/gitlab/-/commit/8c0b52247e717cf84bc7b248d817f8baa55b18a4) | Create this audit event whenever a project has its name updated | **{check-circle}** Yes | **{check-circle}** Yes | `groups_and_projects` | [10.2](https://gitlab.com/gitlab-org/gitlab/-/commit/8c0b52247e717cf84bc7b248d817f8baa55b18a4) | +| [`project_namespace_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/106652) | audit when project namespace is updated | **{check-circle}** Yes | **{check-circle}** Yes | `groups_and_projects` | [15.7](https://gitlab.com/gitlab-org/gitlab/-/issues/369288) | +| [`project_only_allow_merge_if_all_discussions_are_resolved_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/106652) | Event triggered on updating project setting for allowing merge only when all discussions are resolved | **{check-circle}** Yes | **{check-circle}** Yes | `groups_and_projects` | [15.7](https://gitlab.com/gitlab-org/gitlab/-/issues/369286) | +| [`project_only_allow_merge_if_pipeline_succeeds_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/106652) | audit when project only allow merge if pipeline succeeds setting is updated | **{check-circle}** Yes | **{check-circle}** Yes | `groups_and_projects` | [15.7](https://gitlab.com/gitlab-org/gitlab/-/issues/369288) | +| [`project_packages_enabled_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/7962) | When the setting that controls packages for a project is toggled, this audit event is created | **{check-circle}** Yes | **{check-circle}** Yes | `groups_and_projects` | [11.5](https://gitlab.com/gitlab-org/gitlab/-/issues/369288) | +| [`project_path_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/100770) | Event triggered on updating a project's path | **{check-circle}** Yes | **{check-circle}** Yes | `groups_and_projects` | [15.5](https://gitlab.com/gitlab-org/gitlab/-/issues/369271) | +| [`project_printing_merge_request_link_enabled_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/106652) | Event triggered on updating setting for projects for enabling printing merge request link | **{check-circle}** Yes | **{check-circle}** Yes | `groups_and_projects` | [15.7](https://gitlab.com/gitlab-org/gitlab/-/issues/369283) | +| [`project_remove_source_branch_after_merge_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/83922) | Create this audit event whenever a project has its setting to remove branches after merges modified | **{check-circle}** Yes | **{check-circle}** Yes | `code_review_workflow` | [14.10](https://gitlab.com/gitlab-org/gitlab/-/issues/301124) | +| [`project_repository_size_limit_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/106652) | Event triggered on updating repository size limit of a project | **{check-circle}** Yes | **{check-circle}** Yes | `groups_and_projects` | [15.7](https://gitlab.com/gitlab-org/gitlab/-/issues/369274) | +| [`project_require_password_to_approve_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/106652) | Event triggered on updating project setting for requiring user's password for approval of merge request | **{check-circle}** Yes | **{check-circle}** Yes | `groups_and_projects` | [15.7](https://gitlab.com/gitlab-org/gitlab/-/issues/369280) | +| [`project_reset_approvals_on_push_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/66234) | Create this audit event whenever a project has its setting on whether approvals are reset on a push is updated | **{check-circle}** Yes | **{check-circle}** Yes | `code_review_workflow` | [14.2](https://gitlab.com/gitlab-org/gitlab/-/issues/336211) | +| [`project_resolve_outdated_diff_discussions_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/106652) | audit when project resolve outdated diff discussions setting is updated | **{check-circle}** Yes | **{check-circle}** Yes | `groups_and_projects` | [15.7](https://gitlab.com/gitlab-org/gitlab/-/issues/369288) | +| [`project_restored`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/117528) | Event triggered when a project is restored. | **{check-circle}** Yes | **{check-circle}** Yes | `compliance_management` | [15.11](https://gitlab.com/gitlab-org/gitlab/-/issues/374105) | +| [`project_suggestion_commit_message_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/83922) | Create this audit event whenever a project has its suggested commit message updated | **{check-circle}** Yes | **{check-circle}** Yes | `code_suggestions` | [14.10](https://gitlab.com/gitlab-org/gitlab/-/issues/301124) | +| [`project_unarchived`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/117528) | Event triggered when a project is unarchived. | **{check-circle}** Yes | **{check-circle}** Yes | `compliance_management` | [15.11](https://gitlab.com/gitlab-org/gitlab/-/issues/374105) | +| [`project_visibility_level_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/106652) | audit when project visiblity level setting is updated | **{check-circle}** Yes | **{check-circle}** Yes | `groups_and_projects` | [15.7](https://gitlab.com/gitlab-org/gitlab/-/issues/369288) | +| [`protected_branch_allow_force_push_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/68869) | This audit event is created when a protected branch has its ability to allow force pushes is toggled | **{check-circle}** Yes | **{check-circle}** Yes | `compliance_management` | [14.3](https://gitlab.com/gitlab-org/gitlab/-/issues/338873) | +| [`protected_branch_code_owner_approval_required_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/107530) | audit when protected branch code owner approval required setting is updated | **{check-circle}** Yes | **{check-circle}** Yes | `source_code_management` | [15.8](https://gitlab.com/gitlab-org/gitlab/-/issues/369318) | +| [`protected_branch_created`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/92074) | Triggered when a protected branch is created | **{check-circle}** Yes | **{check-circle}** Yes | `source_code_management` | [15.2](https://gitlab.com/gitlab-org/gitlab/-/issues/363091) | +| [`protected_branch_removed`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/92074) | Triggered when a protected branch is removed | **{check-circle}** Yes | **{check-circle}** Yes | `source_code_management` | [15.2](https://gitlab.com/gitlab-org/gitlab/-/issues/363091) | +| [`protected_branch_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/107530) | Event triggered on the setting for protected branches is update | **{check-circle}** Yes | **{check-circle}** Yes | `source_code_management` | [15.8](https://gitlab.com/gitlab-org/gitlab/-/issues/369318) | +| [`registration_created`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/123080) | Event triggered when a user registers for instance access | **{check-circle}** Yes | **{check-circle}** Yes | `compliance_management` | [16.3](https://gitlab.com/gitlab-org/gitlab/-/issues/374107) | +| [`release_created`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/111080) | Event triggered when a release is created | **{check-circle}** Yes | **{check-circle}** Yes | `compliance_management` | [15.9](https://gitlab.com/gitlab-org/gitlab/-/issues/374111) | +| [`release_deleted_audit_event`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/111080) | Event triggered when a release is deleted | **{check-circle}** Yes | **{check-circle}** Yes | `compliance_management` | [15.9](https://gitlab.com/gitlab-org/gitlab/-/issues/374111) | +| [`release_milestones_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/111080) | Event triggered when a release's associated milestones are updated | **{check-circle}** Yes | **{check-circle}** Yes | `compliance_management` | [15.9](https://gitlab.com/gitlab-org/gitlab/-/issues/374111) | +| [`release_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/111080) | Event triggered when a release is updated | **{check-circle}** Yes | **{check-circle}** Yes | `compliance_management` | [15.9](https://gitlab.com/gitlab-org/gitlab/-/issues/374111) | +| [`remove_gpg_key`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/111744) | Event triggered when a GPG Key is destroyed | **{check-circle}** Yes | **{check-circle}** Yes | `compliance_management` | [15.9](https://gitlab.com/gitlab-org/gitlab/-/issues/373961) | +| [`remove_ssh_key`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/65615) | Audit event triggered when a SSH key is removed | **{check-circle}** Yes | **{check-circle}** Yes | `user_profile` | [14.1](https://gitlab.com/gitlab-org/gitlab/-/issues/220127) | +| [`repository_download_operation`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/111218) | Event triggered when a Git repository for a project is downloaded | **{check-circle}** Yes | **{check-circle}** Yes | `compliance_management` | [15.9](https://gitlab.com/gitlab-org/gitlab/-/issues/374108) | +| [`repository_git_operation`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/76719) | Triggered when authenticated users push, pull, or clone a project using SSH, HTTP(S), or the UI | **{dotted-circle}** No | **{check-circle}** Yes | `source_code_management` | [14.9](https://gitlab.com/gitlab-org/gitlab/-/issues/373950) | +| [`require_password_to_approve_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/102256) | Event triggered on updating require user password for approvals from group merge request setting | **{check-circle}** Yes | **{check-circle}** Yes | `compliance_management` | [15.6](https://gitlab.com/gitlab-org/gitlab/-/issues/373949) | +| [`retain_approvals_on_push_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/102256) | Event triggered on updating require new approvals when new commits are added to an MR from group merge request setting | **{check-circle}** Yes | **{check-circle}** Yes | `compliance_management` | [15.6](https://gitlab.com/gitlab-org/gitlab/-/issues/373949) | +| [`saml_group_links_created`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/110525) | Event triggered when a SAML Group Link is created | **{check-circle}** Yes | **{check-circle}** Yes | `compliance_management` | [15.9](https://gitlab.com/gitlab-org/gitlab/-/issues/373954) | +| [`saml_group_links_removed`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/110525) | Event triggered when a SAML Group Link is destroyed | **{check-circle}** Yes | **{check-circle}** Yes | `compliance_management` | [15.9](https://gitlab.com/gitlab-org/gitlab/-/issues/373954) | +| [`secure_ci_job_token_inbound_disabled`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/115350) | Event triggered when CI_JOB_TOKEN permissions disabled for inbound | **{check-circle}** Yes | **{check-circle}** Yes | `verify_security` | [16.0](https://gitlab.com/gitlab-org/gitlab/-/issues/338255) | +| [`secure_ci_job_token_inbound_enabled`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/115350) | Event triggered when CI_JOB_TOKEN permissions enabled for inbound | **{check-circle}** Yes | **{check-circle}** Yes | `verify_security` | [16.0](https://gitlab.com/gitlab-org/gitlab/-/issues/338255) | +| [`secure_ci_job_token_project_added`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/115350) | Event triggered when project added to inbound CI_JOB_TOKEN scope | **{check-circle}** Yes | **{check-circle}** Yes | `verify_security` | [16.0](https://gitlab.com/gitlab-org/gitlab/-/issues/338255) | +| [`secure_ci_job_token_project_removed`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/115350) | Event triggered when project removed from inbound CI_JOB_TOKEN scope | **{check-circle}** Yes | **{check-circle}** Yes | `verify_security` | [16.0](https://gitlab.com/gitlab-org/gitlab/-/issues/338255) | +| [`set_runner_associated_projects`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/97666) | Event triggered on successful assignment of associated projects to a CI runner | **{check-circle}** Yes | **{check-circle}** Yes | `runner` | [15.4](https://gitlab.com/gitlab-org/gitlab/-/issues/359958) | +| [`squash_commit_template_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/107533) | Event triggered on updating the merge request squash commit template for a project | **{check-circle}** Yes | **{check-circle}** Yes | `groups_and_projects` | [15.8](https://gitlab.com/gitlab-org/gitlab/-/issues/369314) | +| [`squash_option_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/84624) | Triggered when squash option setting has been changed. | **{check-circle}** Yes | **{check-circle}** Yes | `groups_and_projects` | [15.0](https://gitlab.com/gitlab-org/gitlab/-/issues/301124) | +| [`task_closed_by_project_bot`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/121485) | Triggered when a task is closed using a project access token | **{check-circle}** Yes | **{check-circle}** Yes | `team_planning` | [16.1](https://gitlab.com/gitlab-org/gitlab/-/issues/323299) | +| [`task_created_by_project_bot`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/121485) | Triggered when a task is created using a project access token | **{check-circle}** Yes | **{check-circle}** Yes | `team_planning` | [16.1](https://gitlab.com/gitlab-org/gitlab/-/issues/323299) | +| [`task_reopened_by_project_bot`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/121485) | Triggered when a task is reopened using a project access token | **{check-circle}** Yes | **{check-circle}** Yes | `team_planning` | [16.1](https://gitlab.com/gitlab-org/gitlab/-/issues/323299) | +| [`test_case_closed_by_project_bot`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/121485) | Triggered when a test case is closed using a project access token | **{check-circle}** Yes | **{check-circle}** Yes | `quality_management` | [16.1](https://gitlab.com/gitlab-org/gitlab/-/issues/323299) | +| [`test_case_created_by_project_bot`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/121485) | Triggered when a test case is created using a project access token | **{check-circle}** Yes | **{check-circle}** Yes | `quality_management` | [16.1](https://gitlab.com/gitlab-org/gitlab/-/issues/323299) | +| [`test_case_reopened_by_project_bot`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/121485) | Triggered when a test case is reopened using a project access token | **{check-circle}** Yes | **{check-circle}** Yes | `quality_management` | [16.1](https://gitlab.com/gitlab-org/gitlab/-/issues/323299) | +| [`third_party_ai_features_enabled_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/118222) | Event triggered on toggling setting for enabling third-party AI features | **{check-circle}** Yes | **{check-circle}** Yes | `not_owned` | [16.0](https://gitlab.com/gitlab-org/gitlab/-/issues/404856/) | +| [`unban_user`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/116221) | Event triggered on user unban action | **{check-circle}** Yes | **{check-circle}** Yes | `user_management` | [15.11](https://gitlab.com/gitlab-org/gitlab/-/issues/377620) | +| [`unblock_user`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/115727) | Event triggered on user unblock action | **{check-circle}** Yes | **{check-circle}** Yes | `user_management` | [15.11](https://gitlab.com/gitlab-org/gitlab/-/issues/377620) | +| [`update_approval_rules`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/89939) | Event triggered on updating a merge approval rule | **{check-circle}** Yes | **{check-circle}** Yes | `compliance_management` | [15.2](https://gitlab.com/gitlab-org/gitlab/-/issues/363092) | +| [`update_compliance_framework`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/74292) | Triggered when a compliance framework is updated | **{check-circle}** Yes | **{check-circle}** Yes | `compliance_management` | [14.6](https://gitlab.com/gitlab-org/gitlab/-/issues/340649) | +| [`update_event_streaming_destination`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/74632) | Event triggered when an external audit event destination is updated | **{check-circle}** Yes | **{check-circle}** Yes | `audit_events` | [14.6](https://gitlab.com/gitlab-org/gitlab/-/issues/344664) | +| [`update_instance_event_streaming_destination`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/125846) | Event triggered when an instance level external audit event destination is updated | **{check-circle}** Yes | **{check-circle}** Yes | `audit_events` | [16.2](https://gitlab.com/gitlab-org/gitlab/-/issues/404730) | +| [`update_mismatched_group_saml_extern_uid`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/104791) | Triggered when the external UID is changed on a SAML identity. | **{check-circle}** Yes | **{check-circle}** Yes | `system_access` | [15.7](https://gitlab.com/gitlab-org/gitlab/-/issues/382256) | +| [`update_status_check`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/84624) | Event triggered when an external status check is updated | **{check-circle}** Yes | **{check-circle}** Yes | `compliance_management` | [15.9](https://gitlab.com/gitlab-org/gitlab/-/issues/355805) | +| [`user_access_locked`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/124169) | Event triggered when user access to the instance is locked | **{check-circle}** Yes | **{check-circle}** Yes | `system_access` | [16.2](https://gitlab.com/gitlab-org/modelops/anti-abuse/team-tasks/-/issues/244) | +| [`user_access_unlocked`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/124973) | Event triggered when user access to the instance is unlocked | **{check-circle}** Yes | **{check-circle}** Yes | `system_access` | [16.2](https://gitlab.com/gitlab-org/modelops/anti-abuse/team-tasks/-/issues/244) | +| [`user_activate`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/121708) | Event triggered on user activate action | **{check-circle}** Yes | **{check-circle}** Yes | `user_management` | [16.1](https://gitlab.com/gitlab-org/gitlab/-/issues/13473) | +| [`user_admin_status_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/65168) | Adds an audit event when a user is either made an administrator, or removed as an administrator | **{check-circle}** Yes | **{check-circle}** Yes | `user_profile` | [14.1](https://gitlab.com/gitlab-org/gitlab/-/issues/323905) | +| [`user_approved`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/113784) | Event triggered when a user is approved for an instance | **{check-circle}** Yes | **{dotted-circle}** No | `user_management` | [15.11](https://gitlab.com/gitlab-org/gitlab/-/issues/374107) | +| [`user_blocked`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/113784) | Event triggered when a user is blocked | **{check-circle}** Yes | **{dotted-circle}** No | `user_management` | [15.11](https://gitlab.com/gitlab-org/gitlab/-/issues/374107) | +| [`user_created`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/113784) | Event triggered when a user is created | **{check-circle}** Yes | **{check-circle}** Yes | `user_management` | [15.10](https://gitlab.com/gitlab-org/gitlab/-/issues/374107) | +| [`user_deactivate`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/117776) | Event triggered on user deactivate action | **{check-circle}** Yes | **{check-circle}** Yes | `user_management` | [16.0](https://gitlab.com/gitlab-org/gitlab/-/issues/13473) | +| [`user_destroyed`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/113784) | Event triggered when a user is scheduled for removal from the instance | **{check-circle}** Yes | **{dotted-circle}** No | `user_management` | [15.11](https://gitlab.com/gitlab-org/gitlab/-/issues/374107) | +| [`user_disable_two_factor`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/89598) | Audit event triggered when user disables two factor authentication | **{check-circle}** Yes | **{check-circle}** Yes | `system_access` | [15.1](https://gitlab.com/gitlab-org/gitlab/-/issues/238177) | +| [`user_email_address_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/2103) | Adds an audit event when a user updates their email address | **{check-circle}** Yes | **{check-circle}** Yes | `user_profile` | [10.1](https://gitlab.com/gitlab-org/gitlab-ee/issues/1370) | +| [`user_email_changed_and_user_signed_in`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/106090) | audit when user emailed changed and user signed in | **{check-circle}** Yes | **{check-circle}** Yes | `user_management` | [15.8](https://gitlab.com/gitlab-org/gitlab/-/issues/369331) | +| [`user_enable_admin_mode`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/104754) | Event triggered on enabling admin mode | **{check-circle}** Yes | **{check-circle}** Yes | `system_access` | [15.7](https://gitlab.com/gitlab-org/gitlab/-/issues/362101) | +| [`user_impersonation`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/79340) | Triggered when an instance administrator starts or stops impersonating a user | **{check-circle}** Yes | **{check-circle}** Yes | `user_management` | [14.8](https://gitlab.com/gitlab-org/gitlab/-/issues/300961) | +| [`user_password_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/106086) | audit when user password is updated | **{check-circle}** Yes | **{check-circle}** Yes | `user_management` | [15.7](https://gitlab.com/gitlab-org/gitlab/-/issues/369330) | +| [`user_rejected`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/113784) | Event triggered when a user registration is rejected | **{check-circle}** Yes | **{dotted-circle}** No | `user_management` | [15.11](https://gitlab.com/gitlab-org/gitlab/-/issues/374107) | +| [`user_username_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/106086) | Event triggered on updating a user's username | **{check-circle}** Yes | **{check-circle}** Yes | `user_profile` | [15.7](https://gitlab.com/gitlab-org/gitlab/-/issues/369329) | +| [`feature_flag_created`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/113453) | Triggered when a feature flag is created. | **{check-circle}** Yes | **{check-circle}** Yes | `feature_flags` | [15.10](https://gitlab.com/gitlab-org/gitlab/-/issues/374109) | +| [`feature_flag_deleted`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/113453) | Triggered when a feature flag is deleted. | **{check-circle}** Yes | **{check-circle}** Yes | `feature_flags` | [15.10](https://gitlab.com/gitlab-org/gitlab/-/issues/374109) | +| [`feature_flag_updated`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/113453) | Triggered when a feature flag is updated. | **{check-circle}** Yes | **{check-circle}** Yes | `feature_flags` | [15.10](https://gitlab.com/gitlab-org/gitlab/-/issues/374109) | +| [`manually_trigger_housekeeping`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/112095) | Triggered when manually triggering housekeeping via API or admin UI | **{check-circle}** Yes | **{check-circle}** Yes | `source_code_management` | [15.9](https://gitlab.com/gitlab-org/gitlab/-/issues/390761) | diff --git a/ee/config/audit_events/types/allow_merge_on_skipped_pipeline_updated.yml b/ee/config/audit_events/types/allow_merge_on_skipped_pipeline_updated.yml index a56f2c0dc0c278d8159ce50bd66c4960ff4409c1..2cab3d014cb840c805eb3569428d897b84d3ee48 100644 --- a/ee/config/audit_events/types/allow_merge_on_skipped_pipeline_updated.yml +++ b/ee/config/audit_events/types/allow_merge_on_skipped_pipeline_updated.yml @@ -1,6 +1,6 @@ --- name: allow_merge_on_skipped_pipeline_updated -description: There is a project setting which toggles the ability to merge when a pipeline is skipped. This audit event tracks changes to that setting. This MR adds a setting to allow this (like previous Gitlab versions). +description: There is a project setting which toggles the ability to merge when a pipeline is skipped. This audit event tracks changes to that setting. This MR adds a setting to allow this (like previous GitLab versions). introduced_by_issue: https://gitlab.com/gitlab-org/gitlab/-/issues/301124 introduced_by_mr: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/83922 milestone: '14.10' diff --git a/ee/config/audit_events/types/google_cloud_logging_configuration_created.yml b/ee/config/audit_events/types/google_cloud_logging_configuration_created.yml index 5c48fbaf11af71f9b5f46c8672582e1198af0d03..8697255c7d3bc60c30a1609ca0e2cabdc0b28d7c 100644 --- a/ee/config/audit_events/types/google_cloud_logging_configuration_created.yml +++ b/ee/config/audit_events/types/google_cloud_logging_configuration_created.yml @@ -1,6 +1,6 @@ --- name: google_cloud_logging_configuration_created -description: Triggered when google cloud logging configuration is created +description: Triggered when Google Cloud Logging configuration is created introduced_by_issue: https://gitlab.com/gitlab-org/gitlab/-/issues/409422 introduced_by_mr: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/122025 milestone: '16.1' diff --git a/ee/config/audit_events/types/google_cloud_logging_configuration_deleted.yml b/ee/config/audit_events/types/google_cloud_logging_configuration_deleted.yml index 7637dafe424dfe7b5c3d3790386cf094235652eb..c4053b4a8301be97dbef6d0e6f2524a5f4924714 100644 --- a/ee/config/audit_events/types/google_cloud_logging_configuration_deleted.yml +++ b/ee/config/audit_events/types/google_cloud_logging_configuration_deleted.yml @@ -1,6 +1,6 @@ --- name: google_cloud_logging_configuration_deleted -description: Triggered when google cloud logging configuration is deleted +description: Triggered when Google Cloud Logging configuration is deleted introduced_by_issue: https://gitlab.com/gitlab-org/gitlab/-/issues/409422 introduced_by_mr: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/122025 milestone: '16.1' diff --git a/ee/config/audit_events/types/google_cloud_logging_configuration_updated.yml b/ee/config/audit_events/types/google_cloud_logging_configuration_updated.yml index 8fcc0f83efd01ab3f0a77620e150b696fc1efa5b..11ff65f6639926abf09dd01e73ba691740ff3860 100644 --- a/ee/config/audit_events/types/google_cloud_logging_configuration_updated.yml +++ b/ee/config/audit_events/types/google_cloud_logging_configuration_updated.yml @@ -1,6 +1,6 @@ --- name: google_cloud_logging_configuration_updated -description: Triggered when google cloud logging configuration is updated +description: Triggered when Google Cloud Logging configuration is updated introduced_by_issue: https://gitlab.com/gitlab-org/gitlab/-/issues/409422 introduced_by_mr: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/122025 milestone: '16.1' diff --git a/ee/config/audit_events/types/group_push_rules_reject_deny_delete_tag_updated.yml b/ee/config/audit_events/types/group_push_rules_reject_deny_delete_tag_updated.yml index 16d6b12c22ae32dedc925dbb2960f90fe99e1dd0..c0fe59929acb01f0b35b02cc0b163c828dc06fdb 100644 --- a/ee/config/audit_events/types/group_push_rules_reject_deny_delete_tag_updated.yml +++ b/ee/config/audit_events/types/group_push_rules_reject_deny_delete_tag_updated.yml @@ -1,6 +1,6 @@ --- name: group_push_rules_reject_deny_delete_tag_updated -description: Triggered when group push rule setting is updated to deny deletion of tags using git push. +description: Triggered when group push rule setting is updated to deny deletion of tags using Git push. introduced_by_issue: https://gitlab.com/gitlab-org/gitlab/-/issues/227629 introduced_by_mr: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/86046 feature_category: source_code_management diff --git a/ee/config/audit_events/types/remove_ssh_key.yml b/ee/config/audit_events/types/remove_ssh_key.yml index d610304ed47db0ae883cbeeccaa87711a651b039..5a071ebf625eb38790724e685e6309393eb33b74 100644 --- a/ee/config/audit_events/types/remove_ssh_key.yml +++ b/ee/config/audit_events/types/remove_ssh_key.yml @@ -1,6 +1,6 @@ --- name: remove_ssh_key -description: Audit event triggered when a ssh key is removed +description: Audit event triggered when a SSH key is removed introduced_by_issue: https://gitlab.com/gitlab-org/gitlab/-/issues/220127 introduced_by_mr: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/65615 milestone: '14.1' diff --git a/lefthook.yml b/lefthook.yml index 85f1f671d55cda46471271fd938a8368e6f13592..26b68f0a48fec4976de1bd6f238dfa4fd3408e0f 100644 --- a/lefthook.yml +++ b/lefthook.yml @@ -98,6 +98,11 @@ pre-push: tags: backend bundler glob: 'Gemfile.lock' run: bundle exec bundler-checksum lint + audit_event_types_docs: + tags: documentation + files: git diff --name-only --diff-filter=d $(git merge-base origin/master HEAD)..HEAD + glob: '{config/audit_events/types/*.yml,ee/config/audit_events/types/*yml}' + run: bundle exec rake gitlab:audit_event_types:check_docs scripts: "merge_conflicts": diff --git a/lib/tasks/gitlab/audit_event_types/audit_event_types.rake b/lib/tasks/gitlab/audit_event_types/audit_event_types.rake new file mode 100644 index 0000000000000000000000000000000000000000..289f79568a9c7039e03012d0887af122a673bf61 --- /dev/null +++ b/lib/tasks/gitlab/audit_event_types/audit_event_types.rake @@ -0,0 +1,28 @@ +# frozen_string_literal: true + +return if Rails.env.production? + +namespace :gitlab do + namespace :audit_event_types do + event_types_dir = Rails.root.join("doc/administration/audit_event_streaming") + event_types_doc_file = Rails.root.join(event_types_dir, 'audit_event_types.md') + template_directory = 'tooling/audit_events/docs/templates/' + template_erb_file_path = Rails.root.join(template_directory, 'audit_event_types.md.erb') + + desc 'GitLab | Audit event types | Generate audit event types docs' + task compile_docs: :environment do + require_relative './compile_docs_task' + + Tasks::Gitlab::AuditEventTypes::CompileDocsTask + .new(event_types_dir, event_types_doc_file, template_erb_file_path).run + end + + desc 'GitLab | Audit event types | Check if Audit event types docs are up to date' + task check_docs: :environment do + require_relative './check_docs_task' + + Tasks::Gitlab::AuditEventTypes::CheckDocsTask + .new(event_types_dir, event_types_doc_file, template_erb_file_path).run + end + end +end diff --git a/lib/tasks/gitlab/audit_event_types/check_docs_task.rb b/lib/tasks/gitlab/audit_event_types/check_docs_task.rb new file mode 100644 index 0000000000000000000000000000000000000000..f62dd116ed12f289d7c81e5713d81c82c823156c --- /dev/null +++ b/lib/tasks/gitlab/audit_event_types/check_docs_task.rb @@ -0,0 +1,34 @@ +# frozen_string_literal: true + +module Tasks + module Gitlab + module AuditEventTypes + class CheckDocsTask + def initialize(docs_dir, docs_path, template_erb_path) + @event_types_dir = docs_dir + @audit_event_types_doc_file = docs_path + @event_type_erb_template = ERB.new(File.read(template_erb_path), trim_mode: '<>') + end + + def run + doc = File.read(@audit_event_types_doc_file) + + if doc == @event_type_erb_template.result + puts "Audit event types documentation is up to date." + else + error_message = "Audit event types documentation is outdated! Please update it by running " \ + "`bundle exec rake gitlab:audit_event_types:compile_docs`." + heading = '#' * 10 + puts heading + puts '#' + puts "# #{error_message}" + puts '#' + puts heading + + abort + end + end + end + end + end +end diff --git a/lib/tasks/gitlab/audit_event_types/compile_docs_task.rb b/lib/tasks/gitlab/audit_event_types/compile_docs_task.rb new file mode 100644 index 0000000000000000000000000000000000000000..ffa4f6d35147bb8bad53f80914eb5893fc2cbd10 --- /dev/null +++ b/lib/tasks/gitlab/audit_event_types/compile_docs_task.rb @@ -0,0 +1,22 @@ +# frozen_string_literal: true + +module Tasks + module Gitlab + module AuditEventTypes + class CompileDocsTask + def initialize(docs_dir, docs_path, template_erb_path) + @event_types_dir = docs_dir + @audit_event_types_doc_file = docs_path + @event_type_erb_template = ERB.new(File.read(template_erb_path), trim_mode: '<>') + end + + def run + FileUtils.mkdir_p(@event_types_dir) + File.write(@audit_event_types_doc_file, @event_type_erb_template.result) + + puts "Documentation compiled." + end + end + end + end +end diff --git a/spec/tasks/gitlab/audit_event_types/audit_event_types_rake_spec.rb b/spec/tasks/gitlab/audit_event_types/audit_event_types_rake_spec.rb new file mode 100644 index 0000000000000000000000000000000000000000..14196ce4c5dc14ac4a30bac752561bd969955671 --- /dev/null +++ b/spec/tasks/gitlab/audit_event_types/audit_event_types_rake_spec.rb @@ -0,0 +1,43 @@ +# frozen_string_literal: true + +require 'rake_helper' +require_relative '../../../../lib/tasks/gitlab/audit_event_types/check_docs_task' +require_relative '../../../../lib/tasks/gitlab/audit_event_types/compile_docs_task' + +RSpec.describe 'gitlab:audit_event_types rake tasks', :silence_stdout, feature_category: :audit_events do + before do + Rake.application.rake_require('tasks/gitlab/audit_event_types/audit_event_types') + stub_env('VERBOSE' => 'true') + Gitlab::Audit::Type::Definition.clear_memoization(:definitions) + end + + describe 'compile_docs' do + it 'invokes Gitlab::AuditEventTypes::CompileDocsTask with correct arguments' do + compile_docs_task = instance_double(Tasks::Gitlab::AuditEventTypes::CompileDocsTask) + + expect(Tasks::Gitlab::AuditEventTypes::CompileDocsTask).to receive(:new).with( + Rails.root.join("doc/administration/audit_event_streaming"), + Rails.root.join("doc/administration/audit_event_streaming/audit_event_types.md"), + Rails.root.join("tooling/audit_events/docs/templates/audit_event_types.md.erb")).and_return(compile_docs_task) + + expect(compile_docs_task).to receive(:run) + + run_rake_task('gitlab:audit_event_types:compile_docs') + end + end + + describe 'check_docs' do + it 'invokes Gitlab::AuditEventTypes::CheckDocsTask with correct arguments' do + check_docs_task = instance_double(Tasks::Gitlab::AuditEventTypes::CheckDocsTask) + + expect(Tasks::Gitlab::AuditEventTypes::CheckDocsTask).to receive(:new).with( + Rails.root.join("doc/administration/audit_event_streaming"), + Rails.root.join("doc/administration/audit_event_streaming/audit_event_types.md"), + Rails.root.join("tooling/audit_events/docs/templates/audit_event_types.md.erb")).and_return(check_docs_task) + + expect(check_docs_task).to receive(:run) + + run_rake_task('gitlab:audit_event_types:check_docs') + end + end +end diff --git a/spec/tasks/gitlab/audit_event_types/check_docs_task_spec.rb b/spec/tasks/gitlab/audit_event_types/check_docs_task_spec.rb new file mode 100644 index 0000000000000000000000000000000000000000..5dd7599696bb091f2f6e1f631bc09cb893a37d59 --- /dev/null +++ b/spec/tasks/gitlab/audit_event_types/check_docs_task_spec.rb @@ -0,0 +1,67 @@ +# frozen_string_literal: true + +require 'spec_helper' +require_relative '../../../../lib/tasks/gitlab/audit_event_types/check_docs_task' +require_relative '../../../../lib/tasks/gitlab/audit_event_types/compile_docs_task' + +RSpec.describe Tasks::Gitlab::AuditEventTypes::CheckDocsTask, feature_category: :audit_events do + let_it_be(:docs_dir) { Rails.root.join("tmp/tests/doc/administration/audit_event_streaming") } + let_it_be(:docs_path) { Rails.root.join(docs_dir, 'audit_event_types.md') } + let_it_be(:template_erb_path) { Rails.root.join("tooling/audit_events/docs/templates/audit_event_types.md.erb") } + + subject(:check_docs_task) { described_class.new(docs_dir, docs_path, template_erb_path) } + + describe '#run' do + before do + Gitlab::Audit::Type::Definition.clear_memoization(:definitions) + Tasks::Gitlab::AuditEventTypes::CompileDocsTask.new(docs_dir, docs_path, template_erb_path).run + end + + context 'when audit_event_types.md is up to date' do + it 'outputs success message after checking the documentation' do + expect { subject.run }.to output("Audit event types documentation is up to date.\n").to_stdout + end + end + + context 'when audit_event_types.md is updated manually' do + before do + File.write(docs_path, "Manually adding this line at the end of the audit_event_types.md", mode: 'a+') + end + + it 'raises an error' do + expected_output = "Audit event types documentation is outdated! Please update it " \ + "by running `bundle exec rake gitlab:audit_event_types:compile_docs`" + + expect { subject.run }.to raise_error(SystemExit).and output(/#{expected_output}/).to_stdout + end + end + + context 'when an existing audit event type is removed' do + let_it_be(:updated_definition) { Gitlab::Audit::Type::Definition.definitions.except(:feature_flag_created) } + + it 'raises an error' do + expect(Gitlab::Audit::Type::Definition).to receive(:definitions).and_return(updated_definition) + + expected_output = "Audit event types documentation is outdated! Please update it " \ + "by running `bundle exec rake gitlab:audit_event_types:compile_docs`" + + expect { subject.run }.to raise_error(SystemExit).and output(/#{expected_output}/).to_stdout + end + end + + context 'when an existing audit event type is updated' do + let_it_be(:updated_definition) { Gitlab::Audit::Type::Definition.definitions } + + it 'raises an error' do + updated_definition[:feature_flag_created].attributes[:streamed] = false + + expect(Gitlab::Audit::Type::Definition).to receive(:definitions).and_return(updated_definition) + + expected_output = "Audit event types documentation is outdated! Please update it " \ + "by running `bundle exec rake gitlab:audit_event_types:compile_docs`" + + expect { subject.run }.to raise_error(SystemExit).and output(/#{expected_output}/).to_stdout + end + end + end +end diff --git a/spec/tasks/gitlab/audit_event_types/compile_docs_task_spec.rb b/spec/tasks/gitlab/audit_event_types/compile_docs_task_spec.rb new file mode 100644 index 0000000000000000000000000000000000000000..a881d17d3b8dce31f47852ddf5da24bcac91ec54 --- /dev/null +++ b/spec/tasks/gitlab/audit_event_types/compile_docs_task_spec.rb @@ -0,0 +1,29 @@ +# frozen_string_literal: true + +require 'spec_helper' +require_relative '../../../../lib/tasks/gitlab/audit_event_types/compile_docs_task' + +RSpec.describe Tasks::Gitlab::AuditEventTypes::CompileDocsTask, feature_category: :audit_events do + let_it_be(:docs_dir) { Rails.root.join("tmp/tests/doc/administration/audit_event_streaming") } + let_it_be(:docs_path) { Rails.root.join(docs_dir, 'audit_event_types.md') } + let_it_be(:template_erb_path) { Rails.root.join("tooling/audit_events/docs/templates/audit_event_types.md.erb") } + + subject(:compile_docs_task) { described_class.new(docs_dir, docs_path, template_erb_path) } + + describe '#run' do + it 'outputs message after compiling the documentation' do + expect { subject.run }.to output("Documentation compiled.\n").to_stdout + end + + it 'creates audit_event_types.md', :aggregate_failures do + FileUtils.rm_f(docs_path) + + expect { File.read(docs_path) }.to raise_error(Errno::ENOENT) + + subject.run + + expect(File.read(docs_path).size).not_to eq(0) + expect(File.read(docs_path)).to match(/This documentation is auto generated by a Rake task/) + end + end +end diff --git a/tooling/audit_events/docs/templates/audit_event_types.md.erb b/tooling/audit_events/docs/templates/audit_event_types.md.erb new file mode 100644 index 0000000000000000000000000000000000000000..0fec4f818dd2df09e36c7a4ceb169ff85ce46e28 --- /dev/null +++ b/tooling/audit_events/docs/templates/audit_event_types.md.erb @@ -0,0 +1,28 @@ +<% all_audit_event_types = Gitlab::Audit::Type::Definition.definitions.map(&:last) %> +<% def boolean_to_docs(boolean) %> +<% if boolean %> +<% "**{check-circle}** Yes" %> +<% else %> +<% "**{dotted-circle}** No" %> +<% end %> +<% end %> +--- +stage: Govern +group: Compliance +info: "See the Technical Writers assigned to Development Guidelines: https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments-to-development-guidelines" +--- + +<!--- + This documentation is auto generated by a Rake task. + + Please do not edit this file directly, check compile_docs task on lib/tasks/gitlab/audit_event_types.rake. +---> + +# Available audit event types **(ULTIMATE)** + +Audit event types are used to [filter streamed audit events](index.md#update-event-filters). + +| Name | Description | Saved to database | Streamed | Feature category | Milestone | +|----------|-------------------------------------|----|----|----------------|------| +<% all_audit_event_types.each do |event_type| %>| <%= "[`#{event_type.name}`](#{event_type.introduced_by_mr})" %> | <%= event_type.description %> | <%= boolean_to_docs(event_type.saved_to_database) %> | <%= boolean_to_docs(event_type.streamed) %> | <%= "`#{event_type.feature_category}`" %> | <%= "[#{event_type.milestone}](#{event_type.introduced_by_issue})" %> | +<% end %>