Skip to main content
Devin は、Microsoft Entra の service principal を使用した Azure DevOps への接続にも対応しており、この方法では 昇格されたディレクトリ管理者権限を持つ専用のサービス アカウントは必要ありません。要件によっては、こちらの方法のほうが適している場合があります。詳細は Azure DevOps (Service Principal) を参照してください。

なぜ Devin を Azure DevOps と連携するのか?

Devin を Azure DevOps 組織と統合すると、Devin がリポジトリをクローンしたり プルリクエスト を作成したりして、チームと効果的に協働できるようになります。この統合により、既存の開発ワークフローの中で Devin をシームレスに利用できます。 他の一部の SCM との統合とは異なり、Azure DevOps ではサードパーティ製アプリが同じような形では表示されません。その代わり、すべての接続の管理は Devin 内の Settings > Connections > Azure DevOps で行います。

前提条件

Azure DevOps 統合をセットアップする前に、次の内容を準備してください。
  1. Devin 専用の Azure DevOps ユーザーを作成する - Devin 専用の新しい Azure DevOps アカウント (例: devin@yourcompany.com) を作成します。この専用サービスアカウントにより、アクセス管理と監査ログを明確に分離できます。
  2. Devin ユーザーに十分な管理者ロールを付与する - 新しく作成した Devin サービスアカウントは、テナントに対する管理者の同意を付与できる必要があります (Application Administrator、Cloud Application Administrator、または Global Administrator)。十分な権限を持つ管理者がテナントレベルで同意を付与しない限り、Microsoft はサードパーティアプリケーションのアクセスを制限します。
  3. 接続フローの準備をする - 連携を完了するには、次の状態である必要があります:
    • 個人アカウントで Devin にサインインしている
    • Devin サービスアカウント (テナントに対する管理者の同意を付与できる新しいアカウント) で Azure DevOps にサインインしている
統合のセットアップ中は、両方のブラウザーセッションがアクティブである必要があります。接続を開始するための Devin アカウントと、OAuth 同意を承認するための Azure DevOps 上の Devin サービスアカウントの両方です。

認証と権限

Devin は Microsoft の MSAL (Microsoft Authentication Library) を利用した OAuth 2.0 によって Azure DevOps に接続します。OAuth フローを完了するには、Devin のサービスアカウントがテナントに対して管理者の同意を付与できる必要があります (Application Administrator、Cloud Application Administrator、または Global Administrator) 。Azure DevOps はサービスアカウント経由で動作するため、Devin は登録済みアプリではなく、権限が付与された Devin のユーザー ID を使用して接続します。

RBAC と権限モデル

Devin の Azure DevOps 統合は、認証と認可を分離した厳格なロールベースのアクセス制御 (RBAC) モデルで構築されています。これにより、Devin は Enterprise の管理者によって明示的に許可されたリポジトリにのみアクセスします。 Azure DevOps を Devin に接続すると、次の処理が行われます。
  1. 暗号化されたリフレッシュトークンを含み、ユーザー ID に紐づいた接続レコードが作成される
  2. Devin が、アクセス可能な組織、プロジェクト、およびリポジトリを定義する権限レコードを生成する
  3. 実行時には、すべてのリポジトリに対してチェックが行われ、アクセス境界を強制するために権限リストと突き合わせられる
Enterprise のお客様の場合、権限は複数の組織間で再利用でき、すべてのリポジトリレベルのアクセスは、Devin Enterprise UI の Settings > Repositories から管理されます。

Azure DevOps の階層構造

Azure DevOps では、3 階層の構造 Organization > Project > Repository を採用しています。Devin はこの階層構造を内部で扱っており、接続しているユーザーにアクセス権がある限り、どの階層にあるリポジトリでも検出して操作できます。

統合のセットアップ

  1. 両方のアカウントにサインインします:
    • app.devin.ai で Devin アカウントにサインインします
    • 別のブラウザまたはシークレットウィンドウで、Devin サービスアカウント (テナントに対して管理者の同意を付与できるアカウント) を使用して Azure DevOps にサインインします
  2. Enterprise Devin アカウントで、Settings > Connections > Azure DevOps に移動します。
  3. Connect ボタンをクリックして OAuth フローを開始します。Azure DevOps がすでに接続されている場合は、ボタンに Add connection と表示されます。
    • Microsoft Entra service principal で接続する場合は、Connect ボタンのドロップダウンを開き、Connect with service principal を選択します。詳しくは Azure DevOps (Service Principal) を参照してください。
Connect with service principal オプションが表示された Azure DevOps の Connect ボタン
  1. 新しいブラウザタブが開き、Azure DevOps 組織へのアクセス権限を Devin に付与するよう求められます。Devin サービスアカウント (テナントに対して管理者の同意を付与できるアカウント) でサインインしていることを確認してください。
Azure DevOps の権限
  1. 権限を付与すると Devin の Azure DevOps 接続ページに戻り、新しい接続が一覧に表示されます。接続をクリックすると詳細パネルが開きます:
    • General: Webhook の設定、再接続、切断
    • Manage access: この接続のリポジトリ権限を管理できるユーザーまたはロールの指定
    • Repositories: この接続で利用できるリポジトリ
  2. これで Devin が Azure DevOps にアクセスできるようになったため、Enterprise アカウント内の一部またはすべての組織に権限を付与できます。Settings > Repositories に移動して組織を選択し、Manage permissions をクリックして、Organization/Project レベルまたは Repository レベルで権限を付与します。詳しくは リポジトリの権限 を参照してください。
  3. 権限を付与した各組織で Settings > Environment > Blueprints に移動し、Repositories セクションで Add をクリックして、Devin の環境に追加するリポジトリを選択します。詳しくは 宣言的な環境設定 を参照してください。

Devin がアクセスできる内容

Devin の Azure DevOps 連携は、以下を含む Git 操作のみに特化 しています:

Devin がアクセスできないもの

この連携機能は、意図的に Git の機能のみに範囲を限定しています。Devin は次のものに アクセスできません:
  • Work items (boards)
  • Pipelines or builds
  • Test plans
  • Artifacts
  • Wiki
  • Service connections
将来的に、組織として Devin にこれらの追加領域もサポートさせる必要がある場合は、より広範な OAuth スコープと新しいプロバイダー ロジックが必要になります。要件についてご相談の際は、enterprise@cognition.ai までご連絡ください。

セキュリティ上の考慮事項

このシステムは、最小特権の原則に基づいて設計されています。
  • 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 にどのリポジトリへのアクセス権を付与しているかと、その理由を社内ドキュメントとして管理してください
すべての変更がマージ前に適切なレビュープロセスを経るようにするため、Azure DevOps でブランチポリシーを設定することを推奨します。
Microsoft Entra ID が組織の HRIS (Human Resources Information System / 人事情報システム) と連携している場合、Azure DevOps との連携を完了するために、追加の構成手順が必要になることがあります。高度なセットアップについては、Devin サポートチームまでお問い合わせください。

トラブルシューティング

OAuth 同意が失敗する場合:
  • Devin サービスアカウントがそのテナントに対して管理者の同意を付与できることを確認してください (Application Administrator、Cloud Application Administrator、または Global Administrator ロールが必要です)
  • Microsoft Entra ID テナントでサードパーティアプリケーションへの同意が許可されていることを確認してください
  • OAuth フローを完了する際に、個人アカウントではなく Devin サービスアカウントで Azure DevOps にサインインしていることを確認してください
Devin からリポジトリが見えない場合:
  • Devin サービスアカウントが Azure DevOps 上の該当リポジトリにアクセスできることを確認してください
  • Settings > Connections > Azure DevOps で接続を開き、Repositories タブにリポジトリが表示されていることを確認してください
  • Settings > Repositories で、組織にリポジトリの権限が付与されていることを確認してください
  • Settings > Environment > Blueprints で、リポジトリが組織の環境に追加されていることを確認してください
プルリクエスト (PR) の作成に失敗する場合:
  • Devin サービスアカウントが対象リポジトリに対する Contributer 権限を持っていることを確認してください
  • ブランチポリシーが PR の作成をブロックしていないことを確認してください
  • 対象ブランチが存在し、アクセス可能であることを確認してください

ネットワーク設定

Azure DevOps インスタンスで IP フィルタリングが有効になっている場合は、Devin の IP アドレスを許可リストに追加する必要があります。 最新の一覧については、IP 許可リストに関するドキュメントを参照してください。