Share via


Webhooks

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

In dit artikel worden webhooks beschreven en hoe u deze instelt voor uw Azure DevOps-project. Webhooks bieden een manier om een JSON-weergave van een Azure DevOps-gebeurtenis te verzenden naar een service met een openbaar eindpunt.

Notitie

Azure DevOps brengt geen kosten in rekening voor het instellen van servicehook of het integreren met externe services. Raadpleeg de site van de specifieke service voor prijzen met betrekking tot hun services.

Vereisten

U hebt de volgende vereisten nodig voor het beheren van webhooks voor een Azure DevOps-organisatie:

  • De rol Eigenaar of Beheerder van projectverzameling in de organisatie.

  • Een project in de organisatie en een service met een openbaar HTTP- of HTTPS-eindpunt waarnaar u Azure DevOps-gebeurtenissen wilt verzenden.

    Belangrijk

    Het is raadzaam om alleen HTTPS-eindpunten te gebruiken. HTTP kan persoonlijke gegevens verzenden, inclusief verificatieheaders, die niet zijn versleuteld in de nettolading van de gebeurtenis. U moet HTTPS gebruiken voor basisverificatie op een webhook.

JSON-weergave verzenden naar een service

  1. Ga in uw Azure DevOps-project naar Project settings>Service-hooks op .https://<organization-name>/<project-name>/_settings/serviceHooks

    Schermopname van de keuze voor Service hooks in Project-instellingen.

  2. Selecteer op de pagina Servicehook het + pictogram of abonnement maken.

    Schermopname van het selecteren van Abonnement maken op de pagina Servicehook.

  3. Selecteer webhook in het scherm Service en selecteer vervolgens Volgende.

    Schermopname van het selecteren van webhook op de pagina Service.

  4. Selecteer en configureer in het scherm Trigger de Azure DevOps-gebeurtenis waarop u de webhook wilt activeren en selecteer vervolgens Volgende. Zie Service hooks-gebeurtenissen voor meer informatie over de JSON-nettoladingen die zijn gepost door de Azure DevOps-consument.

    Schermopname van het selecteren en configureren van de trigger-gebeurtenis.

  5. Configureer in het scherm Actie de doel-URL en wat u moet doen wanneer de gebeurtenis plaatsvindt. Zie Resourcegegevens die u wilt verzenden voor meer informatie over het invoeren van resourcegegevens voor verzenden, berichten die moeten worden verzonden en gedetailleerde berichten die moeten worden verzonden.

    Notitie

    Webhooks kunnen geen localhost -adressen (loopback) of speciale bereik-IPv6-adressen / targeten.

  6. Selecteer Testen om het servicehookabonnement te testen.

    Schermopname van het configureren van het dialoogvenster Actie.

  7. Wanneer de test is voltooid, sluit u het meldingsscherm en selecteert u Voltooien op het scherm Actie .

    Schermopname van testresultaten voor het servicehookabonnement

  8. De webhook is nu ingesteld. Ga naar de doelservice om de JSON-weergave weer te geven.

    Schermopname van het weergeven van de JSON-weergave.

Tip

U kunt ook programmatisch een webhook maken. Zie Programmatisch een abonnement voor servicehook maken voor meer informatie.

Resourcegegevens die moeten worden verzonden

De resourcegegevens die moeten worden verzonden, berichten die moeten worden verzonden en gedetailleerde berichten voor het verzenden van instellingen in het deelvenster Actie bepalen de grootte van de JSON-nettolading die moet worden verzonden. Resourcegegevens voor het verzenden van besturingselementen hoeveel van de resource moet worden verzonden. De standaardwaarde is Alles, maar u kunt er ook voor kiezen om minimaal te verzenden, waardoor alleen sleutelvelden, zoals URL en id, of Geen worden verzonden.

Geen en Minimaal zijn handig in scenario's waarin de aanroeper niet veel of geen informatie over de resource nodig heeft, omdat deze afhankelijk is van het bericht of gedetailleerde bericht zelf. Geen en Minimaal zijn ook handig om veiligheidsredenen. De aanroeper moet terugbellen naar Azure DevOps Services en de normale beveiligings- en machtigingscontroles doorlopen om meer informatie over de resource te krijgen.

In de volgende voorbeeld-JSON worden minimale details over de resource weergegeven:

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