Skip to main content

Verwenden von Webhooks mit -Apps

Webhooks ermöglichen es deinem App, Echtzeitbenachrichtigungen zu erhalten, wenn Ereignisse auf auftreten, z. B. wenn jemand einen Commit pusht oder einen Pull Request in einem Repository öffnet, auf das deine App zugreifen kann. Weitere Informationen zu Webhooks findest du unter Informationen zu Webhooks. Ein Tutorial, das das Verwenden von Webhooks mit einer App veranschaulicht, findest du unter Erstellen einer -App, die auf Webhookereignisse reagiert.

Du kannst deine App so konfigurieren, dass sie Webhooks für bestimmte Ereignisse auf empfängt und automatisch darauf reagiert. Weitere Informationen über die Arten von Webhooks, die du empfangen kannst, findest du unter Webhook-Ereignisse und -Nutzlasten.

Um Webhookereignisse in deiner App zu empfangen, musst du Webhooks für deine App-Registrierung aktivieren und eine Webhook-URL angeben, an die die Webhooknutzdaten sendet.

Wenn deine App nicht auf Webhooks reagieren muss oder nur für die Authentifizierung verwendet wird, kannst du die Webhookfunktion für deine App-Registrierung deaktivieren. Du musst keine Webhook-URL angeben.

Weitere Informationen zum Registrieren einer App findest du unter Registrieren einer -App. Weitere Informationen zum Ändern der Webhooks, die von einer App-Registrierung abonniert werden, findest du unter Ändern einer -App-Registrierung.

Wenn du Webhooks für deine App-Registrierung aktivierst, musst du eine Webhook-URL angeben. Die Webhook-URL ist die Adresse eines Webservers, der die Webhookereignisnutzdaten empfängt, die an deine App gesendet werden. Der Server kann dann auf der Grundlage des Inhalts der Nutzdaten Aktionen ausführen. Du solltest einen Webserver auswählen, der für das Volumen des Webhookdatenverkehrs geeignet ist, der durch deine App fließen wird.

Während du deine App entwickelst und testest, kannst du einen Webhook-Nutzdatenbereitstellungsdienst wie Smee verwenden, um Webhooknutzdaten zu erfassen und an deine lokale Entwicklungsumgebung weiterzuleiten. Verwende Smee niemals für eine Anwendung in der Produktion, da Smee-Kanäle nicht authentifiziert oder sicher sind. Alternativ kannst du ein Tool wie ngrok, localtunnel oder die Hookdeck-Konsole verwenden, das deinen lokalen Computer für das Internet verfügbar macht, um die Nutzdaten zu empfangen.

Du kannst Smee verwenden, um eine eindeutige Domäne zu erstellen, in der Webhooknutzdaten senden kann, ohne deine lokale Entwicklung für das Internet verfügbar zu machen. Smee bezeichnet diese eindeutige Domäne als „Webhook-Proxy-URL“. Du kannst die Webhook-Proxy-URL von Smee als Webhook-URL für deine App verwenden.

  1. Um Smee zum Erstellen einer eindeutigen Domäne zu verwenden, wechsle zu https://smee.io, und klicke auf Neuen Kanal starten.
  2. Befolge auf der Seite „Smee-Kanal“ die Anweisungen unter „Verwenden der CLI“, um den Smee-Client zu installieren und auszuführen.
  3. Um deine Smee-Webhook-URL mit deiner App zu verbinden, gib deine eindeutige Smee-Domäne in das Feld „Webhook-URL“ der Seite mit der App-Registrierung ein. Weitere Informationen findest du unter Registrieren einer -App und Ändern einer -App-Registrierung.

Eine Anwendung in der Produktion, die ein geringes Volumen an Webhookdatenverkehr empfängt, kannst du auf jedem dynamischen Anwendungsserver hosten. Der serverseitige Code zur Verarbeitung des Webhooks kann das Ereignis empfangen, seine JSON-Nutzlast deserialisieren und entscheiden, welche Aktion ausgeführt werden soll, z. B. das Speichern der Daten in einer Datenbank oder das Aufrufen der -API.

Um ein höheres Volumen an Webhookdatenverkehr für eine große App in der Produktion zu verarbeiten, solltest du die asynchrone Webhookbehandlung auf einem dedizierten Server in Betracht ziehen. Du kannst dies durch den Einsatz einer Warteschlange erreichen, in der der Webhookhandler Daten in die Warteschlange pusht, und separate Prozesse führen nachfolgende Aktionen basierend auf den Ereignissen aus. Darüber hinaus kannst du Cloudfunktionen wie Azure Functions, AWS Lambda oder Hookdeck verwenden, um die App für die Verarbeitung großer Mengen von Webhookereignissen zu skalieren.

Sobald du deinen Server für das Erhalten von Nutzdaten konfiguriert hast, lauscht dieser auf jegliche Nutzdaten, die zu dem von dir konfigurierten Endpunkt gesendet werden. Aus Sicherheitsgründen solltest du eingehende Anforderungen nur auf von stammende Anforderungen beschränken. Dazu kannst du ein Webhookgeheimnis für deine App erstellen.

Um ein Webhookgeheimnis für deine -App zu erstellen, gib unter „Webhookgeheimnis“ auf der Seite mit der App-Registrierung ein geheimes Token ein. Du solltest eine zufällige Textzeichenfolge mit hoher Entropie auswählen. Weitere Informationen findest du unter Registrieren einer -App und Ändern einer -App-Registrierung.

Nachdem du ein Webhookgeheimnis für deine App erstellt hast, musst du deinen Server so konfigurieren, dass das geheime Webhooktoken sicher gespeichert und überprüft wird. Weitere Informationen finden Sie unter Validierung von Webhook-Zustellung.

Du kannst deine App abonnieren, um Webhooknutzlasten für bestimmte Ereignisse zu empfangen. Die spezifischen Webhookereignisse, die du für deine App-Registrierung auswählen kannst, werden durch den Typ der Berechtigungen bestimmt, die du für deine App ausgewählt hast. Du musst zuerst die Berechtigungen auswählen, über die deine App verfügen soll, und dann kannst du deine App für Webhookereignisse abonnieren, die sich auf diesen Berechtigungssatz beziehen. Weitere Informationen findest du unter Auswählen von Berechtigungen für eine -App.

Wenn du beispielsweise möchtest, dass deine App immer dann eine Webhookereignisnutzlast erhält, wenn ein neues Problem in deinem Repository geöffnet wird, musst du deiner App zunächst die Berechtigung für den Zugriff auf „Probleme“ unter „Repositoryberechtigungen“ erteilen. Dann kannst du unter „Ereignisse abonnieren“ „Probleme“ auswählen.

Weitere Informationen zu den Berechtigungen, die für jedes Webhookereignis erforderlich sind, findest du unter Webhook-Ereignisse und -Nutzlasten.