前提条件: このガイドは、宣言的な環境構成に関する知識があることを前提としています。概要については、宣言的な環境構成を参照してください。
環境を構成する前に、SCM プロバイダーが接続済みであること (Enterprise Settings > Integrations) 、および各組織に対象リポジトリへのアクセス権が付与されていること (Enterprise Settings > Repository Permissions) を確認してください。組織は、明示的にアクセス権が付与されるまで、環境にリポジトリを追加できません。詳しくは、Git Integrationsを参照してください。
Enterprise 管理者は、Enterprise 内のすべての組織に適用されるベース環境を定義できます。これにより、各組織やリポジトリがその上に独自の設定を重ねてカスタマイズできるようにしつつ、Devin が利用するツール、ランタイム、セキュリティインフラストラクチャを一元的に管理できます。
Devinの環境設定は、3層の階層構造になっています。各層は、その上位の層を土台として構成されます。
+-----------------------------------------+
| Enterprise Blueprint |
| Python 3.12, Node 20, security tools |
+-----------------------------------------+
| Organization Blueprint |
| private npm registry, team linting |
+-----------------------------------------+
| Repository Blueprint |
| npm install, project-specific config |
+-----------------------------------------+
| ティア | Who manages it | Scope |
|---|
| Enterprise | Enterprise 管理者 | すべての組織、すべてのリポジトリ |
| Organization | org 管理者 | 組織内のすべてのリポジトリ |
| Repository | org 管理者またはリポジトリ設定 | 単一のリポジトリ |
この関係は累積的です。org およびリポジトリのブループリントは Enterprise ブループリントの上に積み重なる形で適用され、置き換えるものではありません。ビルドのたびに、まず Enterprise ブループリントが実行され、ベースラインが確立されます。次にorg のブループリントが実行され、チーム固有の設定が追加されます。最後に、各リポジトリのブループリントが実行され、プロジェクト固有のセットアップが適用されます。
org およびリポジトリのブループリントの関係については、Blueprint のスコープを参照してください。
Enterprise ブループリントを定義するには、Settings > Devin’s base environment に移動します。形式は org および repo のブループリントと同じで、initialize、maintenance、knowledge の各セクションで構成されます。
Enterprise ブループリントは、org および repo のブループリントより前に、すべてのビルド で最初に実行されます。つまり、Enterprise レベルでインストールされたツールやランタイムは、後続のすべてのブループリントで利用できます。
Enterprise ブループリントには、すべての組織で必要となるツールや設定を含めます。一般的な利用例は次のとおりです。
Enterprise 全体で言語のバージョンを固定し、すべてのチームが同じツールチェーンで作業できるようにします:
initialize:
- name: "Install Python 3.12"
uses: github.com/actions/setup-python@v5
with:
python-version: "3.12"
- name: "Install Node.js 20"
uses: github.com/actions/setup-node@v4
with:
node-version: "20"
- name: "Install Go 1.22"
uses: github.com/actions/setup-go@v5
with:
go-version: "1.22"
すべてのプロジェクトで利用が必須のスキャナーと監査ツールをインストールします:
initialize:
- name: "Install security tools"
run: |
npm install -g snyk
pip install safety bandit
curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh
社内専用のツールをすべての環境に配布します:
initialize:
- name: "Install internal CLI"
run: |
curl -L https://internal.example.com/cli/latest/linux-amd64 \
-o /usr/local/bin/internal-cli
chmod +x /usr/local/bin/internal-cli
パッケージマネージャーが社内レジストリを参照するよう設定します。
initialize:
- name: "Configure internal registries"
run: |
npm config set registry https://npm.internal.example.com/
pip config set global.index-url https://pypi.internal.example.com/simple/
社内CA証明書をインストールし、プロキシ設定を行います。
initialize:
- name: "Install corporate certificates"
run: |
cp "$FILE_CORPORATE_CA_CERT" /usr/local/share/ca-certificates/corporate-ca.crt
update-ca-certificates
echo 'export NODE_EXTRA_CA_CERTS=/usr/local/share/ca-certificates/corporate-ca.crt' >> ~/.bashrc
ビルド中は、各ティアのステップが決まった順序で実行されます。前のティアの出力は後のティアで利用できます。Enterprise レベルでインストールされたツールは、再インストールしなくても org や repo のブループリントですぐに利用できます。
ビルドでは、次の順序で新しいスナップショットが作成されます。
1. Enterprise ブループリント(~ で実行):
a. initialize
b. maintenance
2. 組織ブループリント(~ で実行):
a. initialize
b. maintenance
3. すべてのリポジトリをクローン(最大10件を同時並行)
4. Settings に表示された順序で、設定済みの各リポジトリに対して
(~/repos/<repo-name> で実行):
a. initialize
b. maintenance
5. ヘルスチェック後、スナップショットを保存
ティアは累積的です。repo ブループリントでは、org または enterprise ブループリントにインストールされたツールを利用できます。下位のティアで上位のティアが設定した内容を上書きすることはできません。ビルドには通常 5~15 分かかります。各コマンドは 1 時間でタイムアウトします。
すべてのティアのknowledgeアイテムが収集され、Devin で利用できるようになります。複数のティアで同じ名前の knowledge アイテムが定義されている場合は、それらがすべて含まれます。互いに上書きされることはありません。
Enterprise 管理者は、Enterprise レベルでシークレットを定義できます。これらのシークレットは、Enterprise、org、repo のブループリントステップを問わず、すべての組織にわたるすべてのビルドとすべてのセッションで、環境変数として利用できます。
Enterprise シークレットは、会社全体で共有する認証情報に使用してください。
- 社内パッケージレジストリのトークン
- 社内プロキシ認証
- 社内サービス用の共有 APIキー
- Enterprise 向けツールのライセンスキー
Enterprise シークレットは、Enterprise ブループリントを設定するのと同じ Enterprise-wide setup ページで管理します。ブループリントとシークレットの両方を 1 か所で管理するには、Settings > Devin’s base environment に移動してください。
Enterprise シークレットの管理には、ManageAccountResources 権限が必要です。
org のシークレットが Enterprise シークレットと同じ名前の場合は、org のシークレットが優先されます。これにより、必要に応じて各組織で Enterprise 全体のデフォルトを上書きできます。
Enterprise管理者は、すべての組織に対して連鎖的に適用される再ビルドをトリガーできます。これは次のような場合に役立ちます。
- Enterpriseブループリントを更新した場合 (例: Python を 3.11 から 3.12 にアップグレード)
- Enterpriseシークレットをローテーションした場合
- セキュリティパッチ適用後にすべての環境を更新する必要がある場合
Enterprise全体の再ビルドは、Settings > Devin’s base environment からトリガーします。各組織のビルドは、更新後のEnterpriseブループリントを使用して実行され、その後に各組織固有のorgブループリントとrepoブループリントが続きます。
Enterprise全体の再ビルドでは、各orgのビルドキューが尊重されます。あるorgですでにビルドが進行中の場合、Enterpriseによってトリガーされた再ビルドはその後ろにキューされます。すでにビルドがキューされている場合は、それはキャンセルされ、
Enterpriseによってトリガーされたものに置き換えられます。
Enterprise管理者は、どの組織で宣言的構成を利用し、どの組織で従来の環境セットアップを利用するかを管理します。Rollout ページでは、すべてのorgにおける導入状況を確認でき、組織を段階的に移行できます。
ロールアウトの状態、組織ごとの上書き設定、段階的な移行プレイブックの詳細については、Enterpriseの移行を参照してください。