Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

REST API

最終更新 Markdown で表示Agent セットアップ

REST API で Artifacts リポジトリを作成し、通常の Git クライアントでコンテンツを push / pull します。

このガイドの最後には、名前空間内にリポジトリを作成し、リモート URL を取得し、コミットを push し、標準の Git クライアントで同じリポジトリを clone できます。

まず 名前空間 を読み、使う名前空間名を決めます。このガイドの例では default を使います。

前提条件

次のものが必要です。

  • Artifacts へのアクセス。
  • 名前空間名(例: default)。
  • Artifacts > ReadArtifacts > Edit 権限を持つ Cloudflare API トークン
  • ローカルの git クライアント。
  • レスポンスフィールドを自動で取り出したい場合は jq

Worker から直接リポジトリを作成・管理する場合(REST API を呼び出さない場合)は、Workers のスタートガイド を使います。

1. 環境変数をエクスポートする

Cloudflare のアカウント ID と Artifacts API トークンを使って、次の変数を設定します。

export ARTIFACTS_NAMESPACE="default"
export ARTIFACTS_REPO="starter-repo"
export ACCOUNT_ID="<YOUR_ACCOUNT_ID>"
export CLOUDFLARE_API_TOKEN="<YOUR_API_TOKEN>"
export ARTIFACTS_BASE_URL="https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/artifacts/namespaces/$ARTIFACTS_NAMESPACE"

このガイドを実行するたびに、一意のリポジトリ名を使ってください。

Artifacts の API リクエストは Bearer 認証を使います。

Authorization: Bearer $CLOUDFLARE_API_TOKEN

2. リポジトリを作成する

その名前空間内にリポジトリを作成する方法を、次から選びます。

curl --request POST "$ARTIFACTS_BASE_URL/repos" \
  --header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
  --header "Content-Type: application/json" \
  --data "{\"name\":\"$ARTIFACTS_REPO\"}"

レスポンスは次のようになります。

{
	"result": {
		"id": "repo_123",
		"name": "starter-repo",
		"description": null,
		"default_branch": "main",
		"remote": "https://<ACCOUNT_ID>.artifacts.cloudflare.net/git/default/starter-repo.git",
		"token": "art_v1_0123456789abcdef0123456789abcdef01234567?expires=1760000000"
	},
	"success": true,
	"errors": [],
	"messages": []
}

レスポンスには、Git 操作に必要な 2 つの値が含まれます。

  • remote: このリポジトリの Git リモート URL です。<ACCOUNT_ID> は実際の Cloudflare アカウント ID になります。すべての Git コマンド(git push、git clone)にこの URL を使います。リポジトリ作成に使った REST API とは別の URL です。
  • token: Git 操作用の短命な資格情報です。トークンは ?expires= サフィックスに Unix タイムスタンプとして有効期限を直接エンコードします。

resultremotetoken を、ローカルのシェル変数にコピーします。

export ARTIFACTS_REMOTE="<PASTE_RESULT_REMOTE_FROM_RESPONSE>"
export ARTIFACTS_TOKEN="<PASTE_RESULT_TOKEN_FROM_RESPONSE>"

作成レスポンスを一度保存し、jq でフィールドを取り出します。

CREATE_RESPONSE=$(curl --silent --request POST "$ARTIFACTS_BASE_URL/repos" \
  --header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
  --header "Content-Type: application/json" \
  --data "{\"name\":\"$ARTIFACTS_REPO\"}")

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

3. リポジトリ URL を再取得する

後でリモート URL を取り戻す必要があるときは、リポジトリのメタデータを取得します。

curl "$ARTIFACTS_BASE_URL/repos/$ARTIFACTS_REPO" \
  --header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"
{
	"result": {
		"id": "repo_123",
		"name": "starter-repo",
		"description": null,
		"default_branch": "main",
		"created_at": "<ISO_TIMESTAMP>",
		"updated_at": "<ISO_TIMESTAMP>",
		"last_push_at": null,
		"source": null,
		"read_only": false,
		"remote": "https://<ACCOUNT_ID>.artifacts.cloudflare.net/git/default/starter-repo.git"
	},
	"success": true,
	"errors": [],
	"messages": []
}

このエンドポイントが返すのはリポジトリのメタデータだけです。新しいリポジトリトークンが必要な場合は、POST /tokens で発行します。

4. git で最初のコミットを push する

ローカルリポジトリを作成し、Artifacts のリモートに push します。

mkdir artifacts-demo
cd artifacts-demo
git init -b main
printf '# Artifacts demo\n' > README.md
git add README.md
git commit -m "Initial commit"
git remote add origin "$ARTIFACTS_REMOTE"
git -c http.extraHeader="Authorization: Bearer $ARTIFACTS_TOKEN" push -u origin main

これは推奨のヘッダー形式で、トークンをリモート URL に含めません。

短命なコマンド用に自己完結したリモート URL が必要な場合は、トークンシークレットから組み立てます。

export ARTIFACTS_TOKEN_SECRET="${ARTIFACTS_TOKEN%%\?expires=*}"
export ARTIFACTS_AUTH_REMOTE="https://x:${ARTIFACTS_TOKEN_SECRET}@${ARTIFACTS_REMOTE#https://}"
git push "$ARTIFACTS_AUTH_REMOTE" HEAD:main

5. 通常の git クライアントでリポジトリを pull する

同じリポジトリを、別のディレクトリに clone します。

cd ..
git -c http.extraHeader="Authorization: Bearer $ARTIFACTS_TOKEN" clone "$ARTIFACTS_REMOTE" artifacts-clone
git -C artifacts-clone log --oneline -1

前の手順で push したコミットが表示されます。

短命なコマンド用に、自己完結したリモート URL で clone することもできます。

git clone "$ARTIFACTS_AUTH_REMOTE" artifacts-clone

次のステップ

REST API リファレンス

すべてのリポジトリおよびトークンのエンドポイントと、リクエスト・レスポンスの例を確認します。

ベストプラクティス

リポジトリの分離、最小権限のトークン、名前空間の分離を効果的に使います。

役に立ちましたか?