始める前に
Enclave で Owner または Admin ロールが必要です。 Azure DevOps では、接続に使うアカウントに、スキャン対象のプロジェクトでの Project Administrator 、または Edit Subscription 権限が必要です。Enclave はこの権限を使って、プッシュイベントを送信するサービスフックを作成します。この権限がないと、Enclave はコードを読み取れますが、新しいコミットを把握できません。Azure DevOps を接続する
1
インテグレーションを開く
app.enclave.ai で Settings → Integrations を開きます。 Azure DevOps の横にある Connect をクリックします。
2
サインイン方法を選ぶ
Azure DevOps へのサインイン方法に合ったオプションを選びます。
- Microsoft Entra ID
- 個人用アクセストークン
職場または学校のアカウントの場合に使います。
- Microsoft Entra ID をクリックし、Microsoft でサインインします。
- Choose organizations to connect で、Enclave に読み取らせる Azure DevOps の組織を選びます。
- Connect をクリックします。
3
接続を確認する
Settings → Integrations → Azure DevOps に戻ると、 Organizations に組織がリポジトリ数とともに表示されます。
権限
Enclave は、この接続を使って次のことを行います。- リポジトリ、ブランチ、プルリクエストを読み取ります。 Enclave はコードとその履歴を読み取ります。
- サービスフックのサブスクリプションを作成・削除します。 Enclave はプッシュとプルリクエストのイベントをサブスクライブし、コードの変更を把握します。
- 検出結果に対応する Azure Boards の作業項目を作成・更新します。 これには Work Items (read & write) 権限が必要です。Azure DevOps を接続すると、Azure Boards も接続されます。別途セットアップする必要はありません。
接続を管理する
Settings → Integrations → Azure DevOps を開くと、接続済みの組織を確認できます。- Resync は、接続後に作成されたプロジェクトとリポジトリを取り込みます。Azure DevOps は作成時に Enclave へ通知しないため、追加したら Resync をクリックしてください。権限を修正した後の再確認にも使えます。
- Add organization は、別の Azure DevOps の組織を接続します。
- Remove は、組織の接続を解除します。Enclave はその組織のリポジトリのスキャンを停止します。後から再接続できます。
トラブルシューティング
組織に「push events not active」と表示される
組織に「push events not active」と表示される
Enclave はリポジトリを読み取れましたが、サービスフックを作成できませんでした。接続に使ったアカウントに、プロジェクトでの Edit Subscription (または Project Administrator )を付与し、 Resync をクリックします。
新しいプロジェクトやリポジトリが表示されない
新しいプロジェクトやリポジトリが表示されない
組織の Resync をクリックします。大規模な組織では、クリック後も再同期が続きます。リポジトリは同期が進むにつれて表示されます。
トークンの検証に失敗する
トークンの検証に失敗する
- Azure DevOps rejected this token :トークンの有効期限が切れたか、取り消されています。新しいトークンを作成します。
- This token can’t do everything Enclave needs :コードの読み取り、プロジェクトの一覧表示、サービスフックの管理ができるようにトークンを作り直します。
- This token authenticated but can’t see any projects : Project Settings → Permissions で、トークンの所有者をプロジェクトに追加します。
- We couldn’t reach that Azure DevOps organization :組織名とネットワークのルールを確認します。
組織に「reconnect needed」と表示される
組織に「reconnect needed」と表示される
Enclave は、この接続の認証情報を使えなくなっています。組織を削除して、もう一度接続します。