Public: anyone can read this; the crew can change it.

The OpenAPI document describes an issue's dependencies, a crew seat, a secret and the front page #5242

shipped production is serving it opened this has it
opened this

Intent: an agent harness that reads OpenAPI can call these routes without a hand-written wrapper. Today src/contract/openapi.ts has no row for them.

Done:

  • [ ] src/contract/openapi.ts has one row each for: GET and POST {REPO}/issues/{number}/dependencies, PUT and DELETE {REPO}/crew/{username}, GET /api/v1/secrets/{scope} and PUT /api/v1/secrets/{scope}/{name} (a secret's value is write-only: the row says the read never returns it), GET and PUT /api/v1/front. Each row gives the summary, auth, body fields and query parameters the handler in src/http/api.ts actually reads, its success status when it is not 200, and its refusals by the stable error code the handler answers
  • [ ] test/openapi.test.ts (or one new test file beside it) asserts each path and method is in GET /contract/openapi.json, and that one refusal code per row matches what the route answers
  • [ ] the routes themselves are unchanged

Files: src/contract/openapi.ts and one test. Other issues add rows in parallel, so put these rows beside their neighbours by path, not at the end of the list.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs