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

Catégorie Exigences
Permissions - Membre du groupe Administrateurs de regroupements de projets . Les propriétaires de l’organisation sont automatiquement membres de ce groupe.
Projet et service - Un projet dans l’organisation
- Service avec un point de terminaison HTTPS public auquel vous souhaitez envoyer des événements Azure DevOps.

Important

  • Utilisez 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.
  • Si vous vous connectez à un service derrière un réseau privé virtuel, vérifiez que les adresses IP Azure DevOps sont autorisées pour les connexions entrantes. Voir Connexions entrantes.

Envoyer une représentation JSON à un service

  1. Dans votre projet Azure DevOps, accédez aux >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/ 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:": "..."
       }
   }