Informationen zu Webhooks
Mit Webhooks können Sie Ereignisse abonnieren, die in einem Softwaresystem stattfinden, und automatisch eine Zustellung von Daten an Ihren Server auslösen, wenn diese Ereignisse auftreten.
Webhooks werden verwendet, um Daten in dem Moment zu empfangen, in dem sie anfallen, im Gegensatz zur Abfrage einer API (intermittierender Aufruf einer API), um zu sehen, ob Daten verfügbar sind. Bei Webhooks müssen Sie Ihr Interesse an einem Ereignis nur einmal zum Ausdruck bringen, und zwar dann, wenn Sie den Webhook erstellen.
Webhooks werden in einer Vielzahl von Szenarien eingesetzt, darunter:
- Auslösen von CI-Pipelines (Continuous Integration) auf einem externen CI-Server. Zum Beispiel zum Auslösen der CI in Jenkins oder CircleCI, wenn Code zu einer Verzweigung gepusht wird.
- Senden von Benachrichtigungen zu Ereignissen auf GitHub an Kollaborationsplattformen. Zum Beispiel Senden einer Benachrichtigung an Discord oder Slack im Fall einer Überprüfung zu einer Pull Request.
- Aktualisieren eines externen Problem-Trackers wie Jira.
- Bereitstellen auf einem Produktionsserver.
- Protokollierung von Ereignissen während ihres Auftretens auf GitHub zu Überwachungszwecken.
Informationen zur Webhooks auf GitHub
Wenn Sie einen Webhook erstellen, geben Sie eine URL an und abonnieren Ereignisse, zu denen es bei GitHub kommt. Wenn ein von Ihrem Webhook abonniertes Ereignis eintritt, sendet GitHub eine HTTP-Anforderung mit Daten über das Ereignis an die von Ihnen angegebene URL. Wenn Ihr Server für die Überwachung von Webhook-Übermittlungen unter dieser URL eingerichtet ist, kann er beim Empfang Aktionen ausführen.
Sie könnten Ihren Webhook zum Beispiel für Ereignisse abonnieren, die eintreffen, wenn Code in ein Repository gepusht wird, ein Pull Request eröffnet wird, ein GitHub Pages-Site erstellt wird oder ein neues Mitglied zu einem Team hinzugefügt wird. Ihr Server kann darauf reagieren, indem er Code in der Produktion bereitstellt, eine CI-Pipeline auslöst, eine Benachrichtigung sendet oder ein GitHub-Projekt für das neue Teammitglied erstellt.
Sie müssen einen Webhook in einem bestimmten Repository erstellen, einer bestimmten Organisation, einem bestimmten GitHub Enterprise, GitHub Marketplace- bzw. GitHub Sponsors-Konto, oder der GitHub App. Der Webhook kann nur auf Ressourcen zugreifen, die im Repository, der Organisation, GitHub Enterprise, dem GitHub Marketplace- bzw. GitHub Sponsors-Konto oder der GitHub App, wo er installiert ist. Weitere Informationen findest du unter Arten von Webhooks.
Weitere Informationen zum Erstellen von Webhooks finden Sie unter „Erstellen von Webhooks“. Weitere Informationen zu den Arten von Ereignissen, die Sie abonnieren können, finden Sie unter „Webhook-Ereignisse und -Nutzlasten“. Weitere Informationen zum Konfigurieren des Servers für eine Aktion als Reaktion auf eine Nutzdaten-Zustellung finden Sie unter „Verwalten von Webhookübermittlungen“.
Hinweis: GitHub-Webhooks unterstützen derzeit nicht IPv6, dies wird aber in Zukunft ergänzt. Der /meta
-REST-API-Endpunkt gibt IPv6-Bereiche zurück, um diesen Übergang zu ermöglichen.
Auswählen von Webhooks oder der REST-API
Die Verwendung von Webhooks hat gegenüber der API folgende Vorteile:
- Webhooks erfordern weniger Aufwand und weniger Ressourcen als das Abrufen einer API.
- Webhooks lassen sich besser skalieren als API-Aufrufe. Wenn Sie viele Ressourcen überwachen müssen, kann das Aufrufen der API für jede Ressource dazu führen, dass Sie das API-Kontingent Ihrer Ratenbegrenzung schnell erreicht haben. Stattdessen können Sie mehrere Webhook-Ereignisse abonnieren und nur dann Informationen empfangen, wenn ein Ereignis eintritt.
- Webhooks ermöglichen Updates in Quasi-Echtzeit, da Webhooks ausgelöst werden, wenn ein Ereignis eintritt.
Wenn Sie nur einmalig oder zeitweilig Informationen benötigen oder nur Informationen aus einer kleinen Gruppe von Ressourcen abrufen möchten und keine Hochskalierung planen, können Sie die API abrufen, wenn Sie die entsprechenden Informationen benötigen.
Informationen zu bewährten Methoden für die Verwendung von Webhooks finden Sie unter „Bewährte Methoden für die Verwendung von Webhooks“.
Notiz: GitHub Services (manchmal auch als Service Hooks bezeichnet) wird seit 2019 zugunsten der Integration mit Webhooks nicht mehr unterstützt. Weitere Informationen zum Migrieren Ihrer Integration von GitHub Services zur Verwendung von Webhooks finden Sie im Blogbeitrag.