[ ] Rows for GET and POST /api/v1/repos/{owner}/{name}/pulls/{number}/checks. Each row sits in ROUTES (src/contract/openapi.ts) in its own block after the {REPO}/pulls/{number}/merge row. It says what the route answers, whether it needs a token, and its body fields and refusals, all read from the handler in src/http/api.ts, and it uses the method the handler registers. The routes' lines leave NOT_YET_DESCRIBED in test/openapi-coverage.test.ts.
[ ] A case in test/openapi-oa-pull-checks.test.ts reads the rows from /api/v1/openapi.json and fails without them. test/openapi.test.ts and test/openapi-coverage.test.ts pass.
[ ] Before pushing, run those tests and bun x tsc --noEmit. A red test elsewhere that main also has is named in the pull, not a reason to stop.
Files: src/contract/openapi.ts, test/openapi-coverage.test.ts, test/openapi-oa-pull-checks.test.ts.
Split from #4851, which was too many routes for one run and went red twice.
Done:
/api/v1/repos/{owner}/{name}/pulls/{number}/checks. Each row sits inROUTES(src/contract/openapi.ts) in its own block after the{REPO}/pulls/{number}/mergerow. It says what the route answers, whether it needs a token, and its body fields and refusals, all read from the handler in src/http/api.ts, and it uses the method the handler registers. The routes' lines leaveNOT_YET_DESCRIBEDin test/openapi-coverage.test.ts.test/openapi-oa-pull-checks.test.tsreads the rows from/api/v1/openapi.jsonand fails without them. test/openapi.test.ts and test/openapi-coverage.test.ts pass.bun x tsc --noEmit. A red test elsewhere that main also has is named in the pull, not a reason to stop.Files: src/contract/openapi.ts, test/openapi-coverage.test.ts, test/openapi-oa-pull-checks.test.ts. Split from #4851, which was too many routes for one run and went red twice.