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

The OpenAPI document describes browsing an origin's conversations: its issues and pulls, the lists and one of each #5244

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 /api/v1/user/origins/{id}/browse/{owner}/{name}/issues, …/issues/{number}, …/pulls and …/pulls/{number} (src/http/api.ts near line 4933); what the origin wrote is marked untrusted in the schema exactly as the answer marks it. 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