Origin API 协议与分页
处理字符串整数、opaque ID、游标、错误和按积分计算的配额。
请求/响应为 application/json,字段 camelCase,时间为 RFC 3339。protobuf 64 位整数如 PR number/version 以 JSON 字符串返回;不要默认全部数字均可安全转成 JavaScript Number。
默认值与兼容
普通响应会保留 false、0、空字符串、空数组;明确标记 omitted 的可选字段仍可缺失。preview 标记可位于操作、参数、schema 或单字段;同一稳定操作也可能含 preview 字段,读取未知 JSON 字段时保持兼容。
分页
pageSize 默认 30、上限 100,pageToken 是不透明 continuation。返回资源集合与 nextPageToken,后者为空表示结束,没有 total count。
后续请求保留相同 filters 和 pageSize,修改 filters 需重新分页;token 不匹配返回 400。不要自行构造 token 或从其内容推断偏移。
ID 与仓库路径
ID 是有类型前缀的 opaque string,按完整值保存,不解析内部结构或排序含义。仓库改名保持 ID。
ownerSlug/repoName 大小写不敏感,响应给规范保存形式。仓库路由也支持 _ owner 加 REPO_ID,例如 /repos/_/REPO_ID,可在改名后继续定位;这不授予权限,不可访问与不存在都可返回 404。Create Repo 只接受 owner slug,不接受 _。
配额
| Principal | 默认每分钟积分 |
|---|---|
| Installation token | 3000 |
| App JWT | 6000 |
| User / service account | 600 |
一般读 1 分、普通写及重读取 5 分、创建仓库/合并等部分操作 10 分;Get Rate Limit 不消耗。认证/授权失败不计费,具体 endpoint 以参考为准,不把积分当请求数。
读取 X-RateLimit-Limit/Remaining/Used/Reset/Resource;公共 API resource=core,Git 为独立 git 预算。429 按 Retry-After(当前 60 秒)等待,窗口由 burst 首次收费请求起算,不是整分钟边界。
错误
按 HTTP status 和 Google RPC 风格 code 分支,message 是开发者文本。details 可扩展未知类型,应忽略不认识的项。错误携带 X-Request-ID 和 RequestInfo,保存用于支持查询;404 不能用来证明资源不存在。