webhooks

Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2019

Cet article décrit les webhooks et comment les configurer pour votre projet Azure DevOps. Les webhooks permettent d’envoyer une représentation JSON d’un événement Azure DevOps à n’importe quel service disposant d’un point de terminaison public.

Remarque

Azure DevOps ne facture pas la configuration des hooks de service ou l’intégration à des services externes. Reportez-vous au site du service spécifique pour connaître les tarifs liés à leurs services.

Prérequis

Vous avez besoin des prérequis suivants pour gérer les webhooks pour une organisation Azure DevOps :

  • Rôle Propriétaire ou Administrateur de collection de projets dans l’organisation.

  • Un projet dans l’organisation et un service avec un point de terminaison HTTP ou HTTPS public auquel vous souhaitez envoyer des événements Azure DevOps.

    Important

    Il est recommandé d’utiliser uniquement des points de terminaison HTTPS. HTTP peut envoyer des données privées, notamment des en-têtes d’authentification, non chiffrés dans la charge utile de l’événement. Vous devez utiliser HTTPS pour l’authentification de base sur un webhook.

Envoyer une représentation JSON à un service

  1. Dans votre projet Azure DevOps, accédez aux hooks du service de paramètres>de projet à l’adresse https://<organization-name>/<project-name>/_settings/serviceHooks.

    Capture d’écran du choix des hooks de service dans les paramètres du projet.

  2. Dans la page Hooks de service, sélectionnez l’icône + ou Créer un abonnement.

    Capture d’écran de la sélection de créer un abonnement sur la page Hooks de service.

  3. Dans l’écran Service , sélectionnez Web Hooks , puis sélectionnez Suivant.

    Capture d’écran de la sélection de Web Hooks sur la page Service.

  4. Dans l’écran Déclencheur , sélectionnez et configurez l’événement Azure DevOps sur lequel vous souhaitez déclencher le webhook, puis sélectionnez Suivant. Pour plus d’informations sur les charges utiles JSON publiées par le consommateur Azure DevOps, consultez les événements de hooks de service.

    Capture d’écran de la sélection et de la configuration de l’événement de déclencheur.

  5. Dans l’écran Action, configurez l’URL cible et ce qu’il faut faire lorsque l’événement se produit. Pour plus d’informations sur les informations à entrer dans les détails de la ressource à envoyer, messages à envoyer et messages détaillés à envoyer, consultez Les détails de la ressource à envoyer.

    Remarque

    Les webhooks ne peuvent pas cibler localhost (bouclage) ou des adresses IPv4/IPv6 de plage spéciale.

  6. Sélectionnez Tester pour tester l’abonnement de hook de service.

    Capture d’écran de la configuration de la boîte de dialogue Action.

  7. Une fois le test terminé, fermez l’écran de notification, puis sélectionnez Terminer sur l’écran Action .

    Capture d’écran des résultats des tests pour l’abonnement de hook de service

  8. Le webhook est maintenant configuré. Accédez au service cible pour afficher la représentation JSON.

    Capture d’écran de l’affichage de la représentation JSON.

Conseil

Vous pouvez également créer un webhook par programmation. Pour plus d’informations, consultez Créer un abonnement de hook de service par programmation.

Détails de la ressource à envoyer

Les détails de la ressource à envoyer, messages à envoyer et messages détaillés pour envoyer des paramètres dans le volet Action contrôlent la taille de la charge utile JSON à envoyer. Les détails de la ressource à envoyer contrôlent la quantité de ressource à envoyer. La valeur par défaut est All, mais vous pouvez également choisir d’envoyer minimal, qui envoie uniquement des champs clés tels que l’URL et l’ID ou None.

Aucun et Minimal sont utiles dans les scénarios où l’appelant n’a pas besoin de beaucoup ou d’informations sur la ressource, car il s’appuie sur le message ou le message détaillé lui-même. Aucun et Minimal sont également utiles pour des raisons de sécurité. L’appelant doit rappeler azure DevOps Services et passer par des vérifications de sécurité et d’autorisation normales pour obtenir plus de détails sur la ressource.

L’exemple JSON suivant montre des détails minimes sur la ressource :

   {
       "eventType": "git.push",
       ...
       "messages": {
           "text": "...",
           "html": "...",
           "markdown": "..."
       },
       "detailedMessage": {
           "text": "...",
           "html": "...",
           "markdown": "..."
       },
       "resource": {
           "id": "...",
           "url": "https://...",
           "name": "...",
           "field1:": "..."
       }
   }