Repository navigation
Bring the OpenAPI spec up to date and split public from internal routes - #1286
Conversation
Fill in missing response schemas, fix schemas that drifted from the handlers, and document the remaining public routes (public file and feed item reads, gallery item download, pulls/repos/scope listings, and the managed PR comment). The drift test now covers every /v1/workspaces and /public route: each is either in the spec or listed as internal with a reason. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011zYKsSCeiPusqfzgGJSZeq
|
|
Important Review skippedAuto reviews are limited based on label configuration. 🏷️ Required labels (at least one): 2
🚫 Excluded labels (none allowed): 1
Please check the settings in the CodeRabbit UI or the
|
Requested by Zach · project thread
Gets
/.well-known/openapi.jsonready to serve as the contract for a public TypeScript SDK, and makes every route explicitly public or internal.Schema fixes (drifted from handlers)
Usage:periodStartisYYYY-MM, not a date-time; addedstorageBudgetBasisandstorage(mode, fallback lanes, health).FileHead/FilePut: addedprovenance,pageUrl(list),holdCheck: "pending".GalleryItem/FeedItem: addedmetadata,posterUrl,videoDimensions.area.referencesis now typed (ExternalReference).metadata=0, searchcollapse=promoted.Response schemas that were missing
files/sign(SignedUpload),usage/reconcile,usage/purge-expired, galleryitems/order, external references list/add,GET /public/galleries/{id}(PublicGallery),GET /public/feeds/{id}(PublicFeed, incl. thegithubtitle/state block).Newly documented public routes
GET /public/files/{workspace}/{key}(and?download=1)GET /public/feeds/{id}/items/{item}GET /public/galleries/{id}/items/{item}/downloadGET /v1/workspaces/{ws}/pulls,/repos,/scope/{owner}/{repo}/files(tag "Activity")POST /v1/workspaces/{ws}/github/comment(tag "GitHub"); this is the call agents make once they finish uploadingPublic vs internal split
apps/api/src/openapi-contract.test.tsnow covers every/v1/workspaces/*and/public/*route instead of four verticals. Each route has to be in the spec or listed inINTERNAL_PREFIXESwith a reason:github/*route exceptcomment./me,/admin,/internal, the legacy/v1/:workspacealiases and the other top-level families were already out of scope.docs/api.mdgains the new rows plus a short paragraph that names the spec as the public contract. The docs API reference picks up a "Pull requests" section and keeps/public/filesunder "Public reads".Testing
redocly linton the spec: valid.Generated by Claude Code