41 lines
1.2 KiB
Markdown
41 lines
1.2 KiB
Markdown
# MS-GATE-001 Scratchpad
|
|
|
|
## Objective
|
|
|
|
Build the API Gatekeeper module for PR auto-merge orchestration using Gitea PR webhooks, Woodpecker CI webhooks, and a `pending_merges` Prisma model.
|
|
|
|
## Constraints
|
|
|
|
- Work in `/home/jwoltje/src/mosaic-stack-worktrees/gate-001`
|
|
- Do not merge or deploy
|
|
- Must pass:
|
|
- `pnpm format:check`
|
|
- `SKIP_ENV_VALIDATION=true pnpm turbo typecheck`
|
|
- `SKIP_ENV_VALIDATION=true pnpm turbo lint`
|
|
- `SKIP_ENV_VALIDATION=true pnpm turbo test --filter=@mosaic/api -- --testPathPattern="gatekeeper"`
|
|
|
|
## ASSUMPTION
|
|
|
|
- Woodpecker PR pipelines expose `CI_COMMIT_PULL_REQUEST` and `CI_COMMIT_SHA`, so the webhook notifier can send `prNumber` and `headSha`.
|
|
- Rationale: Gatekeeper needs an exact PR/head tuple to safely match CI back to `pending_merges`.
|
|
|
|
## Plan
|
|
|
|
1. Add Prisma model + SQL migration for `pending_merges`
|
|
2. Add Gatekeeper NestJS module/controller/service/DTO/tests
|
|
3. Wire Woodpecker webhook -> Gatekeeper CI handler
|
|
4. Add env/config documentation and compose variables
|
|
5. Run quality gates, review, remediate, push, open PR
|
|
|
|
## Progress
|
|
|
|
- [x] Context loaded
|
|
- [ ] Tests added first
|
|
- [ ] Implementation complete
|
|
- [ ] Quality gates green
|
|
- [ ] Push + PR opened
|
|
|
|
## Verification
|
|
|
|
- Pending
|