Skip to main content

Devinの環境とは?

Devinの環境とは、Devinが動作するワークスペース、つまりリポジトリがクローンされ、ツールがインストールされ、依存関係が解決され、環境変数が設定され、設定が適用された Linux ベースの仮想マシンのことです。これは開発者のラップトップに相当するもので、OS、ターミナル、インストール済みのツールチェーン、クローン済みのリポジトリ、およびそれらのツールに必要な認証情報と設定を含みます。 環境設定は スナップショット として保存されます。これは固定された起動可能なイメージで、すべてのセッションはこのイメージから開始されます。一度設定すれば、以後のすべてのセッションはその動作確認済みの状態で起動します。

環境設定が重要な理由

Devin は、開発者と同じように動作します。リポジトリをクローンし、依存関係をインストールし、lint を実行し、コードをコンパイルし、テストを実行します。こうした作業を行うには、動作する環境が必要です。環境がなければ、Devin はプロジェクトをビルドできず、テストも実行できず、自分の作業結果を検証することもできません。これは、開発者を雇っておきながら、ノートパソコンを支給しないようなものです。 環境設定を行うことで、Devin は最初のセッションから生産的に作業するために必要なツール、ランタイム、認証情報、環境変数、プロジェクトに関する知識を利用できるようになります。また、セッションの立ち上がりも速くなります。スナップショットにはすでにリポジトリのクローンや依存関係のインストールが済んでいるため、Devin は毎回ゼロからセットアップすることなく、すぐに実作業に入れます。 これは、コードベースに対する Devin の有効性を高めるうえで、最も効果の大きい取り組みです。

セッションの仕組み

すべてのセッションは、環境を凍結した起動可能なイメージであるスナップショットから起動します。
  1. スナップショット: リポジトリ、ツール、依存関係を含む、事前にビルドされたイメージです。設定に基づいてあらかじめ準備されます。
  2. セッション: Devin はスナップショットのクリーンなコピーを起動します。どのセッションも同じクリーンな状態から開始されます。セッションで加えた変更はスナップショットには保持されません。
設定が変更されると、新しいスナップショットが自動的にビルドされます。各組織に存在するアクティブなスナップショットは常に 1 つだけです。その組織内のすべてのセッションは、同じスナップショットから起動します。

始める前に

Devin の環境を設定する前に、Devin がリポジトリにアクセスできることを確認してください。
  1. SCM プロバイダーを接続します。 Settings > Connections に移動し、GitHub、GitLab、Bitbucket、または Azure DevOps を接続します。セットアップ時に、Devin がアクセスできるリポジトリを選択してください。詳しい手順は、統合ガイドを参照してください。
これで完了です。接続が完了したら、環境設定に進めます。
  1. SCM プロバイダーを接続します (Enterprise 管理者) 。 Enterprise Settings > Integrations に移動し、SCM プロバイダーを接続します。セットアップ手順については、Git Integrationsを参照してください。
  2. 各組織にそれぞれのリポジトリへのアクセス権を付与します (Enterprise 管理者) 。 Enterprise Settings > Repository Permissions に移動し、各組織にリポジトリを割り当てます。明示的にアクセス権を付与するまで、組織はリポジトリを閲覧したり利用したりできません。詳しくは、Repository Permissionsを参照してください。
  3. 環境を設定します (組織管理者) 。 組織がリポジトリにアクセスできるようになったら、以下の環境設定に進んでください。
これらの手順をスキップすると、環境に追加しようとしてもリポジトリが表示されません。Devin がクローンやビルドを行うには、事前に Git 統合を通じてリポジトリへのアクセス権が必要です。

Devinに依頼して設定する

これはDevinの環境を設定する最も簡単な方法で、ほとんどのリポジトリで利用できます。
Devinセッションを開始し、次のように依頼します。 “このリポジトリ用に環境を設定してください。”
1

Devinがリポジトリを調査

Devinがコードベースを調べ、必要なツール、ランタイム、依存関係を特定します。
2

提案を確認

Devinはタイムラインに提案カードとしてブループリントを提示します。提案された設定を確認し、使用するカードを承認します。
3

ビルドでスナップショットを作成

Devinは承認済みのブループリントからビルドを実行し、すべてのセッションが起動時に使用するスナップショットを生成します。
詳しい手順については、Devinに任せるを参照してください。

環境変数とシークレット

環境変数はブループリントの一部です。機密性のない値はステップの env フィールドで定義するか、共有する値を $ENVRC に書き込みます。$ENVRC と direnv のパターンについては、環境テンプレートを参照してください。Devinはリポジトリからツールや依存関係を推測できますが、認証情報は検出できません。 機密性の高い値は、ブループリントエディタの Secrets タブに暗号化されたSecretsとして保存し、$VARIABLE_NAME として参照してください。Secretsはビルドおよびセッション中に環境変数として挿入されます。詳しくは、ブループリントのシークレットガイドおよび環境変数とシークレットのリファレンスを参照してください。

方法を選択する

Devin に依頼するのがデフォルトです。設定を自分で作成する場合は、推奨される手動の方法である宣言的な設定を利用してください。ブループリントは環境を記述し、ビルドは自動的にスナップショットを生成します。

宣言的な設定

推奨される手動の方法。 Devin が生成する YAML を確認または編集して、インストールするもの、依存関係の設定方法、Devin が把握しておくべき内容を制御できます。
  • バージョン管理可能
  • 自動更新
  • 複数の階層で組み合わせ可能
  • 再現可能

ブループリント リファレンス

セクション、GitHub Actions のサポート、環境変数、ファイル添付を含む、ブループリントの全フィールド仕様。

テンプレートライブラリ

Python、Node.js、Go、Java、Ruby、Rust、高度なパターン向けの、コピー&ペーストですぐ使えるブループリント。

Enterprise の環境管理

Enterprise 全体での環境管理: 3 層の階層、シークレット、org をまたいだ設定。