Skip to main content
Wir veröffentlichen regelmäßig Aktualisierungen unserer Dokumentation, und die Übersetzung dieser Seite ist möglicherweise noch nicht abgeschlossen. Aktuelle Informationen findest du in der englischsprachigen Dokumentation.

Teile der REST-API-Dokumentation wurden kürzlich an andere Stelle verschoben. Falls du nicht findest, wonach du suchst, kannst du die neuen Branches, Collaborators, Commits, Deploy Keys, Deployments, GitHub Pages, Releases, Metrics, Webhooks-REST-API-Seiten ausprobieren.

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 Webhook-Ereignisse und -Nutzlasten.

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 PubSubHubbub-Endpunkt in GitHub ist http(s)://HOSTNAME/api/v3/hub und übernimmt die folgenden Parameter.

NametypeErforderlichBeschreibung
hub.modestringEntweder subscribe oder unsubscribe
hub.topicstringDies 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.

Eine Beispielanforderung 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.