Sdílet prostřednictvím


Webhooky

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

Tento článek popisuje webhooky a jejich nastavení pro váš projekt Azure DevOps. Webhooky poskytují způsob odeslání reprezentace JSON události Azure DevOps do jakékoli služby, která má veřejný koncový bod.

Poznámka:

Azure DevOps neúčtuje poplatky za nastavení připojení služeb ani integraci s externími službami. Informace o cenách souvisejících s jejich službami najdete na webu konkrétní služby.

Požadavky

Kategorie Požadavky
oprávnění - Člen skupiny Správci kolekce Projektu . Vlastníci organizace jsou automaticky členy této skupiny.
Projekt a služby - Projekt v organizaci
– Služba s veřejným koncovým bodem HTTPS, do kterého chcete odesílat události Azure DevOps.

Důležité

  • Používejte pouze koncové body HTTPS. Protokol HTTP může odesílat privátní data, včetně hlaviček ověřování, nešifrovaných v datové části události. Pro základní ověřování ve webhooku musíte použít protokol HTTPS.
  • Pokud se připojujete ke službě za virtuální privátní sítí, ujistěte se, že jsou IP adresy Azure DevOps povolené pro příchozí připojení. Viz příchozí připojení.

Odeslání reprezentace JSON do služby

  1. V projektu Azure DevOps přejděte do části Service settings>Service hooks at https://<organization-name>/<project-name>/_settings/serviceHooks.

    Snímek obrazovky s vybranou možností Připojení služby v nastavení projectu

  2. Na stránce Hooks služby vyberte + ikonu nebo Vytvořit předplatné.

    Snímek obrazovky s výběrem možnosti Vytvořit předplatné na stránce Hooks služby

  3. Na obrazovce Služba vyberte WebHooky a pak vyberte Další.

    Snímek obrazovky s výběrem webhooků na stránce Služby

  4. Na obrazovce Trigger vyberte a nakonfigurujte událost Azure DevOps, na které chcete webhook aktivovat, a pak vyberte Další. Další informace o datových částech JSON publikovaných příjemcem Azure DevOps najdete v tématu Události volání služby.

    Snímek obrazovky s výběrem a konfigurací události triggeru

  5. Na obrazovce Akce nakonfigurujte cílovou adresu URL a co dělat, když dojde k události. Další informace o tom, co zadat do podrobností o zdroji pro odesílání, zprávy k odeslání a podrobné zprávy, naleznete v části Podrobnosti o zdroji, které chcete odeslat.

    Poznámka:

    Webhooky nemůžou cílit na adresy localhost (loopback) ani speciální rozsah IPv4/IPv6.

  6. Výběrem možnosti Test otestujte předplatné připojení služby.

    Snímek obrazovky s konfigurací dialogového okna Akce

  7. Po úspěšném dokončení testu zavřete obrazovku s oznámením a pak na obrazovce Akce vyberte Dokončit.

    Snímek obrazovky s výsledky testu předplatného připojení služby

  8. Teď je webhook nastavený. Přejděte do cílové služby a zobrazte reprezentaci JSON.

    Snímek obrazovky s zobrazením reprezentace JSON

Tip

Webhook můžete také vytvořit programově. Další informace najdete v tématu Programové vytvoření předplatného háku služby.

Podrobnosti o zdroji k odeslání

Podrobnosti o prostředku pro odesílání, odesílání zpráv a podrobné zprávy pro odesílání nastavení v podokně akcí určují velikost datové části JSON, která se má odeslat. Podrobnosti o zdroji pro odeslání určuje, kolik prostředku se má odeslat. Výchozí hodnota je Vše, ale můžete také zvolit, že chcete odeslat minimum, která odesílají jenom pole s klíči, jako je adresa URL a ID nebo Žádné.

Žádné a minimální jsou užitečné ve scénářích, kdy volající nepotřebuje o prostředku moc ani žádné informace, protože závisí na samotné zprávě nebo podrobné zprávě. Žádné a Minimální jsou také užitečné z bezpečnostních důvodů. Volající musí volat zpět do Azure DevOps Services a projít normálními kontrolami zabezpečení a oprávnění, aby získal další podrobnosti o prostředku.

Následující ukázkový JSON ukazuje minimální podrobnosti o prostředku:

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