$SECRET_NAME を介してSecretsを参照します。テンプレートを利用する前に、各ブループリントエディタ内の Secrets タブでこれらを設定してください。ブループリントに認証情報をハードコードしないでください。クイックスタート
Node.js プロジェクト
Node.js プロジェクト
Python プロジェクト
Python プロジェクト
フルスタック(Node + Python)
フルスタック(Node + Python)
リポジトリのブループリント
Python
- uv(推奨)
- pip + venv
Node.js
- npm
- pnpm
maintenance では npm ci ではなく npm install を利用してください。npm install は差分更新を行いますが、npm ci は毎セッション node_modules を削除し、すべてを最初から再インストールします。Go
Java
- Gradle
- Maven
Ruby on Rails
Rust
モノレポ
- マルチ言語
- 複数の JDK バージョン
非公開パッケージレジストリ
Node.js レジストリ
- npm (scoped)
- npm (full mirror)
- pnpm
- Yarn
@myorg/*) は非公開レジストリから取得し、公開パッケージは引き続きデフォルトの npm レジストリから取得するようにします。必要なシークレット
必要なシークレット
GITHUB_PACKAGES_TOKEN — read:packages スコープを持つパーソナルアクセストークン、または GitHub App トークンPython レジストリ
- pip / uv
- Poetry
必要なシークレット
必要なシークレット
PYPI_REGISTRY_URL— 必要に応じて認証情報を含む、PyPI インデックスの完全な URL (例:https://user:token@nexus.example.com/repository/pypi-proxy/simple)
JVM 用レジストリ
- Maven
- Gradle
必要なシークレット
必要なシークレット
MAVEN_REGISTRY_URL— Maven レジストリの URL (例:https://artifactory.example.com/artifactory/maven-virtual) -REGISTRY_USER— レジストリのユーザー名 -REGISTRY_PASS— レジストリのパスワードまたは API トークン
その他のレジストリ
Go モジュールプロキシ
Go モジュールプロキシ
GOPROXY エンドポイント) 経由でモジュールを取得できるように設定します。必要なシークレット
必要なシークレット
GO_PROXY_URL— Go モジュールプロキシの URL (例:https://athens.corp.internal)GIT_TOKEN— Go モジュールをホストする非公開 Git リポジトリ用のパーソナルアクセストークン
.NET / NuGet
.NET / NuGet
必要なシークレット
必要なシークレット
NUGET_SOURCE_URL— NuGet フィードの URLNUGET_API_KEY— フィードの APIキーまたは PAT
Docker
Docker
必要なシークレット
必要なシークレット
DOCKER_MIRROR_URL(任意) — Docker Hub ミラーの URL (例:https://mirror.corp.internal)DOCKER_REGISTRY_URL— 非公開のコンテナレジストリの URL (例:registry.corp.internal:5000)DOCKER_REGISTRY_USER— レジストリのユーザー名DOCKER_REGISTRY_PASS— レジストリのパスワードまたは API トークン
Rust / Cargo
Rust / Cargo
必要なシークレット
必要なシークレット
CARGO_REGISTRY_INDEX— 非公開レジストリインデックスの URL (例:sparse+https://cargo.corp.internal/api/v1/crates/)CARGO_REGISTRY_TOKEN— 非公開レジストリ用の認証トークン
Ruby / Bundler
Ruby / Bundler
必要なシークレット
必要なシークレット
GEM_SERVER_URL— 非公開の gem サーバーの URL (例:https://artifactory.example.com/artifactory/api/gems/gems-virtual)REGISTRY_USER— レジストリのユーザー名REGISTRY_PASS— レジストリのパスワードまたは API トークン
PHP / Composer
PHP / Composer
必要なシークレット
必要なシークレット
COMPOSER_REGISTRY_URL— 非公開の Composer レジストリの URL (例:https://repo.packagist.com/<org>)REGISTRY_USER— レジストリのユーザー名REGISTRY_PASS— レジストリのパスワードまたは API トークン
AWS CodeArtifact トークンの更新
AWS CodeArtifact トークンの更新
maintenance を利用してトークン更新コマンドを設定します。この例では、npm、pip、Maven で CodeArtifact を利用するよう設定します。awscli は Devin のベースイメージにあらかじめインストールされています。必要なのは、トークンの更新とレジストリの設定だけです。必要なシークレット
必要なシークレット
AWS_ACCESS_KEY_IDとAWS_SECRET_ACCESS_KEY—codeartifact:GetAuthorizationTokenおよびsts:GetServiceBearerToken権限を持つ IAM 認証情報CA_DOMAIN— CodeArtifact のドメイン名CA_DOMAIN_OWNER— ドメインを所有する AWS アカウント IDCA_REGION— AWS リージョン (例:us-east-1)CA_NPM_REPO,CA_PYPI_REPO,CA_MAVEN_REPO— 各エコシステムのリポジトリ名
Enterprise インフラストラクチャ
ネットワークと接続
社内CA証明書
社内CA証明書
必要なシークレット
必要なシークレット
CORP_ROOT_CA_B64 — 社内 CA の PEM 証明書を Base64 エンコードしたもの。生成方法: cat corp-root-ca.crt | base64 -w0複数のCA証明書
複数のCA証明書
必要なシークレット
必要なシークレット
CORP_ROOT_CA_B64 — Base64エンコードされたプライマリCA証明書 - CORP_INTERMEDIATE_CA_B64 — Base64エンコードされた中間CA証明書HTTP/HTTPS プロキシ
HTTP/HTTPS プロキシ
必要なシークレット
必要なシークレット
CORP_HTTP_PROXY— HTTP プロキシ URL (例:http://proxy.corp.example.com:8080) -CORP_HTTPS_PROXY— HTTPS プロキシ URL -CORP_NO_PROXY— プロキシを経由しないホストのカンマ区切りリスト (例:localhost,127.0.0.1,.corp.example.com)
認証付きプロキシ
認証付きプロキシ
必要なシークレット
必要なシークレット
PROXY_USER— プロキシのユーザー名 -PROXY_PASS— プロキシのパスワード -PROXY_HOST— プロキシのホスト名とポート (例:proxy.corp.example.com:8080) -CORP_NO_PROXY— プロキシを経由しないホスト
CA証明書 + プロキシ(併用)
CA証明書 + プロキシ(併用)
必要なシークレット
必要なシークレット
CORP_ROOT_CA_B64— Base64エンコードされた社内CA証明書 -CORP_HTTP_PROXY,CORP_HTTPS_PROXY— プロキシURL -CORP_NO_PROXY— プロキシをバイパスするホスト
VPN接続
VPN接続
必要なシークレット
必要なシークレット
VPN_CONFIG_B64— Base64 エンコードされた OpenVPN 設定ファイル (.ovpn) 。生成方法:cat corp.ovpn | base64 -w0VPN_AUTH_USER(任意) — VPN でユーザー名/パスワード認証が必要な場合の VPN ユーザー名VPN_AUTH_PASS(任意) — VPN パスワード
WG_CONFIG_B64— Base64 エンコードされた WireGuard 設定ファイル。生成方法:cat wg0.conf | base64 -w0
カスタムDNS名前解決
カスタムDNS名前解決
ID とセキュリティ
GPGコミット署名
GPGコミット署名
必要なシークレット
必要なシークレット
GPG_PRIVATE_KEY_B64— Base64エンコードされたGPG秘密鍵。生成方法:gpg --export-secret-keys <key-id> | base64 -w0GIT_USER_NAME— Gitの作成者名 (例:Devin AI)GIT_USER_EMAIL— Gitの作成者メールアドレス。GPGキー上のUIDと一致している必要があります。一致しない場合、GitHubは署名を検証しません。
Git ID とSSHキー
Git ID とSSHキー
必要なシークレット
必要なシークレット
GIT_USER_NAME— Gitの作成者名 -GIT_USER_EMAIL— Gitの作成者メールアドレス -SSH_PRIVATE_KEY_B64— Base64エンコードされたSSH秘密鍵。生成方法:cat ~/.ssh/id_ed25519 | base64 -w0-SSH_KNOWN_HOSTS_B64— Base64エンコードされたknown hostsエントリ。生成方法:ssh-keyscan git.corp.internal | base64 -w0-SSH_CONFIG_B64(任意) — Base64エンコードされたSSH設定ファイル
システム構成
システムパッケージ
システムパッケージ
カスタム環境変数
カスタム環境変数
KEY=VALUE 形式の行を $ENVRC ファイルに書き込むことです。$ENVRC に書き込まれた変数は、以降のすべてのステップと Devin セッションで自動的にエクスポートされます (GitHub Actions の $GITHUB_ENV と同様です) 。リソース制限(ulimits)
リソース制限(ulimits)
APTミラーの変更
APTミラーの変更
必要なシークレット
必要なシークレット
APT_MIRROR_URL — 内部 APT ミラーの URL (例: https://artifactory.example.com/artifactory/ubuntu-remote) 高度なパターン
direnv を使った環境変数の管理
direnv を使った環境変数の管理
.envrc ファイルを作成するには initialize を利用します。direnv がそれらを自動的に読み込みます。.envrc の変数は自動的に読み込まれます。手動で source する必要はありません。リポジトリごとのNodeバージョン切り替え
リポジトリごとのNodeバージョン切り替え
.nvmrc を使って、リポジトリごとに Node.js のバージョンを切り替えるには、nvm (プリインストール済み) を利用します。nvm use はリポジトリのルートにある .nvmrc を読み取ります。リポジトリに .nvmrc があることを確認してください (例: 20 を含むもの) 。ブラウザでの認証 (Playwright)
ブラウザでの認証 (Playwright)
localhost:29229 の CDP エンドポイントを備えた Chrome ブラウザを利用できます。Playwright スクリプトを利用して、ブラウザベースのログインを自動化してください。scripts/login.py) :カスタムのシステムツールとPATH
カスタムのシステムツールとPATH
initialize でシステムパッケージやカスタムバイナリをインストールし、PATH を設定します。ツールセットアップ用のGitHub Actions
ツールセットアップ用のGitHub Actions
setup-node や setup-python などのアクションは、PATH と環境変数を変更します。あるアクションでインストールされたバイナリは、後続のすべてのステップと maintenance で利用できます。サポートされるのは
Node.js ベースの GitHub Actions のみです。Composite アクションと Docker ベースのアクションはサポートされていません。複数アプリ向けローカル HTTPS リバースプロキシ
複数アプリ向けローカル HTTPS リバースプロキシ
app.example.com、api.example.com、admin.example.com のような実在しそうなホスト名で、複数のサービスを HTTPS 経由で公開できます。initialize で 1 つのリバースプロキシをインストールし、各ホスト名をそれぞれ異なるローカルのアップストリームポートにルーティングします。Caddy は、ルーティングとローカル TLS を 1 つのツールでまとめて処理します。Caddyfile では各ホスト名をアップストリームに対応付け、tls internal は Caddy に組み込まれた CA から、ホスト名ごとに信頼された証明書を自動発行します。caddy trust はその CA ルートをシステムの信頼ストアにインストールし、同じルートを NSS データベースにも追加すると、ブラウザでも受け入れられるようになります。Caddyfile はブループリントエディタの File attachments セクションからアップロードしてください。アップロードすると、$FILE_CADDYFILE として利用できるようになります。/etc/hosts ループによって、セッション内では app.example.com が 127.0.0.1 に名前解決されます。Caddyfile に記述する各ホスト名について、/etc/hosts ループにもエントリを追加してください。フルスタックの使用例
Enterprise向けのフルスタック(Artifactory)
Enterprise向けのフルスタック(Artifactory)
必要なシークレット
必要なシークレット
CORP_ROOT_CA_B64— Base64 エンコードされた社内CA証明書CORP_HTTP_PROXY— HTTP プロキシ URLCORP_HTTPS_PROXY— HTTPS プロキシ URLCORP_NO_PROXY— プロキシをバイパスするホスト
ARTIFACTORY_USER— Artifactory のユーザー名ARTIFACTORY_TOKEN— Artifactory API トークンまたはパスワードARTIFACTORY_MAVEN_URL— Maven リポジトリ URL (例:https://artifactory.example.com/artifactory/maven-virtual)ARTIFACTORY_PYPI_URL— PyPI リポジトリ URL (例:https://user:token@artifactory.example.com/artifactory/api/pypi/pypi-virtual/simple)ARTIFACTORY_NPM_URL— npm リポジトリ URL (例:https://artifactory.example.com/artifactory/api/npm/npm-virtual)ARTIFACTORY_DOCKER_URL— Docker レジストリ URL (例:artifactory.example.com)
- アカウント全体で共通 (
initialize) : 証明書とプロキシ - 組織全体 (
initialize): 言語ランタイムのインストール - 組織全体 (
maintenance): レジストリ認証情報 (ビルド中に更新され、セッション開始時にエージェントに渡される)
異なるレジストリを利用する多言語構成
異なるレジストリを利用する多言語構成
必要なシークレット
必要なシークレット
NEXUS_MAVEN_URL— Nexus Maven リポジトリ URLNEXUS_USER— Nexus のユーザー名NEXUS_PASS— Nexus のパスワードGITHUB_PACKAGES_TOKEN—read:packagesスコープを持つ GitHub パーソナルアクセストークンARTIFACTORY_USER— Artifactory のユーザー名ARTIFACTORY_TOKEN— Artifactory API トークンGIT_TOKEN— Go の非公開モジュール用パーソナルアクセストークン
VPN + 証明書 + プロキシ + 言語
VPN + 証明書 + プロキシ + 言語
必要なシークレット
必要なシークレット
VPN_CONFIG_B64— Base64 でエンコードされた OpenVPN 設定ファイル
CORP_ROOT_CA_B64— Base64 でエンコードされた社内CA証明書CORP_HTTP_PROXY— HTTP プロキシ URLCORP_HTTPS_PROXY— HTTPS プロキシ URLCORP_NO_PROXY— プロキシを経由しないホスト
MAVEN_REGISTRY_URL— Maven レジストリ URLNPM_REGISTRY_URL— npm レジストリ URLPYPI_REGISTRY_HOST— PyPI レジストリのホスト名REGISTRY_USER— レジストリのユーザー名 (Maven と pip 用)REGISTRY_PASS— レジストリのパスワード (Maven と pip 用)REGISTRY_TOKEN— npm 認証トークン
initialize ステップでは順序が重要です。 まず VPN (内部ホストに到達できるようにするため) 、次に DNS (名前解決を行えるようにするため) 、次に証明書 (HTTPS を機能させるため) 、次にプロキシ (トラフィックを正しくルーティングするため) 、最後に言語ランタイム (内部ミラーからダウンロードする場合があるため) を設定する必要があります。良い ブループリント を書くためのヒント
- まずセッションでコマンドをテストする。 ブループリント に追加する前に、Devin のセッションでコマンドを手動で実行してください。フルビルドを待つより、そのほうが速く済みます。
- 一度だけインストールするツールには
initialize、依存関係にはmaintenanceを利用する。 インストールに数分かかるもの (コンパイラ、大きなバイナリ、グローバルツール) はinitializeに入れます。短時間で終わる依存関係コマンド (npm install、uv sync) はmaintenanceに入れます。 maintenanceコマンドは高速に保つ。 2 分以内を目安にしてください。これらはビルド中に実行され、セッション開始時にエージェントに提示されます。- 環境変数には
$ENVRCを利用する。.bashrcや.profileには書き込まないでください。ステップ間やセッション間で変数を設定するための正式な仕組みは$ENVRCです。 - ステップには名前を付ける。
nameフィールドを使う expanded form にすると、ビルドログ内の失敗箇所を特定しやすくなります。 - モノレポ では サブシェル を利用する。
(cd packages/foo && npm install)は サブシェル 内で実行されるため、後続のステップはディレクトリ変更の影響を受けません。 npm ciではなくnpm installを利用する。npm ciはnode_modulesを削除し、ゼロから再インストールするため、maintenanceには不向きです。- 機密性の高い値には repo secrets を利用する。 ブループリント に直接書き込むのではなく、リポジトリのブループリントエディタの Secrets タブで設定してください。

