Artifacts の外にすでに基準となるリポジトリがある場合は、既存リポジトリをインポートして、Artifacts のリポジトリとして使い始められます。
次のような用途に向いています。
- エージェントが fork する基準リポジトリ
- 新しいセッションやユーザー向けのテンプレートリポジトリ
- ワークフロー全体で使う、共有プロンプトや設定のリポジトリ
Artifacts は、公開 HTTPS リモートを REST API または Workers binding でインポートします。インポート後のリポジトリには通常の Artifacts リモート URL が付き、他のリポジトリと同じように clone、fork、リポジトリスコープのトークン発行ができます。
先に 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 リポジトリと同じように使えます。
- 安定した基準として残し、エージェント作業用に fork する
- リポジトリスコープのトークンで clone し、直接 Git アクセスする
- 固定テンプレートにしたい場合は読み取り専用にする
エンドポイントの詳細は REST API を参照してください。認証の詳細は Authentication を参照してください。