feat(indexer): consume code indexing tasks instead of push events
What does this MR do and why?
The code indexer consumed raw push_event_payloads from the Siphon CDC stream. For each push event, it called the Rails API to check the default branch, queried ClickHouse for the project's traversal path, and filtered out non-branch pushes and non-push actions.
With gitlab-org/gitlab!227200 (merged), Rails writes to a dedicated p_knowledge_graph_code_indexing_tasks table only when a push lands on the default branch of a namespace with knowledge graph indexing enabled. This MR switches the code indexer to consume from that table instead.
The new event carries project_id, ref, commit_sha, and traversal_path directly, so the handler drops the Rails API call for the default branch, the ClickHouse query for the traversal path, and the ref_type/action/default-branch validation. RepositoryService and ProjectStore are still used by the reconciliation handler.
Renames: PushEventHandler → CodeIndexingTaskHandler, PushEventHandlerConfig → CodeIndexingTaskHandlerConfig, handler/config key code_push_event → code_indexing_task.
Related Issues
Depends on gitlab-org/gitlab!227200 (merged).
Testing
Performance Analysis
- This merge request does not introduce any performance regression. If a performance regression is expected, explain why.
