概要
.devin/blueprint.yaml ファイルとしてリポジトリに直接保存できます。API または UI からそのファイルを Devin に同期し、その後スナップショットのビルドをトリガーして変更を適用します。
これにより、アプリケーションコードと同じワークフローを利用できます。つまり、IDE で編集し、プルリクエスト を作成し、レビューを受けてマージしたうえで、CI ステップまたは UI から同期とビルドを行えます。
| アプローチ | ブループリントの保存場所 | 編集方法 | 変更の適用方法 |
|---|---|---|---|
| データベース (デフォルト) | Devin の設定 UI | ブラウザで編集 | クリックするとすぐに保存 |
| Git 連携 | リポジトリ内の .devin/blueprint.yaml | IDE で編集し、PR をマージ | sync API を呼び出す (または UI で Sync をクリックする) → その後ビルドをトリガーする |
Git 連携のブループリントでは、UI エディタと同じ YAML 形式を使用します。利用可能なすべてのフィールドと構文については、Blueprint referenceを参照してください。
利用開始
1. ブループリントファイルを作成する
.devin/blueprint.yaml ファイルを追加します。
2. デフォルトブランチにプッシュする
.devin/blueprint.yaml をコミットし、リポジトリのデフォルトブランチ (通常は main または master) にプッシュします。
リポジトリがすでに Devin の環境に接続されている場合は、Devin がそのファイルを取り込めるよう、同期をトリガーする (API または UI の Sync ボタンから) 必要があります。初めてリポジトリを追加する場合は、初回の検出時に Git からブループリントが読み込まれます。
3. UIで確認する
同期の仕組み
.devin/blueprint.yaml を取得し、Devin に保存されているブループリントのバージョンを更新する処理です。同期は push しても自動では実行されず、明示的にトリガーする必要があります。
- API 同期 — v3 の sync エンドポイントを呼び出します (下のAPI を使った同期を参照) 。これは CI/CD パイプラインに推奨される方法です。
- UI 同期 — ブループリントエディタの Sync ボタンをクリックします。内容が変更されていた場合は、これによりスナップショットのビルドもトリガーされます。
- Environment に repo を追加するとき — デフォルトブランチに
.devin/blueprint.yamlが存在する場合、初回検出時に Git からブループリントが自動的に取得されます。
同期とビルド
- 同期 では、Git から最新の
.devin/blueprint.yamlを取得し、新しいブループリントのバージョンとして保存します。 - ビルド では、現在のブループリントのバージョンをもとに新しいスナップショットイメージを作成します。
API 経由で同期
.devin/blueprint.yaml への変更をマージした後に v3 API を呼び出すことです。これは通常、CI/CD パイプライン (例: GitHub Actions のマージ後のステップ) から実行します。
エンドツーエンドの流れ
ステップ 1: ブループリントを同期する
.devin/blueprint.yaml を取得します。
repo_name フィールドには、GitHub の場合は owner/repo、それ以外のホストの場合はプロバイダーの完全な URL (例: https://gitlab.com/org/repo) を指定できます。
ステップ 2: ビルドをトリガーする
ステップ 3: ビルドのステータスをポーリングする (任意)
status フィールドは次のように遷移します:running → succeeded または failed。
Enterprise全体の同期
例: GitHub Actions ワークフロー
サービスユーザー または Environment への書き込み権限を持つパーソナルアクセストークンが必要です。トークンを
DEVIN_API_TOKEN、org ID を DEVIN_ORG_ID としてリポジトリのシークレットに保存してください。Git で管理されるブループリントの編集
エディタから PR を作成する
- Settings > Environment > Blueprints でブループリントエディタを開きます
- エディタで YAML を編集します
- Create PR をクリックします
- Devin がリポジトリに
.devin/blueprint.yamlを更新するプルリクエストを作成します - PR をレビューし、承認してマージします
- 次回の同期で変更が反映され、ビルドがトリガーされます
リポジトリを直接編集する
- IDE または Gitプロバイダー上で
.devin/blueprint.yamlを編集します - デフォルトブランチにコミットしてプッシュします (または PR を作成してマージします)
- API 経由で同期をトリガーするか、UI で Sync をクリックします
Devin の提案
.devin/blueprint.yaml に対する PR を作成する形で適用されます。ほかのコード変更と同様に、その PR をレビューしてマージします。
モノレポとワークスペース
includes ディレクティブを利用して、各ワークスペースごとに個別のブループリントを定義できます。各ワークスペースには、それぞれのサブディレクトリ内に固有の .devin/blueprint.yaml ファイルが配置されます。
インクルード付きのルートブループリント
.devin/blueprint.yaml では、どのワークスペースが独自のブループリントを持つかを指定します:
ワークスペースのブループリント
.devin/blueprint.yaml があります。
インクルードのルール
- 各
includesエントリにはサブディレクトリのパス (例:packages/frontend) を指定します。Devin はそのディレクトリ内の.devin/blueprint.yamlを探します。 - 完全なパス
packages/frontend/.devin/blueprint.yamlを指定することもできます。 includesを含められるのはルートブループリントのみです。入れ子のインクルード (インクルード先のブループリント内でさらにincludesを宣言すること) は許可されません。- 各ワークスペースのパスは
includes内に 1 回だけ指定できます。 - インクルードされたファイルがリポジトリ内に存在しない場合、そのワークスペースは削除されたものとして扱われ、対応するブループリントはクリーンアップされます。
Gitモードとデータベースモードの切り替え
Git に切り替える
- リポジトリに、必要な内容を記述した
.devin/blueprint.yamlを作成します - デフォルトブランチにプッシュします
- ブループリントエディタでソースのドロップダウンをクリックし、Git プロバイダ (例: “GitHub”) を選択します
- Devin が Git からファイルを同期し、Git 連携に切り替わります
データベースに切り替える
- ブループリントエディタでソースのドロップダウンをクリックし、Database を選択します
- 現在の内容は保持されますが、今後
.devin/blueprint.yamlにプッシュしてもブループリントは更新されなくなります - 以降は UI で直接編集して保存できます
デタッチされたワークスペース
バージョン履歴
- ソース: 同期で作成されたバージョンは
git_sync、UI で作成されたバージョンはmanual - コミット SHA: 同期が実行されたデフォルトブランチのコミット (Git プロバイダー上の該当コミットへのリンク)
マルチドキュメントYAML
.devin/blueprint.yaml では --- 区切りを使ったマルチドキュメントYAMLをサポートしています。これにより、1つのファイルでプラットフォーム固有の設定を定義できます。
トラブルシューティング
ブループリントが同期されない
- ファイルは正しいパスにありますか? リポジトリルートでは
.devin/blueprint.yaml、含まれるワークスペースでは<workspace>/.devin/blueprint.yamlである必要があります。 - 同期をトリガーしましたか? pushしても同期は自動では実行されません。同期用のAPIエンドポイントを呼び出すか、UIのSyncボタンをクリックしてください。
- リポジトリはDevinの環境に追加されていますか? 同期を実行するには、Settings > Environment > Blueprintsでそのリポジトリを追加しておく必要があります。
- Git 連携は有効になっていますか? 同期で更新されるには、ブループリントがGit 連携 (database modeではなく) になっている必要があります。
無効な YAML に関するエラー
.devin/blueprint.yaml に無効な YAML が含まれている場合、またはブループリントのスキーマに準拠していない場合、同期はエラーで失敗します。デフォルトブランチ上のファイルを修正して、再度同期してください。UI のブループリントエディタでは、PR を作成する前にスキーマが検証され、エラーが表示されるため、問題がデフォルトブランチに反映される前に見つけやすくなります。
プッシュ後も Blueprint に “Database” と表示される
.devin/blueprint.yaml をプッシュしても、エディタでソースが引き続き “Database” と表示される場合は、ブループリントがまだ Git 連携モードに切り替わっていない可能性があります。ソースのドロップダウンから Git プロバイダに切り替えてください。これにより初回同期が開始されます。
