> ## 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

> Guide complet pour configurer Azure DevOps avec Corgea

L’intégration Azure DevOps permet de scanner les projets et de créer des pull requests de correction directement depuis la plateforme Corgea.

<Steps>
  <Step title="Générer un token d’accès personnel Azure DevOps">
    Accédez à votre compte Azure DevOps et générez un token d’accès personnel (PAT) disposant des autorisations de lecture et d’écriture.

    <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="Créer un token d’accès personnel" 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="Autorisations du token" width="651" height="952" data-path="images/azure-devops-2.png" />
    </Frame>
  </Step>

  <Step title="Ajouter le token à Corgea">
    Accédez à la page <a href="https://www.corgea.app/integrations/" target="_blank">Intégrations</a> de Corgea. Cliquez sur « + » dans la section Azure DevOps et vérifiez que le token est bien enregistré.

    <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="Ajouter un token à Corgea" width="2140" height="1252" data-path="images/azure-devops-modal-3.png" />
    </Frame>
  </Step>

  <Step title="Repérer les projets Azure DevOps dans Corgea">
    Une fois la configuration terminée, accédez à la page <a href="https://www.corgea.app/projects/" target="_blank">Projets</a>. Votre projet Azure DevOps est identifié par une icône Windows. Cliquez sur « + » dans la colonne des actions pour lancer le premier scan, ou sélectionnez le nom du projet, puis « Nouveau scan ».

    <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="Rechercher des projets" width="2726" height="910" data-path="images/azure-devops-projects-4.png" />
    </Frame>
  </Step>

  <Step title="Soumettre une pull request à Azure DevOps">
    Depuis la page de n’importe quel problème associé à un projet Azure DevOps dans Corgea, vous pouvez créer une pull request de correction.

    <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="Pull request associée au problème" width="4414" height="2238" data-path="images/azure-devops-issue-pr-5.png" />
    </Frame>
  </Step>
</Steps>

## Facultatif : configurer les webhooks

Pour permettre les scans lors de la création ou de la mise à jour des pull requests, configurez deux webhooks (un pour chaque événement). Assurez-vous de posséder les autorisations nécessaires pour créer des webhooks pour votre projet.

<Steps>
  <Step>
    Sélectionnez « Project settings » en bas à gauche de l’interface 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="Paramètres du projet" width="1320" height="1616" data-path="images/azure-webhook-1.png" />
    </Frame>
  </Step>

  <Step>
    Cliquez sur « Service Hooks ». Plusieurs clics peuvent être nécessaires si la page ne se charge pas immédiatement.

    <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="Hooks de service" width="628" height="928" data-path="images/azure-webhook-2.png" />
    </Frame>
  </Step>

  <Step>
    Cliquez sur le bouton « + » et choisissez « 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="Web Hooks" width="2368" height="1590" data-path="images/azure-webhook-3.png" />
    </Frame>
  </Step>

  <Step>
    Sélectionnez « Pull request created » comme événement déclencheur, configurez les paramètres facultatifs, puis cliquez sur « Next ».

    <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="Événement déclencheur" width="1596" height="1324" data-path="images/azure-webhook-4.png" />
    </Frame>
  </Step>

  <Step>
    Dans la section Paramètres, saisissez l’URL [https://www.corgea.app/azure\_webhook/](https://www.corgea.app/azure_webhook/) ou, pour un déploiement privé, `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="Webhook URL" width="1600" height="1014" data-path="images/azure-webhook-fill-in-url.png" />
    </Frame>
  </Step>

  <Step>
    Ouvrez un nouvel onglet, accédez à la page des intégrations Corgea et repérez votre intégration Azure. Copiez la valeur `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>
    Revenez à la page de configuration du webhook Azure DevOps et renseignez les en-têtes suivants :

    * `X-CORGEA-UUID` : valeur UUID copiée
    * `X-WEB-TOKEN` : en-tête hérité et facultatif, à inclure uniquement si votre infrastructure externe l’exige

    <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="Configuration des en-têtes" width="1664" height="1548" data-path="images/azure-webhook-6.png" />
    </Frame>
  </Step>

  <Step>
    Cliquez sur « Finish » pour enregistrer la configuration. Ignorez le bouton « Test », car il pourrait tenter de déclencher des scans sur des fichiers auxquels vous n’avez pas accès.
  </Step>

  <Step>
    Répétez ces étapes pour ajouter un second webhook avec « Pull request updated » comme événement déclencheur. Utilisez les mêmes URL et en-têtes que pour le premier webhook.

    <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="Événement déclencheur de mise à jour d’une pull request" width="1702" height="1736" data-path="images/azure-webhook-4-updated.png" />
    </Frame>
  </Step>

  <Step>
    Validez la configuration en créant ou en mettant à jour une pull request. Si la configuration fonctionne, un événement réussi apparaît dans l’historique du webhook et un nouveau scan est déclenché sur la page Corgea Scans à l’adresse [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="Historique du 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 Scans" width="3842" height="634" data-path="images/azure-webhook-8.png" />
    </Frame>
  </Step>
</Steps>

## Activer les réponses aux commentaires des pull requests Azure DevOps

Corgea peut recevoir les commentaires publiés sur les pull requests Azure DevOps et y répondre.

### Prérequis

* Corgea Agent est activé pour votre organisation.
* Azure DevOps est connecté à Corgea.
* Le PAT de l’intégration dispose de l’autorisation `Code: Read & write`.
* Vous pouvez créer des abonnements aux service hooks du projet Azure DevOps.

### Configurer le service hook

1. Dans Azure DevOps, ouvrez votre projet.
2. Accédez à `Project settings` -> `Service hooks`.
3. Sélectionnez `Create subscription` ou `+`.
4. Choisissez `Web Hooks`, puis sélectionnez `Next`.
5. Sélectionnez `Pull request commented on` comme déclencheur.
6. Si nécessaire, limitez le hook à un dépôt ou à une branche cible.
7. Saisissez l’URL du webhook :
   * Corgea Cloud : `https://www.corgea.app/azure_webhook/`
   * Déploiement privé : `https://<your-corgea-domain>/azure_webhook/`
8. Ajoutez cet en-tête HTTP :

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

   L’UUID est disponible dans la page Intégrations de Corgea.
9. Définissez `Resource details to send` sur `All`.
10. Testez l’abonnement, puis sélectionnez `Finish`.

Les service hooks sont propres à chaque projet. Répétez ces étapes pour tous les projets Azure DevOps qui doivent prendre en charge les réponses aux commentaires.

### Vérifier l’intégration

1. Ouvrez une pull request contenant une détection de Corgea.
2. Répondez directement à un commentaire de Corgea, ou adressez-vous à Corgea dans le commentaire.
3. Confirmez que :
   * La livraison réussit sous `Project settings` -> `Service hooks`.
   * Corgea publie sa réponse dans le même fil de commentaires.

### Dépannage

* Vérifiez que le service hook est activé et utilise `Pull request commented on`.
* Vérifiez que `X-CORGEA-UUID` correspond à la bonne intégration Corgea.
* Assurez-vous que `Resource details to send` est défini sur `All`.
* Vérifiez que le PAT Azure DevOps n’a pas expiré et dispose de l’accès `Code: Read & write`.
* Confirmez que Corgea Agent est activé pour l’organisation.

`X-WEB-TOKEN` n’est pas consommé par l’application Corgea pour ce flux. Ne conservez cet en-tête que si votre infrastructure externe l’exige.
