Help us learn about your current experience with the documentation. Take the survey.

Event store event index

This page lists all domain events published through the GitLab EventStore, grouped by domain.

Each event is defined in app/events/ and carries a JSON Schema-validated payload. To find subscribers, search the subscription files under lib/gitlab/event_store/subscriptions/ and ee/lib/gitlab/event_store/subscriptions/.

Ai

EventFeature categoryEditionDescription
Ai::ActiveContext::Code::CreateEnabledNamespaceEventglobal_searchEEPublished to trigger creation of Ai::ActiveContext::Code::EnabledNamespace records for namespaces eligible for code indexing. Re-emitted by the subscriber worker to continue batched processing across event invocations.
Ai::ActiveContext::Code::MarkRepositoryAsPendingDeletionEventglobal_searchEEPublished to mark Ai::ActiveContext::Code::Repository records as pending deletion when their enabled namespace is gone, Duo features are disabled, or there has been no recent activity. Re-emitted by the subscriber worker to continue batched processing.
Ai::ActiveContext::Code::MarkRepositoryAsReadyEventglobal_searchEEPublished to mark Ai::ActiveContext::Code::Repository records whose embedding indexing has completed as ready, by checking the search index for the presence of expected embedding fields.
Ai::ActiveContext::Code::ProcessInvalidEnabledNamespaceEventglobal_searchEEPublished to remove Ai::ActiveContext::Code::EnabledNamespace records that are no longer eligible (e.g. expired SaaS subscriptions or instances without AI features). Re-emitted by the subscriber worker to continue batched processing.
Ai::ActiveContext::Code::ProcessPendingEnabledNamespaceEventglobal_searchEEPublished to process the next pending Ai::ActiveContext::Code::EnabledNamespace by enrolling its eligible projects as Ai::ActiveContext::Code::Repository records. Re-emitted by the subscriber worker while pending namespaces remain.
Ai::DuoWorkflows::WorkflowFinishedEventduo_agent_platformEEPublished when a Duo workflow transitions to :finished (the agent completed successfully). Only emitted for messaging-triggered workflows. Deferred via run_after_commit.
Ai::DuoWorkflows::WorkflowStartedEventduo_agent_platformEEPublished when a Duo workflow first transitions to :running (the agent has begun executing). Only emitted for messaging-triggered workflows. Deferred via run_after_commit.

Analytics

EventFeature categoryEditionDescription
Analytics::ClickHouseForAnalyticsEnabledEventvalue_stream_managementEEPublished when the instance-wide setting use_clickhouse_for_analytics is toggled on, signalling that ClickHouse-backed analytics has just been enabled so downstream backfill jobs can run.

Cd

EventFeature categoryEditionDescription
Cd::ArtifactPublishedEventcontinuous_deliveryEEPublished when a new artifact version is available for a GitLab CD artifact source, so subscribers can create the corresponding cd_versions. Source-agnostic by design - today it is bridged from container registry pushes, but external artifact sources can publish the same event later.

Ci

EventFeature categoryEditionDescription
Ci::JobArtifactsDeletedEventjob_artifactsCEPublished after a batch of CI job artifacts is deleted. Wrapped in Sidekiq::Worker.skipping_transaction_check so it can be emitted outside a transaction context.
Ci::JobSecurityScanCompletedEventvulnerability_managementEEPublished when a CI build that runs a security scan reaches a completed status, signalling that its security artifacts are ready to be ingested.
Ci::PipelineCreatedEventcontinuous_integrationCEPublished when a CI pipeline is successfully created and persisted.
Ci::PipelineFinishedEventcontinuous_integrationCEPublished when a CI pipeline transitions to a terminal state (success, failed, canceled, skipped, or manual). Deferred via run_after_commit, so it fires only after the status change is committed.
Ci::Workloads::WorkloadFinishedEventcontinuous_integrationCEPublished when a CI workload transitions to :finished or :failed. Deferred via run_after_commit.

Container Registry

EventFeature categoryEditionDescription
ContainerRegistry::ImagePushedEventcontainer_registryEEPublished when the container registry notifies GitLab of a successful image push, so subscribers (e.g. container scanning) can react to the new image.

GitLab

EventFeature categoryEditionDescription
Gitlab::FeatureFlags::FeatureFlagModifiedEventfeature_flagsCEPublished when a feature flag is modified via Feature.enable() or Feature.disable(). The event is emitted whenever Flipper confirms a state change occurred, indicating a global enable/disable, or an actor being added/removed from the feature flag. The operation field indicates the type of change - enabled_globally, disabled_globally, enabled_actor, or disabled_actor. For actor operations, the actor field contains the specific actor’s flipper ID (for example, User:123, Group:456).

GitLab Subscriptions

EventFeature categoryEditionDescription
GitlabSubscriptions::RenewedEventsubscription_managementCEPublished when a GitLab subscription is renewed. Fires only on genuine renewals - both start_date and end_date must change in the same update, with the new start_date >= the previous end_date. Deferred via run_after_commit.

Groups

EventFeature categoryEditionDescription
Groups::GroupDeletedEventgroups_and_projectsCEPublished after a group and all its contents are permanently destroyed.
Groups::GroupTransferedEventgroups_and_projectsCEPublished after a group is transferred to a different parent namespace.

Mcp

EventFeature categoryEditionDescription
Mcp::ServerSettingsChangedEventmcp_serverEEPublished when a group’s MCP server namespace settings (e.g. mcp_server_enabled) change, so consumers such as the MCP server cache can be refreshed.

Members

EventFeature categoryEditionDescription
Members::AcceptedInviteEventuser_managementCEPublished when a user accepts a membership invitation to a group or project.
Members::DestroyedEventuser_managementCEPublished after a member record is removed from a group or project. Fires once per user per destroy operation; not published on recursive cascades (for example, when a parent group destroy removes child memberships). Deferred via run_after_commit_or_now.
Members::MembersAddedEventuser_managementCEPublished after one or more members are added to a group or project. A single event carries all successfully created user IDs; skipped entirely when every invited user fails validation.
Members::MembershipModifiedByAdminEventseat_cost_managementEEPublished when an admin creates or promotes a member to a billable role while member-promotion-management is enabled, so pending approval workflows can be processed.
Members::UpdatedCloudEventuser_managementCECloudEvent published after one or more member access levels are updated. Skipped on no-op updates (empty members array).
Members::UpdatedEventuser_managementCEPublished after one or more member access levels are updated. Skipped on no-op updates (empty members array).

Merge Requests

EventFeature categoryEditionDescription
MergeRequests::ApprovalsResetEventcode_review_workflowEEPublished when existing approvals on a merge request are reset, typically because new commits were pushed or other state changes invalidated prior approvals.
MergeRequests::ApprovedCloudEventcode_suggestionsCEPublished when a merge request receives all required approvals. CloudEvent counterpart of the legacy ApprovedEvent, using the CloudEvents v1.0 envelope with a richer payload that includes merge_request IID, project ID, and organization context.
MergeRequests::ApprovedEventcode_review_workflowCEPublished when a user approves a merge request. Fires only when the approving user is eligible (not the author, satisfies any approval rules), the MR is not already merged, and the approval record is persisted.
MergeRequests::AssignedReviewersEventcode_review_workflowCEPublished when new reviewers are assigned to a merge request. Carries the list of newly assigned reviewers with their IDs and user types.
MergeRequests::AutoMerge::TitleDescriptionUpdateEventcode_review_workflowCEPublished when an MR title or description changes while auto-merge is enabled and the project has merge_request_title_regex configured. Does not fire for description-only changes unless EE Jira-key detection also triggers.
MergeRequests::ClosedEventcode_review_workflowEEPublished when a merge request is closed, so EE subscribers (such as security policy workers) can react to the state change.
MergeRequests::CodeConflictEventcode_review_workflowCEPublished when a merge request cannot be merged due to a code conflict. Only fires when the conflict notification condition is met.
MergeRequests::CreatedEventcode_review_workflowEEPublished when a new merge request is created and prepared, so EE subscribers can react to the new merge request.
MergeRequests::DiscussionsResolvedEventcode_review_workflowCEPublished when resolving a discussion brings an auto-merge-enabled MR to a fully resolved state (mergeable_discussions_state? becomes true). Does not fire on every resolution - only when the resolution unblocks auto-merge.
MergeRequests::DraftNotePublishedEventcode_review_workflowCEPublished when a draft note (pending review comment) is published on a merge request.
MergeRequests::DraftStateChangeEventcode_review_workflowCEPublished when an MR title update toggles the “Draft:” prefix and the draft status actually changes. Title updates that leave the draft state unchanged do not fire it.
MergeRequests::ExternalStatusCheckPassedEventcompliance_managementEEPublished when an external status check response transitions to the passed state for a merge request.
MergeRequests::MergeRequestPreparedEventcode_review_workflowCERepresents a merge request ref being prepared after a push. Carries the project, user, old/new revisions, and the ref name. Not currently published anywhere in the codebase.
MergeRequests::MergeableEventcode_review_workflowCEPublished when an asynchronous mergeability check completes with both auto_merge_enabled? and mergeability_checks_pass? true (typically after approvals become sufficient).
MergeRequests::MergedEventcode_review_workflowEEPublished when a merge request has been merged and post-merge processing runs, allowing EE subscribers (such as compliance, security policy, and audit workers) to react.
MergeRequests::OverrideRequestedChangesStateEventcode_review_workflowCEPublished when a reviewer’s “requested changes” status is overridden on a merge request.
MergeRequests::PipelineCreationCompletedEventcode_review_workflowCEPublished when an asynchronous MR-scoped pipeline creation attempt finishes. pipeline_id is set if a Ci::Pipeline row was persisted, nil if creation produced no pipeline (workflow:rules dropped, missing CI config, etc.). Used to re-trigger auto-merge when no Ci::Pipeline.after_transition will fire.
MergeRequests::ReadyEventcode_suggestionsCEPublished when a merge request transitions from draft to ready status, indicating it is no longer a work in progress.
MergeRequests::ReopenedEventcode_review_workflowEEPublished when a closed merge request is reopened, so EE subscribers can react to the state change.
MergeRequests::UnblockedStateEventcode_review_workflowCEPublished when the set of blocking merge requests changes (for example, a blocking MR is merged, unlinked, or added). Requires the :blocking_merge_requests feature on the target project, and only fires when the set actually differs from the previous state.
MergeRequests::UpdatedEventcode_review_workflowEEPublished when a merge request is updated, so EE subscribers can react to changes on the merge request.
MergeRequests::ViolationsUpdatedEventsecurity_policy_managementEEPublished when scan result / approval policy violations on a merge request have been recalculated and persisted, so subscribers can refresh policy state.

Milestones

EventFeature categoryEditionDescription
Milestones::MilestoneUpdatedEventteam_planningCEPublished when a milestone’s attributes (title, dates, etc.) are updated. Skipped for no-op saves; the updated_attributes payload lists which attributes actually changed.

Namespace Settings

EventFeature categoryEditionDescription
NamespaceSettings::AiRelatedSettingsChangedEventai_abstraction_layerEEPublished when a group’s AI-related namespace settings (e.g. experiment_features_enabled) change, so consumers such as the LLM namespace access cache can be refreshed.

Namespaces

EventFeature categoryEditionDescription
Namespaces::Groups::GroupArchivedEventgroups_and_projectsCEPublished when a group is archived.
Namespaces::Groups::GroupPathChangedEventgroups_and_projectsCEPublished when a group’s URL path is changed. Not fired for group updates that leave the path unchanged. Deferred via run_after_commit_or_now.

Organizations

EventFeature categoryEditionDescription
Organizations::ConfirmedEventorganizationCEPublished when an organization transitions from unconfirmed to confirmed. Emitted by Organizations::ConfirmService after the state transition is committed. Not published if the confirmation fails or is rolled back.
Organizations::GroupTransferredEventorganizationCEPublished when a root group is transferred to a different organization. Fired once for the transferred group only - subscribers are responsible for traversing descendants if needed. Published via run_after_commit_or_now inside the transfer transaction, so it is never emitted on rollback.

Package Metadata

EventFeature categoryEditionDescription
PackageMetadata::IngestedAdvisoryEventsoftware_composition_analysisCEPublished once per advisory record after package security advisories are ingested. Only fires for advisories whose published_date is within the last 14 days (PUBLISHED_ADVISORY_INTERVAL); older advisories are ingested without an event.

Packages

EventFeature categoryEditionDescription
Packages::PackageCreatedEventpackage_registryCEPublished after a package is created in the package registry.

Pages

EventFeature categoryEditionDescription
Pages::Domains::PagesDomainCreatedEventpagesCEPublished when a custom domain is successfully added to a GitLab Pages site.
Pages::Domains::PagesDomainDeletedEventpagesCEPublished when a custom domain is removed from a GitLab Pages site.
Pages::Domains::PagesDomainUpdatedEventpagesCEPublished when a custom GitLab Pages domain is updated, including on ACME-order retries that reset auto_ssl_failed (retries fire only when auto_ssl_enabled and auto_ssl_failed were both true before).

Project Authorizations

EventFeature categoryEditionDescription
ProjectAuthorizations::AuthorizationsAddedEventpermissionsCEPublished after project authorization rows are inserted for one or more users. Multiple changes may be batched into a single event group.
ProjectAuthorizations::AuthorizationsChangedEventpermissionsCEDefined to signal project authorization access-level changes. Not currently published anywhere in the codebase; a subscriber exists in EE security_subscriptions.rb but no publish call has been added yet.
ProjectAuthorizations::AuthorizationsRemovedEventpermissionsCEPublished after project authorization rows are deleted, but only for users who are truly removed - not for those whose access level merely changes (those users are excluded by comparing against authorizations being added in the same operation). Events are batched.

Projects

EventFeature categoryEditionDescription
Projects::ComplianceFrameworkChangedEventcompliance_managementEEPublished when a compliance framework is added to or removed from a project. The event_type field indicates whether the framework was added or removed.
Projects::ProjectArchivedEventgroups_and_projectsCEPublished when a project is archived.
Projects::ProjectCreatedEventgroups_and_projectsCEPublished after a new project is successfully created.
Projects::ProjectDeletedEventgroups_and_projectsCEPublished after a project and all its contents are permanently destroyed.
Projects::ProjectFeaturesChangedEventgroups_and_projectsCEPublished when a project’s feature availability settings change (for example, issues, wiki, CI enabled/disabled). Not published when ProjectFeature#previous_changes is blank.
Projects::ProjectPathChangedEventsource_code_managementCEPublished when a project’s URL path (slug) is renamed.
Projects::ProjectTransferedEventgroups_and_projectsCEPublished after a project is transferred to a different namespace.
Projects::ProjectVisibilityChangedEventgroups_and_projectsCEPublished when a project’s visibility_level changes. Not published for updates that leave visibility unchanged.
Projects::ReleasePublishedEventrelease_orchestrationCEPublished when a release in waiting_for_publish_event state is made available, processed in batches of 100. Releases are stamped with release_published_at after the event fires.
Projects::SecurityAttributeChangedEventsecurity_asset_inventoriesEEPublished when a security attribute association is added to or removed from a project. The event_type field indicates whether the attribute was added or removed.

Repositories

EventFeature categoryEditionDescription
Repositories::DefaultBranchChangedEventsource_code_managementCEPublished when the default branch of a repository changes.
Repositories::KeepAroundRefsCreatedEventsource_code_managementCEPublished when keep-around refs are written to a repository to prevent commits from being garbage collected. Fires only when at least one non-nil SHA is provided (typically during pipeline creation). Wrapped in Sidekiq::Worker.skipping_transaction_check.
Repositories::ProtectedBranchCreatedEventsource_code_managementCEPublished after a new branch protection rule is persisted. Fires for both project-level and group-level protected branches; the parent_type payload field distinguishes them.
Repositories::ProtectedBranchDestroyedEventsource_code_managementCEPublished after a branch protection rule is removed.
Repositories::RepositoryCreatedEventsource_code_managementCEPublished when a repository is created for a project or other container.

Sbom

EventFeature categoryEditionDescription
Sbom::SbomIngestedEventsoftware_composition_analysisEEPublished after an SBOM report has been ingested for a pipeline and at least one occurrence was recorded. Carries the pipeline_id of the ingestion.
Sbom::VulnerabilitiesCreatedEventsoftware_composition_analysisEEPublished when new vulnerabilities are created from SBOM findings during vulnerability scanning, carrying a batch of finding payloads.
EventFeature categoryEditionDescription
Search::Zoekt::ForceUpdateOverprovisionedIndexEventglobal_searchEEPublished when overprovisioned, ready Zoekt indices with up-to-date used-storage stats are detected, signaling that their watermark levels should be recalculated and corrected.
Search::Zoekt::IndexMarkPendingEvictionEventglobal_searchEEPublished when Zoekt indices that meet the criteria to be marked as pending eviction are detected, so they can be transitioned to the pending-eviction state.
Search::Zoekt::IndexMarkedAsReadyEventglobal_searchEEPublished when initializing Zoekt indices have all of their repositories finished indexing and can therefore be transitioned to the ready state.
Search::Zoekt::IndexMarkedAsToDeleteEventglobal_searchEEPublished when Zoekt indices are eligible for deletion, so the subscribed worker can mark them as pending deletion and clean them up.
Search::Zoekt::IndexToEvictEventglobal_searchEEPublished when Zoekt indices in the pending-eviction state are detected, so the subscribed worker can perform the eviction and free their storage.
Search::Zoekt::InitialIndexingEventglobal_searchEEPublished once per pending Zoekt index assigned to an online node, so the subscribed worker can perform the initial indexing of its repositories.
Search::Zoekt::LostNodeEventglobal_searchEEPublished when a Zoekt node is detected as lost (no longer reporting) while at least one online node remains, so the subscribed worker can clean up the node’s resources.
Search::Zoekt::NodeWithNegativeUnclaimedStorageEventglobal_searchEEPublished when Zoekt nodes are observed with negative unclaimed storage bytes, so the subscribed worker can take corrective action (such as moving namespaces off the over-allocated nodes).
Search::Zoekt::OrphanedIndexEventglobal_searchEEPublished when Zoekt indices that no longer have an associated replica or namespace are detected, so the subscribed worker can mark them as orphaned for deletion.
Search::Zoekt::OrphanedRepoEventglobal_searchEEPublished when Zoekt repositories with no parent project (or otherwise dangling) are detected, so the subscribed worker can mark them as orphaned for cleanup.
Search::Zoekt::RepoMarkedAsToDeleteEventglobal_searchEEPublished when Zoekt repositories that should be deleted are detected, so the subscribed worker can mark them for deletion and remove them from the index.
Search::Zoekt::RepoToIndexEventglobal_searchEEPublished when Zoekt repositories pending indexing are detected, so the subscribed worker can enqueue indexing tasks for them.
Search::Zoekt::RepoToReindexEventglobal_searchEEPublished when Zoekt repositories require reindexing, so the subscribed worker can enqueue reindex tasks (one event per node for parallel processing).
Search::Zoekt::SaasRolloutEventglobal_searchEEPublished periodically on GitLab.com to drive the SaaS rollout of Zoekt exact code search to enabled namespaces.
Search::Zoekt::TaskFailedEventglobal_searchEEPublished when a Zoekt indexing task exhausts its retries and is moved to the failed state, so subscribers can react to the failure.
Search::Zoekt::TooManyReplicasEventglobal_searchEEPublished when more Zoekt replicas exist for a namespace than the configured replica count, so the subscribed worker can prune the excess replicas.
Search::Zoekt::UpdateIndexUsedStorageBytesEventglobal_searchEEPublished when Zoekt indices with stale used-storage statistics are detected, so the subscribed worker can refresh their used_storage_bytes from the underlying repositories.

Security

EventFeature categoryEditionDescription
Security::PolicyCreatedEventsecurity_policy_managementEEPublished when a new security policy is persisted as part of syncing a security policy project’s configuration.
Security::PolicyDeletedEventsecurity_policy_managementEEPublished when a security policy is removed during synchronization of a security policy project’s configuration.
Security::PolicyDismissalPreservedEventsecurity_policy_managementEEPublished when a Security::PolicyDismissal is preserved (transitioned to the preserved status) because it still applies to outstanding violations.
Security::PolicyResyncEventsecurity_policy_managementEEPublished to force a full resynchronization of a security policy’s configuration against its linked projects.
Security::PolicyUpdatedEventsecurity_policy_managementEEPublished when a security policy’s attributes or rules change during synchronization of a security policy project’s configuration. Carries a diff and a rules_diff payload describing the changes.
Security::ReportsIngestedEventsecurity_policy_managementEEPublished after a pipeline’s security reports have been stored, signalling that downstream consumers (such as scan result policy evaluation) can run against the ingested findings.

Users

EventFeature categoryEditionDescription
Users::ActivityEventuser_managementCEPublished to record user activity within a namespace, used for tracking seat usage and last activity timestamps. Emitted from web request after-actions (when a user and group/project context are both present), from EventCreateService push/design activity, and from Git HTTP and Gitaly-SSH operations.

Vulnerabilities

EventFeature categoryEditionDescription
Vulnerabilities::BulkDismissedEventvulnerability_managementEEPublished when a batch of vulnerabilities is dismissed via the bulk dismiss service. Carries an array of per-vulnerability attributes including dismissal reason, optional comment, and the acting user.
Vulnerabilities::BulkRedetectedEventvulnerability_managementEEPublished when previously resolved vulnerabilities are transitioned back to detected during security finding ingestion.
Vulnerabilities::LinkToExternalIssueTrackerCreatedvulnerability_managementEEPublished when a vulnerability is linked to an issue in an external issue tracker (for example, Jira).
Vulnerabilities::LinkToExternalIssueTrackerRemovedvulnerability_managementEEPublished when a vulnerability’s link to an external issue tracker is removed.

Work Items

EventFeature categoryEditionDescription
WorkItems::BulkUpdatedEventteam_planningCEPublished after a batch of work items is updated in bulk (for example, milestone cleared on milestone destroy, parent link changes). Each event batch covers up to EVENTS_BATCH_SIZE work items; published via publish_group.
WorkItems::CreatedEventcode_suggestionsCECloudEvent counterpart of WorkItemCreatedEvent, published after a work item is created. Unlike the legacy event, which fires unconditionally, this event is skipped for imports, external authors, non-human users, and work items without a project. Uses the CloudEvents v1.0 envelope and carries a richer payload including work item type and confidentiality.
WorkItems::StatusChangedEventteam_planningEEPublished when a work item status is updated.
WorkItems::WorkItemClosedEventteam_planningEEPublished when a work item (issue or epic work item) is closed.
WorkItems::WorkItemCreatedEventteam_planningCEPublished after a new work item (issue, task, etc.) is created.
WorkItems::WorkItemDeletedEventteam_planningCEPublished after a work item is permanently deleted.
WorkItems::WorkItemReopenedEventteam_planningEEPublished when a previously closed work item (issue or epic work item) is reopened.
WorkItems::WorkItemUpdatedEventteam_planningCEPublished after a work item’s attributes are updated.