Skip to main content

Informationen zu Webhooks

Webhooks bieten die Möglichkeit, Benachrichtigungen an einen externen Webserver zu senden, wenn bestimmte Ereignisse in GitHub auftreten.

Informationen zu Webhooks

Webhooks sind eine Kommunikationsmethode, mit der Benutzer Ereignisse abonnieren können, die in einem Softwaresystem stattfinden. Webhooks können immer dann ausgelöst werden, wenn bestimmte Ereignisse auf GitHub auftreten. Du kannst einen Webhook beispielsweise so konfigurieren, dass er in folgenden Fällen ausgelöst wird:

  • Code wird an ein Repository gepusht.
  • Ein Pull Request wird geöffnet.
  • Eine GitHub Pages-Website wird erstellt
  • Ein neues Mitglied wird zu einem Team hinzugefügt.

Sie können Webhooks für eine Organisation, ein Repository oder eine GitHub App erstellen. Sie können auch Webhooks erstellen, um Ereignisse im Zusammenhang mit GitHub Sponsors und GitHub Marketplace zu abonnieren.

Sie können bis zu 20 Webhooks erstellen für jedes Ereignis auf jedem Installationsziel (bestimmte Organisation oder bestimmtes Repository).

Weitere Informationen zum Erstellen von Webhooks finden Sie unter „Erstellen von Webhooks“.

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.

Informationen zu Webhook-Ereignissen

Beim Konfigurieren eines Webhooks kannst du auswählen, welche Ereignisse dir Nutzlasten senden. Um die Anzahl von HTTP-Anforderungen an deinen Server zu begrenzen, solltest du nur die spezifischen Ereignisse abonnieren, die du behandeln möchtest. Eine vollständige Liste der verfügbaren Webhook-Ereignisse und ihrer Nutzdaten finden Sie unter „Webhook-Ereignisse und -Nutzlasten“.

Manche Webhook-Ereignisse verfügen über Aktionen, bei denen es sich um Operationen handelt, die für die Ressource ausgeführt werden können, die das Webhook-Ereignis repräsentiert. Wenn ein Webhook-Ereignis über mehrere Aktionsarten verfügt, löst jede Aktion eine Nutzdatenübermittlung aus. Beispielsweise löst das Webhook-Ereignis package eine Nutzdatenübermittlung aus, wenn ein Paket entweder updated oder edited ist. Sie können keine einzelnen Webhook-Aktionen abonnieren. Wenn Sie einen Webhook konfigurieren, erhalten Sie Nutzdaten für alle Aktionen im Zusammenhang mit diesem Webhook.

Standardmäßig wird für Webhooks, die in einer Organisation oder einem Repository installiert sind, nur das push-Ereignis abonniert. Standardmäßig werden für Webhooks in GitHub Apps keine Ereignisse abonniert. Du kannst Ereignisse, die für einen Webhook abonniert sind, jederzeit ändern.

Informationen zu Webhook-Zustellungen

Wenn Sie eine Webhook-Übermittlung empfangen, enthalten die Nutzdaten den Namen des Ereignisses und der Aktion, die die Übermittlung ausgelöst hat, sowie weitere Informationen zum Ereignis selbst. Weitere Informationen zu den Übermittlungsheadern, die in jeden Nutzdaten enthalten sind, und eine Beispielübermittlung finden Sie unter „Webhook-Ereignisse und -Nutzlasten“. Einige Informationen sind in den meisten oder allen Webhook-Übermittlungen enthalten, wie z. B. der Benutzer, der das Ereignis ausgeführt hat, oder die Organisation oder das Repository, wo das Ereignis stattgefunden hat.

Beim Erstellen eines Webhooks müssen Sie eine URL angeben, unter der Sie die Webhook-Ereignisse empfangen möchten. GitHub sendet HTTP POST-Nutzdaten an diese URL, wenn Ereignisse auftreten, die der Webhook abonniert hat. Ihr Server kann dann den Webhook verarbeiten und darauf reagieren. Weitere Informationen findest du unter Verwalten von Webhookübermittlungen.

Hinweis: Nutzlasten sind auf 25 MB begrenzt. Wenn dein Ereignis eine größere Nutzlast generiert, wird kein Webhook ausgelöst. Dies kann beispielsweise bei einem create-Ereignis geschehen, wenn viele Branches oder Tags gleichzeitig verschoben werden. Es wird empfohlen, die Nutzlastgröße zu überwachen, um die Übermittlung sicherzustellen.

Informationen zum Anzeigen von Webhook-Übermittlungen finden Sie unter „Anzeigen von Webhookübermittlungen“.

Einsatzgebiete von Webhooks

Webhooks können in einer Vielzahl von Szenarien eingesetzt werden, 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.

Webhooks ermöglichen den Empfang von Daten während des Geschehens im Gegensatz zum regelmäßigen Abrufen einer API, um festzustellen, ob Daten verfügbar sind, was auch als Abruf von Updates bezeichnet wird. Sie müssen Ihr Interesse an einem Ereignis nur einmal zum Ausdruck bringen, wenn Sie den Webhook erstellen.

Webhooks haben die folgenden Vorteile gegenüber der Verwendung der API:

  • 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“.

Informationen zu Berechtigungen zum Verwalten von Webhooks

Zum Verwalten von Webhooks müssen Sie der Besitzer der Ressource sein oder über einen Administratorzugriff auf die Ressource verfügen, auf der der Webhook erstellt wird und die auf Ereignisse überwacht wird. Um beispielsweise Organisations-Webhooks zu verwalten, benötigen Sie Administratorberechtigungen für diese Organisation. Weitere Informationen zum Erstellen der verschiedenen Webhooktypen finden Sie unter „Erstellen von Webhooks“.

Ersetzen von Legacy-GitHub-Diensten durch Webhooks

GitHub-Dienste (manchmal als Service Hooks bezeichnet) sind die veraltete Integrationsmethode, bei der GitHub einen Teil der Integrationsdienste über das github-services-Repository gehostet hat. 2019 haben wir GitHub-Dienste zugunsten der Integration in Webhooks für veraltet erklärt. Weitere Informationen über die veraltete Funktion finden Sie im Blogbeitrag.