跳转到内容
搜索文档

导入仓库

最后更新 查看 MarkdownAgent 设置

当您在 Artifacts 之外已经拥有一个基线(baseline),并希望开始将其用作 Artifacts 仓库时,请导入该现有仓库。

这非常适用于:

  • 智能体(agent)进行派生(fork)的基线仓库
  • 用于新会话或新用户的模板仓库
  • 在各个工作流中使用的共享提示词(prompts)或配置仓库

Artifacts 可以通过 REST APIWorkers 绑定(binding)导入公开的 HTTPS 远程仓库。导入后,该仓库将拥有一个常规的 Artifacts 远程 URL,并且可以像其他仓库一样被克隆、派生或为其颁发仓库范围的令牌。

请先阅读 命名空间(Namespaces),然后在您的导入工作流中一致地使用同一个命名空间名称。

导入公开的 HTTPS 仓库

此示例将一个公开的 GitHub 仓库导入 default 命名空间。您可以在其他公开的 HTTPS Git 远程仓库上使用相同的流程。

使用具有 Artifacts > Edit 权限的 Cloudflare API 令牌

此示例使用 jq 来提取返回的字段。

export ACCOUNT_ID="<YOUR_ACCOUNT_ID>"
export ARTIFACTS_NAMESPACE="default"
export ARTIFACTS_REPO="workers-sdk-baseline"
export CLOUDFLARE_API_TOKEN="<YOUR_API_TOKEN>"
export ARTIFACTS_BASE_URL="https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/artifacts/namespaces/$ARTIFACTS_NAMESPACE"
IMPORT_RESPONSE=$(curl --silent --request POST "$ARTIFACTS_BASE_URL/repos/$ARTIFACTS_REPO/import" \
  --header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
  --header "Content-Type: application/json" \
  --data '{
     "url": "https://github.com/cloudflare/workers-sdk",
     "branch": "main",
     "depth": 100
   }')

if ! printf '%s' "$IMPORT_RESPONSE" | jq -e '.success == true' > /dev/null; then
  printf '%s\n' "$IMPORT_RESPONSE" | jq .
  exit 1
fi

export ARTIFACTS_REMOTE=$(printf '%s' "$IMPORT_RESPONSE" | jq -r '.result.remote')
export ARTIFACTS_TOKEN=$(printf '%s' "$IMPORT_RESPONSE" | jq -r '.result.token')

响应中包含新的 Artifacts 仓库元数据,包括 result.remoteresult.token

如果请求失败,此检查将打印 API 响应并在导出空值之前退出。

令牌直接在 ?expires= 后缀中对过期时间进行编码。

请将 result.token 视为机密。除非您的工作流需要,否则请勿将其记录到日志中或将其存储在长期存在的远程 URL 中。

此请求返回后,导入可能仍在进行中。如果后续的 REST 调用返回 409 Conflict,请在短暂延迟后重试。

使用导入的仓库

导入完成后,像使用其他 Artifacts 仓库一样使用该仓库。

  • 将其作为稳定的基线,并针对智能体(agent)工作从中进行派生
  • 使用仓库范围的令牌进行克隆,以直接进行 Git 访问
  • 如果您需要一个固定的模板仓库,请将其标记为只读

有关端点的详细信息,请参阅 REST API。有关身份验证的详细信息,请参阅身份验证

这篇文档对您有帮助吗?