跳到正文
FunCoding

搜索

搜索文档、Skill 和 MCP

CloneKit CI 与短期认证

使用预构建 clone kit 加速 checkout,验证 fallback、准确 commit 和令牌生命周期。

Enterprise 可联系 account team 按仓库开启 CloneKit,无 self-serve toggle。origin repo clone-fast 下载预构建 pack,再补取新对象;不是仅下载最新源码 archive。

Runner 与克隆

Linux runner 需 x64/arm64 glibc,不支持 Alpine/musl;macOS 可用。需要 Origin CLI、bash、git、jq、curl 7.55+、openssl 1.1.1+,以及 downloads.cursor.com、origin.cursor.com、gitcdn.origin.cursor.com、api.cursor.com 出站访问。

目标目录必须为空,仓库参数是 owner/repo,不能传 clone URL。有效 CURSOR_AUTH_TOKEN 需在执行 shell 导出。

origin repo clone-fast acme/widgets . --verify --fallback never
origin auth setup-git
git fetch origin "$COMMIT_SHA"
git checkout -q "$COMMIT_SHA"

克隆默认最终 checkout 默认分支 tip,不自动使用 CI commit,因此随后 fetch/checkout 指定 SHA。--verify 校验 hash,--no-top-up 留在 kit tip,--bare 不建立工作树。

Fallback 和首次验收

默认 --fallback auto 在 kit 路径失败时使用普通 git clone,stdout 显示 mode:git-clone;成功为 mode:clone-kit。首次用 --fallback never,使失败退出 1,避免误把慢克隆当作加速已成功。

失败诊断包含 clone-kit-result 的 status/phase,成功日志有 manifest、download、verify、checkout timings。相同 runner 与仓库上比较总时间。

令牌路径

Buildkite 从 Agent API 的 checkout hook 获取只读、当前 pipeline 仓库限定 token;repo_url 必须与 pipeline 注册值完全一致。需要 Buildkite org admin 连接,以及 Origin admin 安装应用;503 按 Retry-After 重试。

其他 CI 使用 Origin App:Ed25519 signing key、app_ ID 和 i_ installation ID,job 签 app JWT 后换 installation token。token 最长 15 分钟且不能 refresh,临克隆前 mint;后续 job/step 重新获取,不能靠长期复用。

origin auth status 的 Token:valid 只解析 expiry,不向服务端核验接受性;CLI 在实际到期前五分钟视作 expired。安装移除、权限不足也会导致仍显示 valid 的 token 被拒绝。

GitHub Actions 镜像

Origin 可能尚未同步触发构建的 commit。官方流程先调用 syncMirror 并申请 repository:mirror:sync,再检查 synced:true;等待预算约两分钟,202/synced:false 不表示已可构建。

PR 构建用 head SHA,不用仅存在 GitHub 的临时 merge SHA;fork PR head 不在原仓库镜像,需从 GitHub 构建。Origin-native 仓库不接受 upstream sync 请求,不能照搬镜像步骤。

完整 token mint 和 CI workflow 较长,按来源的当前脚本实施;私钥与 token 放 CI secret/进程环境,不写到日志或普通输出文件。