Skip to main content

We've recently moved some of the REST API documentation. If you can't find what you're looking for, you might try the new Branches, Collaborators, Commits, Deploy Keys, Deployments, GitHub Pages, Releases, Metrics, Webhooks REST API pages.

Repositorywebhooks

Verwende die REST-API, um Webhooks für deine Repositorys zu erstellen und zu verwalten.

Informationen zu Repositorywebhooks

Repositorywebhooks ermöglichen es dir, POST-HTTP-Nutzdaten zu empfangen, wenn bestimmte Ereignisse in einem Repository auftreten. Du kannst die REST-API verwenden, um Repository, Organisation und App-Webhooks zu verwalten. Du kannst Webhookübermittlungen für einen Webhook auflisten oder eine individuelle Übermittlung für einen Webhook abrufen und erneut ausführen, der in eine externe App oder einen Dienst integriert werden kann. Du kannst die REST-API auch verwenden, um die Konfiguration des Webhooks zu ändern. Du kannst beispielsweise die Nutzlast-URL, den Inhaltstyp, die SSL-Überprüfung und das Geheimnis ändern. Weitere Informationen findest du unter:

Wenn du einen einzelnen Webhook einrichten möchtest, um Ereignisse aus allen Repositorys deiner Organisation zu empfangen, findest du in der REST-API-Dokumentation für Organisationswebhooks hilfreiche Informationen.

Zusätzlich zur REST-API kann GitHub auch als PubSubHubbub-Hub für Repositorys fungieren.

Empfangen von Webhooknutzdaten

Damit GitHub Enterprise Server Webhooknutzlasten senden kann, muss ein Zugriff auf deinen Server über das Internet möglich sein. Zudem wird dringend empfohlen, SSL zu verwenden, sodass verschlüsselte Nutzdaten über das HTTPS gesendet werden können.

Webhookheader

GitHub Enterprise Server sendet mehrere HTTP-Header, um zwischen Ereignistypen und Nutzdatenbezeichnern zu unterscheiden. Details findest du unter Webhookheader.

PubSubHubbub

GitHub kann auch als PubSubHubbub-Hub für alle Repositorys fungieren. PSHB ist ein einfaches Veröffentlichungs- bzw. Abonnementprotokoll, mit dem Server registriert werden können, um im Falle einer Aktualisierung eines Themas Updates zu erhalten. Die Updates werden mit einer HTTP POST-Anforderung an eine Rückruf-URL gesendet. Themen-URLs für Pushvorgänge eines GitHub-Repositorys haben das folgende Format:

https://github.com/{owner}/{repo}/events/{event}

Das Ereignis kann ein beliebiges verfügbares Webhookereignis sein. Weitere Informationen findest du unter Webhookereignisse und Nutzdaten.

Antwortformat

Das Standardformat ist das, was vorhandene post-receive-Hooks erwarten sollten: ein JSON-Textkörper, der als payload-Parameter in einer POST-Anforderung gesendet wird. Du kannst auch angeben, dass der unformatierte JSON-Textkörper entweder mit einem Accept-Header oder einer .json-Erweiterung empfangen wird.

Accept: application/json
https://github.com/{owner}/{repo}/events/push.json

Rückruf-URLs

Rückruf-URLs können das HTTP-Protokoll verwenden.

# Send updates to a PostBin bin
https://www.toptal.com/developers/postbin/123

Abonnieren

Der GitHub-PubSubHubbub-Endpunkt ist http(s)://HOSTNAME/api/v3/hub. Eine erfolgreiche Anforderung mit curl sieht wie folgt aus:

curl -u "user" -i \
  http(s)://HOSTNAME/api/v3/hub \
  -F "hub.mode=subscribe" \
  -F "hub.topic=https://github.com/{owner}/{repo}/events/push" \
  -F "hub.callback=https://www.toptal.com/developers/postbin/123"

PubSubHubbub-Anforderungen können mehrmals gesendet werden. Wenn der Hook bereits vorhanden ist, wird er der Anforderung entsprechend geändert.

Parameter
NametypeBESCHREIBUNG
hub.modestringErforderlich. Entweder subscribe oder unsubscribe
hub.topicstringErforderlich. Dies ist der URI des GitHub-Repositorys, das abonniert werden soll. Der Pfad muss das Format /{owner}/{repo}/events/{event} aufweisen.
hub.callbackstringDies ist der URI zum Empfangen der Updates für das Thema.
hub.secretstringDies ist ein freigegebener geheimer Schlüssel, der eine Hashsignatur des ausgehenden Textinhalts generiert. Du kannst überprüfen, ob ein Push von GitHub stammt, indem du den unformatierten Anforderungstext mit dem Inhalt des X-Hub-Signature- oder X-Hub-Signature-256-Headers vergleichst. In der PubSubHubbub-Dokumentation findest du weitere Details.