feat(stovepipe): add commit ingestion abstractions - #200
Merged
behinddwalls merged 6 commits intoJun 22, 2026
Merged
Conversation
gsturges
requested review from
a team,
behinddwalls and
sbalabanov
as code owners
June 4, 2026 23:38
behinddwalls
reviewed
Jun 5, 2026
behinddwalls
requested changes
Jun 5, 2026
gsturges
force-pushed
the
gsturges/codem-101-stovepipe-commit-ingestion-abstractions
branch
3 times, most recently
from
June 5, 2026 22:20
64a6c14 to
9bbb8f9
Compare
mnoah1
reviewed
Jun 5, 2026
gsturges
force-pushed
the
gsturges/codem-101-stovepipe-commit-ingestion-abstractions
branch
from
June 5, 2026 23:22
9bbb8f9 to
9bfce3e
Compare
mnoah1
approved these changes
Jun 6, 2026
behinddwalls
reviewed
Jun 6, 2026
gsturges
force-pushed
the
gsturges/codem-101-stovepipe-commit-ingestion-abstractions
branch
2 times, most recently
from
June 10, 2026 00:44
4dda171 to
0239b4a
Compare
gsturges
force-pushed
the
gsturges/codem-101-stovepipe-commit-ingestion-abstractions
branch
2 times, most recently
from
June 16, 2026 23:07
21bd79f to
eadd973
Compare
gsturges
force-pushed
the
gsturges/codem-101-stovepipe-commit-ingestion-abstractions
branch
2 times, most recently
from
June 17, 2026 18:30
8b2ce3e to
95e8d29
Compare
gsturges
marked this pull request as draft
June 17, 2026 18:38
gsturges
force-pushed
the
gsturges/codem-101-stovepipe-commit-ingestion-abstractions
branch
2 times, most recently
from
June 19, 2026 00:43
3e26387 to
2a7691f
Compare
gsturges
marked this pull request as ready for review
June 19, 2026 00:46
Introduce ChangeInfo, ChangeIngester/ChangeHandler, a no-op logging handler stub, and URI watch filtering for downstream ingestion.
Co-authored-by: Preetam Dwivedi <behinddwalls@gmail.com>
Add Commit and Batch as the core domain entities the validation pipeline operates on, each with status types and optimistic-locking Version fields. Add CommitStore and BatchStore extension interfaces scoped to their respective service owners (gateway and orchestrator). Fix missing BUILD.bazel files for the filter and changeingester packages. Flatten ChangeInfo.Author into AuthorName/AuthorEmail fields directly.
Replace ChangeInfo with ChangeEvent as the ingestion payload type and introduce ChangeURI as the lightweight pipeline reference. Update Commit entity and create CommitStatusentity. Update ChangeHandler and the filter to accept ChangeEvent. Remove the storage extension and Batch entity, which belong to the orchestrator.
Implement the Ingest RPC controller wired to the proto contract defined in api/stovepipe/gateway/proto/gateway.proto. The controller validates the queue and change URIs, generates a SPID via the counter extension, publishes the IngestRequest to TopicKeyStart, and returns the SPID for lifecycle tracking. Also introduces the commit status domain: CommitStatusKind enum (ingested → queued → processing → succeeded/failed), IsCommitStatusTerminal, and CommitStatus as an append-only history record keyed by SPID. - Remove ChangeEvent/ChangeURI (superseded by IngestRequest) - Remove changeingester stub (superseded by IngestController) - Update filter.ShouldProcess to accept a URI string directly - Update entity BUILD.bazel to reflect current file set Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
gsturges
force-pushed
the
gsturges/codem-101-stovepipe-commit-ingestion-abstractions
branch
from
June 19, 2026 00:53
2a7691f to
e7fd8f3
Compare
| "queue", queue, | ||
| "spid", ingestRequest.ID, | ||
| "change_uris", ingestRequest.Change.URIs, | ||
| ) |
Collaborator
There was a problem hiding this comment.
we probably need a TODO here to persist the request into a DB table called request_log
behinddwalls
approved these changes
Jun 22, 2026
behinddwalls
temporarily deployed
to
stack-rebase
June 22, 2026 20:47 — with
GitHub Actions
Inactive
behinddwalls
deleted the
gsturges/codem-101-stovepipe-commit-ingestion-abstractions
branch
June 22, 2026 20:47
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
entity.PushEventto represent a branch push (repo, branch, SHAs, pusher) for webhook/Kafka-driven ingestion.CommitIngesterandPushEventHandlerinstovepipe/extensionso a consumer can subscribe to push events and dispatch work.stovepipe/core/filterwithConfig/ShouldProcessto gate processing by watched repo and optional branch list (empty list = all branches for that repo).commitingester.LoggingHandleras a no-opPushEventHandlerstub until persistence/pipeline wiring lands.Test plan
make test(or targeted tests if added in a follow-up)make lintMade with Cursor