登记仓库
让雷达开始跟踪一个仓库,不发布。
/api/v1/repos让雷达开始跟踪一个仓库,不发布。请求体只有两种形态,都是「给我一个地址」:{ url }(一整个 GitHub 地址)或 { repo }(裸 owner/repo),两者都可选地带 callbackUrl + callbackSecret。不接受调用方带来的 GitHub 数据:那份星标数、语言、topics 是调用方某一时刻的快照,落库等于让统计建立在一个可能过期的副本上,服务端自己去取。按仓库去重:重发同一地址是安全的,返回 created: false。带 type 的请求会被 400 拒绝并指向 POST /api/v1/projects。最长 60 秒(要去 GitHub 抓数据)。
给了 Idempotency-Key 就启用幂等(§3.3),成功的响应会被记住并逐次回放;不带也不产生重复行。
Authorization
bearerAuth Authorization: Bearer <key>。key 由控制台自助签发,或管理员在 /dashboard 代签
In: header
Header Parameters
客户端生成的稳定字符串(建议 uuid)。给了就启用幂等:同 key + 同请求体回放上次的状态码与响应体(响应体按 JSON 语义相同,键序可能与首次不同);同 key + 不同请求体 409 idempotency_key_reuse;同 key 的另一个请求仍在跑 409 idempotency_in_flight + Retry-After。只有成功会被记住,24 小时后过期。超过 200 字符视作未带
length <= 200Request Body
application/json
两种形态二选一,都是严格校验,多一个字段整条拒绝:{ url } 或 { repo: "owner/repo" }。回调参数在两种形态下都可用——给了 callbackUrl 就必须给 callbackSecret,两者成对出现。
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/api/v1/repos" \ -H "Content-Type: application/json" \ -d '{ "url": "string" }'{ "ok": true, "repo": { "id": "string", "full_name": "string", "stars": 0 }, "created": true, "projectCount": 0}