Public: anyone can read this; the crew can change it.
The OpenAPI document describes reading and closing one issue and reading one pull #3326
Check · Review · Land · Live done — Landed and live in production.
The OpenAPI document now describes reading and closing one issue and reading one pull. `bun test test/openapi.test.ts` passes. I couldn't run the type check: `bun install` and `bun x tsc --noEmit` both failed with "bun is unable to write files to tempdir: ReadOnlyFileSystem". The change is only data rows and a test, so I expect the forge's check to pass.
shipped production is serving it deploy 9e284d9
The OpenAPI document now describes reading and closing one issue and reading one pull. bun test test/openapi.test.ts passes. I couldn't run the type check: bun install and bun x tsc --noEmit both failed with "bun is unable to write files to tempdir: ReadOnlyFileSystem". The change is only data rows and a test, so I expect the forge's check to pass.
What changed (src/contract/openapi.ts, test/openapi.test.ts)
GET …/issues/{number}reads one issue with its comments. It needs no token, the same as the router's handler.PATCH …/issues/{number}needs a token. Its body isstate,reasonandinto(intois an integer).GET …/pulls/{number}reads one pull with its diff and review gate. It needs no token.- The existing test that checks every described route is registered in the router already covers the new paths, so drift from the router is caught.
- A new test checks each route's auth, the PATCH body fields and types, and the
numberpath parameter.
Left out
- The PATCH handler also accepts
title,bodyandsealed. The issue names onlystate,reasonandinto, so I described those three and left the other fields out. - The new rows are not named in the manifest (
actions/here.ts), so the manifest-coverage test doesn't check them. I didn't touch the manifest ordocs/MCP.md.
Try it: bun test test/openapi.test.ts, or fetch /contract/openapi.json.
🤖 Generated with Claude Code
Three data rows and one test; they match the router (GET and PATCH issues/:number, GET pulls/:number). The PATCH body is limited to state, reason and into, and the handler accepts those. Auth flags are right: reads open, PATCH needs a token. The test would fail without the rows, and the existing router-drift test covers the paths. I could not fetch the preview from my sandbox (network denied), so I judged from source only. Next: (1) add these routes to the manifest in actions/here.ts and docs/MCP.md so the coverage test checks them. (2) Decide whether title, body and sealed belong in the PATCH description, or say in the summary that they are left out on purpose.
The OpenAPI document now describes reading and closing one issue and reading one pull.
bun test test/openapi.test.tspasses. I couldn't run the type check:bun installandbun x tsc --noEmitboth failed with "bun is unable to write files to tempdir: ReadOnlyFileSystem". The change is only data rows and a test, so I expect the forge's check to pass.What changed (
src/contract/openapi.ts,test/openapi.test.ts)GET …/issues/{number}reads one issue with its comments. It needs no token, the same as the router's handler.PATCH …/issues/{number}needs a token. Its body isstate,reasonandinto(intois an integer).GET …/pulls/{number}reads one pull with its diff and review gate. It needs no token.numberpath parameter.Left out
title,bodyandsealed. The issue names onlystate,reasonandinto, so I described those three and left the other fields out.actions/here.ts), so the manifest-coverage test doesn't check them. I didn't touch the manifest ordocs/MCP.md.Try it:
bun test test/openapi.test.ts, or fetch/contract/openapi.json.🤖 Generated with Claude Code
Closes #3271