なぜ Devin を Azure DevOps と連携するのか?
前提条件
-
Devin 専用の Azure DevOps ユーザーを作成する - Devin 専用の新しい Azure DevOps アカウント(例:
[email protected])を作成します。この専用サービスアカウントにより、アクセス管理と監査ログを明確に分離できます。 - Devin ユーザーに AAD グローバル管理者権限を付与する - 新しく作成した Devin サービスアカウントには、Azure Active Directory (AAD) のグローバル管理者権限が必要です。グローバル管理者がテナントレベルで同意を付与しない限り、Microsoft はサードパーティアプリケーションのアクセスを制限します。
-
接続フローの準備をする - 連携を完了するには、次の状態である必要があります:
- 個人アカウントで Devin にサインインしている
- Devin サービスアカウント(AAD グローバル管理者権限を持つ新しいアカウント)で Azure DevOps にサインインしている
連携のセットアップ中は、両方のブラウザーセッションがアクティブである必要があります。接続を開始するための Devin アカウントと、OAuth 同意を承認するための Azure DevOps 上の Devin サービスアカウントの両方です。
認証と権限
RBAC と権限モデル
- 暗号化されたリフレッシュトークンを含み、ユーザーアイデンティティに紐づいた接続レコードが作成される
- Devin が、アクセス可能な組織、プロジェクト、およびリポジトリを定義する権限レコードを生成する
- 実行時には、すべてのリポジトリに対してチェックが行われ、アクセス境界を強制するために権限リストと突き合わせられる
Azure DevOps の階層構造
インテグレーションのセットアップ
-
両方のアカウントにサインインします:
- app.devin.ai で Devin アカウントにサインインします
- 別のブラウザまたはシークレットウィンドウで、Devin サービスアカウント(AAD Global Admin 権限を持つアカウント)を使用して Azure DevOps にサインインします
- Enterprise の Devin アカウントで、Settings > Enterprise Settings > Integrations に移動します。

- Integrations ページで、Connect to Azure DevOps ボタンをクリックします。

- 新しいブラウザタブが開き、Devin に Azure DevOps Organization へのアクセス権限を付与するよう求められます。Devin サービスアカウント(AAD Global Admin 権限を持つアカウント)でサインインしていることを必ず確認してください。

- 権限を付与すると、Enterprise Settings の Integrations ページに、Azure DevOps インテグレーションと接続済みリポジトリが表示されます。

- Devin が Azure DevOps にアクセスできるようになったら、Enterprise アカウント配下の任意またはすべての Sub-Organization に権限を付与できます。これを行うには、Azure DevOps インテグレーションで Git Permissions を選択し、Sub-Organization を選択して、Group または Repository レベルで権限を付与します。

- 権限を付与した各 Organization について、Devin’s Settings > Devin’s Machine に移動し、+ Repository をクリックして、リポジトリを Devin’s Machine に連携します。
Devin がアクセスできる内容
| Capability | Description |
|---|---|
| List repositories | 利用可能なリポジトリとそのメタデータを表示 |
| Read branches | ブランチ情報とコミット履歴にアクセス |
| Create pull requests | コード変更のための新しい PR を作成 |
| View pull requests | PR のイベント、コメント、ステータスにアクセス |
| Push code | 新しいブランチとコミットをリポジトリにプッシュ |
Devin がアクセスできないもの
- Work items (boards)
- Pipelines or builds
- Test plans
- Artifacts
- Wiki
- Service connections
将来的に、組織として Devin にこれらの追加領域もサポートさせる必要がある場合は、より広範な OAuth スコープと新しいプロバイダー ロジックが必要になります。要件についてご相談の際は、[email protected] までご連絡ください。
セキュリティ上の考慮事項
- OAuth は権限を付与し、RBAC が境界を強制する - OAuth は Azure DevOps へアクセスするための技術的な権限を付与しますが、実際のアクセス境界は追加の Git 権限レイヤーによって強制されます
- 明示的なアクセスのみ - Devin は、Enterprise UI で明示的に付与されていないリポジトリやプロジェクトには決してアクセスしません
- 認証情報の暗号化 - すべてのリフレッシュトークンは暗号化され、安全に保存されます
- 監査証跡 - 専用のサービスアカウントを使用することで、Azure DevOps の監査ログで Devin のアクティビティを追跡しやすくなります
- ブランチポリシーの順守 - Devin の PR は、他のコントリビューターと同じブランチポリシーおよびレビュー要件の対象となります
ベストプラクティス
- 専用の Devin サービスアカウントを使用する - 個人アカウントではなく、Devin 用に作成された専用の Azure DevOps アカウントを必ず利用してください
- ブランチポリシーを有効化する - マージ前にすべての変更が適切なレビュープロセスを経るようにするため、Azure DevOps でブランチポリシーを設定してください
- リポジトリレベルの権限を使用する - 組織全体へのアクセスを付与するのではなく、Devin には必要な特定のリポジトリにのみアクセス権を付与してください
- アクセスログを監視する - Devin のアクティビティについて、Azure DevOps の監査ログを定期的に確認してください
- セットアップ内容を文書化する - Devin にどのリポジトリへのアクセス権を付与しているかと、その理由を社内ドキュメントとして管理してください
Microsoft Entra ID が組織の HRIS(Human Resources Information System / 人事情報システム)と連携している場合、Azure DevOps との連携を完了するために、追加の構成手順が必要になることがあります。高度なセットアップについては、Devin サポートチームまでお問い合わせください。
トラブルシューティング
- Devin サービスアカウントに AAD グローバル管理者権限が付与されていることを確認してください
- Azure AD テナントでサードパーティアプリケーションへの同意が許可されていることを確認してください
- OAuth フローを完了する際に、個人アカウントではなく Devin サービスアカウントで Azure DevOps にサインインしていることを確認してください
- Devin サービスアカウントが Azure DevOps 上の該当リポジトリにアクセスできることを確認してください
- Devin の Enterprise 設定でリポジトリの権限が付与されていることを確認してください
- リポジトリが Devin の Machine に追加されていることを確認してください
- Devin サービスアカウントが対象リポジトリに対する Contributer 権限を持っていることを確認してください
- ブランチポリシーが PR の作成をブロックしていないことを確認してください
- 対象ブランチが存在し、アクセス可能であることを確認してください
