> ## Documentation Index
> Fetch the complete documentation index at: https://docs.corgea.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Azure DevOps

> CorgeaとAzure DevOpsを連携する方法

Azure DevOpsとCorgeaを連携すると、プロジェクトをスキャンし、Corgeaプラットフォームから直接コード修正のプルリクエストを作成できます。

<Steps>
  <Step title="Azure DevOps個人アクセストークンを生成する">
    Azure DevOpsアカウントにアクセスし、読み書き権限を持つパーソナルアクセストークン(PAT)を生成してください。

    <Frame>
      <img src="https://mintcdn.com/corgea/uxLuQR4653lM43Tj/images/azure-devops-1.png?fit=max&auto=format&n=uxLuQR4653lM43Tj&q=85&s=88f9542152a162b66fed06a4ec6a9e64" style={{ borderRadius: '0.5rem' }} alt="個人アクセストークンの作成" width="294" height="402" data-path="images/azure-devops-1.png" />
    </Frame>

    <Frame>
      <img src="https://mintcdn.com/corgea/uxLuQR4653lM43Tj/images/azure-devops-2.png?fit=max&auto=format&n=uxLuQR4653lM43Tj&q=85&s=10c4a67d2cce8b477c5dd59592d6a0bf" style={{ borderRadius: '0.5rem' }} alt="トークン権限" width="651" height="952" data-path="images/azure-devops-2.png" />
    </Frame>
  </Step>

  <Step title="トークンをCorgeaと連携する">
    Corgeaの <a href="https://www.corgea.app/integrations/" target="_blank">連携</a> ページへ進んでください。Azure DevOpsセクション内の「+」ボタンをクリックして、トークンが安全に保存されているか確認してください。

    <Frame>
      <img src="https://mintcdn.com/corgea/uxLuQR4653lM43Tj/images/azure-devops-modal-3.png?fit=max&auto=format&n=uxLuQR4653lM43Tj&q=85&s=6f4a74071fbde89934b6b6ac24fbd5e0" style={{ borderRadius: '0.5rem' }} alt="トークンをCorgeaに追加" width="2140" height="1252" data-path="images/azure-devops-modal-3.png" />
    </Frame>
  </Step>

  <Step title="CorgeaでAzure DevOpsプロジェクトを確認">
    設定後、 <a href="https://www.corgea.app/projects/" target="_blank">プロジェクト</a> ページに移動します。Azure DevOpsプロジェクトはWindowsのアイコンで表示されます。アクション欄の「+」をクリックすると最初のスキャンを開始し、プロジェクト名を選択して「新しいスキャン」をクリックして新しいスキャンを開始します。

    <Frame>
      <img src="https://mintcdn.com/corgea/uxLuQR4653lM43Tj/images/azure-devops-projects-4.png?fit=max&auto=format&n=uxLuQR4653lM43Tj&q=85&s=c42a658e1734ac671564acb892acd823" style={{ borderRadius: '0.5rem' }} alt="検索プロジェクト" width="2726" height="910" data-path="images/azure-devops-projects-4.png" />
    </Frame>
  </Step>

  <Step title="Azure DevOpsにプルリクエストを作成">
    CorgeaのAzure DevOpsプロジェクトに関連する任意の問題ページから、その問題を修正するプルリクエストを作成できます。

    <Frame>
      <img src="https://mintcdn.com/corgea/uxLuQR4653lM43Tj/images/azure-devops-issue-pr-5.png?fit=max&auto=format&n=uxLuQR4653lM43Tj&q=85&s=170ad0fb0f0473d9c1b8a8501296b621" style={{ borderRadius: '0.5rem' }} alt="問題修正用プルリクエスト" width="4414" height="2238" data-path="images/azure-devops-issue-pr-5.png" />
    </Frame>
  </Step>
</Steps>

## オプション:Webhook設定

プルリクエストの作成や更新時にスキャンを有効にするには、イベントごとに2つのWebhookを設定してください。プロジェクト用のWebhookを設定するために必要な権限を持っていることを確認してください。

<Steps>
  <Step>
    Azure DevOpsインターフェースの左下にある「プロジェクト設定」を選択してください。

    <Frame>
      <img src="https://mintcdn.com/corgea/uxLuQR4653lM43Tj/images/azure-webhook-1.png?fit=max&auto=format&n=uxLuQR4653lM43Tj&q=85&s=7691ffcbb26b37bd8b6396a5c01509e3" style={{ borderRadius: '0.5rem' }} alt="プロジェクト設定" width="1320" height="1616" data-path="images/azure-webhook-1.png" />
    </Frame>
  </Step>

  <Step>
    「サービスフック」をクリックしてください。すぐに読み込まれない場合は複数回クリックする必要があるかもしれません。

    <Frame>
      <img src="https://mintcdn.com/corgea/uxLuQR4653lM43Tj/images/azure-webhook-2.png?fit=max&auto=format&n=uxLuQR4653lM43Tj&q=85&s=c7e432329a7eea7459474d5155a74bcb" style={{ borderRadius: '0.5rem', width: '50%' }} alt="サービスフック" width="628" height="928" data-path="images/azure-webhook-2.png" />
    </Frame>
  </Step>

  <Step>
    「+」ボタンをクリックして「Web Hooks」を選択してください。

    <Frame>
      <img src="https://mintcdn.com/corgea/uxLuQR4653lM43Tj/images/azure-webhook-3.png?fit=max&auto=format&n=uxLuQR4653lM43Tj&q=85&s=677f4fbb1473dbff151d0b5949678d0f" style={{ borderRadius: '0.5rem' }} alt="Webhook" width="2368" height="1590" data-path="images/azure-webhook-3.png" />
    </Frame>
  </Step>

  <Step>
    トリガーイベントとして「プルリクエスト作成」を選択し、任意の設定を設定し、「次へ」をクリックします。

    <Frame>
      <img src="https://mintcdn.com/corgea/uxLuQR4653lM43Tj/images/azure-webhook-4.png?fit=max&auto=format&n=uxLuQR4653lM43Tj&q=85&s=87c1d1fd737c2d60538563108152d836" style={{ borderRadius: '0.5rem' }} alt="トリガーイベント" width="1596" height="1324" data-path="images/azure-webhook-4.png" />
    </Frame>
  </Step>

  <Step>
    設定セクションで、プライベートデプロイメントのURLを [https://www.corgea.app/azure\_webhook/](https://www.corgea.app/azure_webhook/) または `https://your_instance.corgea.app/azure_webhook/` として入力してください。

    <Frame>
      <img src="https://mintcdn.com/corgea/uxLuQR4653lM43Tj/images/azure-webhook-fill-in-url.png?fit=max&auto=format&n=uxLuQR4653lM43Tj&q=85&s=680bd4ede219087aaf6051e030cb446d" style={{ borderRadius: '0.5rem' }} alt="WebhookURL" width="1600" height="1014" data-path="images/azure-webhook-fill-in-url.png" />
    </Frame>
  </Step>

  <Step>
    新しいブラウザタブを開き、Corgeaの連携ページに移動し、Azure連携を見つけてください。X-CORGEA-UUIDの値をコピーしてください。

    <Frame>
      <img src="https://mintcdn.com/corgea/uxLuQR4653lM43Tj/images/azure-webhook-5.png?fit=max&auto=format&n=uxLuQR4653lM43Tj&q=85&s=a2a610c03862facbf2d78de5b396afab" style={{ borderRadius: '0.5rem' }} alt="X-Corgea-UUID" width="2580" height="1268" data-path="images/azure-webhook-5.png" />
    </Frame>
  </Step>

  <Step>
    Azure DevOps Webhookの設定ページに戻り、ヘッダーセクションに以下を入力してください:

    * X-CORGEA-UUID:(コピーしたUUID値)
    * X-WEB-TOKEN:(レガシー/オプション;外部インフラが必要な場合のみ含む)

    <Frame>
      <img src="https://mintcdn.com/corgea/uxLuQR4653lM43Tj/images/azure-webhook-6.png?fit=max&auto=format&n=uxLuQR4653lM43Tj&q=85&s=154c967cbd2113229cba93090a29cf9d" style={{ borderRadius: '0.5rem' }} alt="ヘッダーの設定" width="1664" height="1548" data-path="images/azure-webhook-6.png" />
    </Frame>
  </Step>

  <Step>
    「終了」をクリックして設定を保存してください。「テスト」ボタンは無視してください。アクセスできないファイルのスキャンを試みる可能性があるからです。
  </Step>

  <Step>
    同じ手順を繰り返して、「プルリクエスト更新」をトリガーイベントにした2つ目のWebhookを追加します。最初のWebhookと同じURLとヘッダーを使用してください。

    <Frame>
      <img src="https://mintcdn.com/corgea/7q8wUqu2NotZ53M6/images/azure-webhook-4-updated.png?fit=max&auto=format&n=7q8wUqu2NotZ53M6&q=85&s=1e54da6dfca8f7fb24868abf4e2da1ee" style={{ borderRadius: '0.5rem' }} alt="プルリクエストがトリガーイベントを更新した" width="1702" height="1736" data-path="images/azure-webhook-4-updated.png" />
    </Frame>
  </Step>

  <Step>
    プルリクエストを作成または更新してセットアップを検証します。設定が成功すると、Webhook履歴に成功したイベントが表示され、Corgea Scansページで新しいスキャンが [https://www.corgea.app/scans/](https://www.corgea.app/scans/).

    <Frame>
      <img src="https://mintcdn.com/corgea/uxLuQR4653lM43Tj/images/azure-webhook-7.png?fit=max&auto=format&n=uxLuQR4653lM43Tj&q=85&s=af6a9e70cbf68dc4a8b77a27e18718f9" style={{ borderRadius: '0.5rem' }} alt="Webhookの歴史" width="2770" height="1792" data-path="images/azure-webhook-7.png" />
    </Frame>

    <Frame>
      <img src="https://mintcdn.com/corgea/uxLuQR4653lM43Tj/images/azure-webhook-8.png?fit=max&auto=format&n=uxLuQR4653lM43Tj&q=85&s=4322d341d32fae066a49b6b221a5b22d" style={{ borderRadius: '0.5rem' }} alt="Corgea スキャン" width="3842" height="634" data-path="images/azure-webhook-8.png" />
    </Frame>
  </Step>
</Steps>

## Azure DevOps プルリクエストコメントへの返信を有効にする

CorgeaはAzure DevOpsのプルリクエストに投稿されたコメントを受信し、返信できます。

### 前提条件

* 組織でCorgea Agentが有効になっている。
* Azure DevOpsはCorgeaに接続されています。
* 連携に使用するPATは `Code: Read & write` 権限を持っています。
* Azure DevOpsプロジェクトでサービスフックのサブスクリプションを作成できます。

### サービスフックの設定

1. Azure DevOpsでプロジェクトを開きます。
2. `Project settings` → `Service hooks`に移動します。
3. `Create subscription` または `+`を選択します。
4. `Web Hooks`を選択し、次に `Next`を選択します。
5. トリガーとして `Pull request commented on` を選択します。
6. オプションでフックをリポジトリまたはターゲットブランチに限定する。
7. WebhookのURLを入力してください:
   * Corgea・クラウド: `https://www.corgea.app/azure_webhook/`
   * プライベートデプロイ: `https://<your-corgea-domain>/azure_webhook/`
8. このHTTPヘッダーを追加します:

   `X-CORGEA-UUID: <your Azure DevOps integration UUID>`

   UUIDはCorgeaの連携ページで確認できます。
9. `Resource details to send` を `All`に設定。
10. サブスクリプションをテストし、 `Finish`を選択します。

サービスフックはプロジェクトごとに異なります。コメントへの返信をサポートするべきすべてのAzure DevOpsプロジェクトに対して、これらの手順を繰り返してください。

### 連携を検証

1. Corgeaの検出結果を含むプルリクエストを開く。
2. Corgeaのコメントに直接返信するか、コメント欄でCorgeaに宛ててください。
3. 確認すること:
   * 配信は `Project settings` -> `Service hooks`で成功します。
   * Corgeaは同じコメントスレッドに返信します。

### トラブルシューティング

* サービスフックが有効で `Pull request commented on`を使用していることを確認します。
* `X-CORGEA-UUID` が正しいCorgea連携と一致しているか確認してください。
* `Resource details to send` が `All`に設定されていることを確認してください。
* Azure DevOps PATが期限切れでなく、アクセス権が `Code: Read & write` であることを確認してください。
* 組織でCorgeaエージェントが有効であることを確認してください。

このフローでは、Corgeaアプリケーションは`X-WEB-TOKEN`を使用しません。外部インフラで必要な場合にのみ、このヘッダーを残してください。
