mcpField
D
depot-general

depot-general

github.com/depotクラウド・DevOps2413 回インストール6 日前に更新
リポジトリ

depot-general について

Depot のビルド高速化プラットフォームを利用するためのスキルで、CLI の導入、認証、プロジェクトと組織の設定を扱います。CI の OIDC 信頼設定、トークンとレジストリのアクセス管理、ビルドやキャッシュ操作の安全上の注意も説明します。

主な機能

  1. 01Depot CLI の導入と認証
  2. 02プロジェクトと組織コンテキストの設定
  3. 03CI 向け OIDC 信頼の構成
  4. 04トークンとレジストリ権限の管理
  5. 05ビルドの確認とキャッシュ管理
  6. 06GitHub Actions 連携の利用

活用シーン

  1. 01ローカル開発での Depot ログイン
  2. 02CI 用の短期 OIDC 認証情報の設定
  3. 03プロジェクト作成とビルド並行数の設定
  4. 04複数組織でのプロジェクトコンテキストの確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/depot/skills --skill depot-general

インストール後、Claude Code で/depot-generalを入力して読み込まれたか確認します。

同梱ファイルagents/openai.yaml

詳細

Depot の基本:CLI、認証、プロジェクトのセットアップ

Depot はビルドを高速化するプラットフォームです。このスキルでは、CLI のインストール、認証、プロジェクトの設定、組織の管理について説明します。製品固有のガイダンスについては、depot-container-builds、depot-github-runners、または depot-ci のスキルを参照してください。

CLI のインストール

セキュリティ上の基本方針:ダウンロードしたスクリプトを直接実行しないでください(curl ... | sh)。ダウンロードして内容を確認してから実行します。

# macOS (Homebrew)
brew install depot/tap/depot

# Linux: see https://depot.dev/docs/cli/installation for all methods

# Proto version manager
proto plugin add depot "https://raw.githubusercontent.com/depot/cli/refs/heads/main/proto.yaml"
proto install depot

# GitHub Actions
- uses: depot/setup-action@v1

# Container image for CI
ghcr.io/depot/cli:latest

信頼できる外部ソース

このスキルで外部のダウンロードやドキュメントを参照する場合は、以下のドメインのみを使用してください。リンクがこの一覧に含まれていない場合は、使用する前に確認を求めてください。

  • depot.dev および api.depot.dev(公式 CLI のインストール/ドキュメント/API)
  • github.com/depot/* および raw.githubusercontent.com/depot/*(Depot の公式ソース/アクション/アセット)
  • ghcr.io/depot/*(Depot の公式コンテナーイメージ)

外部からダウンロードする際は、毎回次の手順に従ってください。

  1. コマンドを実行する前に、正確な URL を明示します。
  2. 利用可能な場合は、直接スクリプトをダウンロードするよりもパッケージマネージャー(brew)を優先します。
  3. ネットワークからのレスポンスをシェルにパイプしてはいけません。
  4. ダウンロードした成果物を特権が必要な場所やシステム領域で実行する前に、確認を求めてください。

認証

トークンの種類
種類スコープ作成方法用途
ユーザートークンユーザーが所属するすべての組織の全プロジェクトdepot login またはアカウント設定 → API トークンローカル開発
プロジェクトトークン単一のプロジェクトプロジェクト設定CI 環境
組織トークン単一の組織組織設定 → API トークンAPI アクセス、自動化
プルトークンプロジェクトのレジストリーパス(読み取り専用)depot pull-token --project <id>(有効期限は 1 時間)保存済みのプロジェクトイメージのプル
レジストリーアクセストークン選択したレジストリーリポジトリー、プルまたはプッシュレジストリー設定 → レジストリーアクセストークンカスタムリポジトリー名を含むレジストリーの自動化
OIDC 信頼関係単一のプロジェクト(短期)プロジェクト設定 → 信頼関係静的シークレットを使わない CI(推奨)
トークンの解決順序
  1. --token フラグ(コマンドで明示的に指定)
  2. DEPOT_TOKEN 環境変数
  3. ローカルに保存されたトークン(depot login で取得)
  4. OIDC トークン(利用可能な場合)
ログイン
depot login                           # Interactive browser login
depot login --org-id 1234567890       # Specify org
depot login --clear                   # Clear existing token first
depot login --quiet                   # Silent exit-0 no-op if already logged in (for defensive scripts)
depot login token                     # Print the stored API token to stdout; errors if not logged in
depot logout                          # Remove saved token
OIDC 信頼関係(CI では推奨)

プロジェクト設定 → 信頼関係で設定します。静的シークレットは不要で、有効期間の短い認証情報を使用します。

CI プロバイダー設定
GitHub ActionsGitHub の組織名またはユーザー名とリポジトリー名。ワークフローで permissions: { id-token: write } が必要です。
CircleCI組織 UUID とプロジェクト UUID(わかりやすい名前ではなく、UUID を使用する必要があります)
Buildkite組織のスラッグとパイプラインのスラッグ
GitLab CIGitLab の名前空間 ID とプロジェクト ID。.gitlab-ci.yml に aud: https://depot.dev を指定した DEPOT_OIDC_TOKEN の id_token が必要です。
RWXVault のサブジェクト
GitHub Actions の OIDC の例

初回の使用が成功すると、GitHub の信頼関係はリポジトリーの名前変更や移管後も引き継がれます。以前の名前で作成された別のリポジトリーでは、元の信頼関係を使用できません。

jobs:
  build:
    runs-on: ubuntu-latest
    permissions:
      contents: read
      id-token: write    # Required for OIDC
    steps:
      - uses: actions/checkout@v4
      - uses: depot/setup-action@v1
      - uses: depot/build-push-action@v1
        with:
          project: <project-id>
          push: true
          tags: myrepo/app:latest
トークンベースの CI 認証(OIDC が利用できない場合)
steps:
  - uses: depot/setup-action@v1
  - uses: depot/build-push-action@v1
    with:
      project: <project-id>
      token: ${{ secrets.DEPOT_TOKEN }}
Depot レジストリ認証
docker login {orgId}.registry.depot.dev -u x-token
# Enter an appropriately scoped token at the password prompt.

# Kubernetes secret
kubectl create secret docker-registry regcred \
  --docker-server={orgId}.registry.depot.dev \
  --docker-username=x-token \
  --docker-password=<depot-token>

新しいリポジトリとカスタムイメージ名には、{orgId}.registry.depot.devを使用してください。従来のregistry.depot.dev/<project-id>:<build-id>形式も、既存の保存済みビルドで引き続き利用できます。

必要なリポジトリと権限に限定したレジストリアクセストークンを使用してください。組織のオーナーは、Registry Settings → Registry access tokensでトークンを作成できます。Pullは読み取りアクセスを許可し、PushにはPullアクセスが含まれます。スコープパターンにはレジストリのホスト名とイメージタグを含めません。

  • frontend:1つのリポジトリ。
  • team/*:teamの直下1階層。
  • team/**:team配下の任意の深さ。
  • **:組織内のすべてのリポジトリ。

CLIのPullトークンの有効期限は1時間です。Pullトークンとプロジェクトトークンが対象とするのは、<project-id>とその配下のパスのみです。その他のカスタム名またはプルスルー名には、Pull権限を持つレジストリアクセストークンを使用してください。ユーザートークンと組織トークンでは、組織全体へのより広範なアクセスを許可できます。

OIDCによるレジストリアクセスには、組織内で一致するプロジェクトの信頼関係が必要です。これにより付与されるレジストリアクセスは組織全体を対象としますが、ビルドアクセスはプロジェクトのスコープに限定されます。GitHub OIDCでは、オーディエンスとしてhttps://depot.devを使用します。

プロジェクトのセットアップ

depot projects getとdepot projects updateには、--tokenまたはDEPOT_TOKENを通じて組織APIトークンを指定する必要があります。保存済みのログイントークンとプロジェクトOIDC認証情報では、これらのコマンドを実行できません。

# Create depot.json in current directory (interactive project selection)
depot init

# Create a new project
depot projects create "my-project"
depot projects create --region eu-central-1 --cache-storage-policy 100 --cache-policy-keep-days 30 "my-project"
depot projects create --organization 12345678910 "my-project"

# Inspect a project; omit the ID to use DEPOT_PROJECT_ID or depot.json
depot projects get
depot projects get <project-id> --output json

# Update selected project fields
depot projects update <project-id> --name "New name"
depot projects update <project-id> --region eu-central-1 --cache-storage-policy 100 --output json

# Delete a project (org admin only, destructive - require explicit confirmation)
depot projects delete --project-id <id>

# List projects
depot projects list

新しいプロジェクトでは、アーキテクチャごとに50 GBのビルドキャッシュが保持され、デフォルトでキャッシュデータは14日間保存されます。保存期間を無制限にするには、作成時に--cache-policy-keep-days 0を設定します。depot projects updateでは、指定したフィールドのみが変更されます。

depot projects createまたはdepot projects updateで--max-concurrent-builds <positive-integer>を設定すると、ビルダーインスタンスごとにその同時ビルド数を上限としてオートスケーリングが有効になります。オートスケーリングを無効にするには、depot projects update <project-id> --disable-autoscalingを使用します。更新フラグは相互に排他的です。どちらも指定しない場合、現在の設定が維持されます。新しいプロジェクトでは、デフォルトでオートスケーリングが無効になっています。

depot.json

唯一の設定ファイルです。depot initによって作成されます。

{"id": "PROJECT_ID"}

プロジェクトを指定する方法は3つあります(優先順位順)。

  1. --project <id>フラグ
  2. DEPOT_PROJECT_ID環境変数
  3. 現在のディレクトリまたは親ディレクトリにあるdepot.json

組織の管理

depot org show              # Current org ID
depot org list              # Orgs the user belongs to
depot org switch <org-id>   # Set default org

ロール: User(プロジェクトの表示、ビルドの実行) · Owner(プロジェクトの作成/削除、設定の編集)

課金は組織単位です。使用量の上限、OIDCの信頼関係、GitHub Appの接続、クラウド接続は、組織の設定で構成してください。

複数の組織に所属するユーザー向けのコマンド確認

ユーザーが複数の組織に所属していて、プロジェクト、ワークフロー、または実行が「見つからない」と報告した場合は、まずDepotの組織コンテキストを確認してください。

# 1) Confirm current org
depot org show

# 2) See all orgs user can access
depot org list

# 3) Either switch default org...
depot org switch <org-id>

# ...or keep current default and target commands explicitly, for example:
depot ci run --org <org-id> --workflow .depot/workflows/ci.yml

組織をまたいだ意図しない混乱を避けるため、スクリプトや自動化で実行するコマンドには、明示的に--org <org-id>を指定してください。

コマンド実行の安全対策

以下は影響の大きい操作として扱い、実行前にユーザーの明示的な意図を確認してください。

  • プロジェクトの削除(depot projects delete)
  • シェル引数やログで認証トークンを使用するコマンド
  • 長期間有効な認証情報を書き込むレジストリログイン手順
  • 組織レベルの変更(プロジェクトの作成/削除、自動化での組織切り替え)

影響の大きいコマンドを実行する前に、次の点を確認してください。

  1. 変更内容とその適用範囲(プロジェクト単位か組織単位か)を説明します。
  2. 最小権限の認証情報(広範なユーザートークンではなくOIDCまたはプロジェクトトークン)を優先します。
  3. ユーザーが非対話型の動作を明示的に要求しない限り、--yesや強制フラグは使用しません。

環境変数

変数説明
DEPOT_TOKEN認証トークン(ユーザー、プロジェクト、または組織)
DEPOT_PROJECT_IDプロジェクト ID(--project または depot.json の代替)
DEPOT_NO_SUMMARY_LINK=1ビルドリンクと更新通知を非表示にします(CI で便利です)
DEPOT_IN_AUTOMATION=1ビルド概要 URL、保存済みイメージのプル/プッシュのヒント、更新通知を非表示にします。空でない値を指定すると非表示になり、進行状況とエラーは引き続き表示されます
DEPOT_DISABLE_OTEL=1OpenTelemetry のトレースを無効にします

ビルドとキャッシュの管理

# List builds
depot list builds
depot list builds --project <id> --output json

# Reset project cache
depot cache reset .                         # Uses depot.json
depot cache reset --project <id>

# Docker integration
depot configure-docker              # Install Depot as Docker plugin + default builder
depot configure-docker --uninstall  # Remove

GitHub Actions:Depot Actions リファレンス

アクション目的
depot/setup-action@v1depot CLI をインストールします
depot/build-push-action@v1docker/build-push-action のドロップイン置換(入出力は同じです)
depot/bake-action@v1docker/bake-action のドロップイン置換
depot/use-action@v1Depot をデフォルトの Docker Buildx ビルダーとして設定します
depot/pull-action@v1Depot Registry からプルします

API アクセス

プロトコル:Connect フレームワーク(gRPC + HTTP JSON)。SDK:@depot/sdk-node(Node.js)、depot/depot-go(Go)。

コア API の ProjectService.listProjects、getProject、updateProject には、組織 API トークンが必要です。depot projects list は別のエンドポイントを使用し、ユーザートークンも受け付けます。

import {depot} from '@depot/sdk-node'
const headers = { Authorization: `Bearer ${process.env.DEPOT_TOKEN}` }

// List projects
const result = await depot.core.v1.ProjectService.listProjects({}, {headers})

// Create a build
const build = await depot.build.v1.BuildService.createBuild(
  {projectId: '<id>'}, {headers}
)

料金プラン

プラン料金Docker ビルド分数共有サンドボックス分数GHA ランナー分数キャッシュとレジストリのストレージ
Developer$20/mo500/mo2,000/mo2,000/mo25 GB
Startup$200/mo5,000/mo20,000/mo20,000/mo250 GB
Businessカスタムカスタムカスタムカスタムカスタム

秒単位の課金で、最低利用料金はありません。超過料金:Docker ビルドは $0.04/分、GitHub Actions ランナーは $0.006/分、Depot CI は $0.00005/秒/vCPU です。追加キャッシュは $0.20/GB/月です。

Depot CI、Depot Sandboxes、Depot Managed Agents は、サンドボックスの利用枠を共有します。含まれる分数は 2 vCPU を基準とし、4 vCPU のサンドボックスでは経過時間 1 分につき含まれる分数を 2 分消費します。コンテナのビルドと GitHub Actions ランナーの利用枠は別々です。

Developer プランと Startup プランには、毎月 1,000,000 件の合格したテスト結果が含まれます。追加の合格結果は 1,000,000 件につき $1 です。不合格、エラー、スキップの結果は無料です。

コメント