ad21460007
Co-authored-by: Kandev Agent <agent@kandev.dev>
1.6 KiB
1.6 KiB
id, title, status, wave, depends_on, plan, spec
| id | title | status | wave | depends_on | plan | spec |
|---|---|---|---|---|---|---|
| 01-backend-queue-aware-merge | Backend queue-aware merge | done | 1 | plan.md | ../../specs/github-pr-merge-queue/spec.md |
Task 01: Backend Queue-Aware Merge
Inputs
docs/specs/github-pr-merge-queue/spec.mddocs/plans/github-pr-merge-queue/plan.mdapps/backend/AGENTS.md
Likely Files
apps/backend/internal/github/client.goapps/backend/internal/github/gh_client.goapps/backend/internal/github/pat_client.goapps/backend/internal/github/mock_client.goapps/backend/internal/github/noop_client.goapps/backend/internal/github/service_pr.goapps/backend/internal/github/controller.go- Their focused
*_test.gofiles
Acceptance
- GitHub merge requests use the asynchronous endpoint with
merge_action=defaultand preserve allowed merge-method selection. - Provider responses normalize to explicit
mergedorqueuedoutcomes, including already-queued idempotency, and unknown results fail closed. - The workspace-scoped HTTP endpoint returns the normalized outcome while retaining auth routing, cache invalidation, validation, and error mapping.
Verification
make -C apps/backend test ARGS='./internal/github/...'
Dependencies And Risks
- No task dependency.
- GitHub's asynchronous API response shapes and HTTP statuses must be captured from the official contract rather than inferred from the synchronous API.
- Both PAT and
ghCLI transports must remain behaviorally identical.
Results
make -C apps/backend test ARGS='./internal/github/...'passed (the Make target executed the full backendgo test -tags fts5 ./...suite).