当您在 Artifacts 之外已经拥有一个基线(baseline),并希望开始将其用作 Artifacts 仓库时,请导入该现有仓库。
这非常适用于:
- 智能体(agent)进行派生(fork)的基线仓库
- 用于新会话或新用户的模板仓库
- 在各个工作流中使用的共享提示词(prompts)或配置仓库
Artifacts 可以通过 REST API 或 Workers 绑定(binding)导入公开的 HTTPS 远程仓库。导入后,该仓库将拥有一个常规的 Artifacts 远程 URL,并且可以像其他仓库一样被克隆、派生或为其颁发仓库范围的令牌。
请先阅读 命名空间(Namespaces),然后在您的导入工作流中一致地使用同一个命名空间名称。
此示例将一个公开的 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.remote 和 result.token。
如果请求失败,此检查将打印 API 响应并在导出空值之前退出。
令牌直接在 ?expires= 后缀中对过期时间进行编码。
请将 result.token 视为机密。除非您的工作流需要,否则请勿将其记录到日志中或将其存储在长期存在的远程 URL 中。
此请求返回后,导入可能仍在进行中。如果后续的 REST 调用返回 409 Conflict,请在短暂延迟后重试。
导入完成后,像使用其他 Artifacts 仓库一样使用该仓库。
- 将其作为稳定的基线,并针对智能体(agent)工作从中进行派生
- 使用仓库范围的令牌进行克隆,以直接进行 Git 访问
- 如果您需要一个固定的模板仓库,请将其标记为只读