Skip to content
FunCoding

Search

Search docs, Skills and MCP

CloneKit CI 与短期认证

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

This page has not been translated into English yet. The original Chinese version is shown below.

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/进程环境,不写到日志或普通输出文件。