GitHub Webhooks: erstellen, prüfen und erneut senden

GitHub Webhooks

GitHub Webhooks: Einrichtung, Events und Signaturprüfung | We.Inc

GitHub Webhook erstellen, Events wählen, den Header X-Hub-Signature-256 mit funktionierendem Code prüfen und fehlgeschlagene Zustellungen erneut senden. Mit Signatur-Checker im Browser.

Ein GitHub Webhook ist eine Nachricht, die GitHub an die URL deines Servers sendet, sobald in einem Repository etwas passiert, etwa ein Push, ein neues Issue oder ein Release. Du fügst ihn im Repository unter Settings, Webhooks hinzu. Lege ein Secret fest, damit du den Header X-Hub-Signature-256 prüfen und gefälschte Zustellungen ablehnen kannst.

Wissenswertes zu GitHub Webhooks (docs.github.com, Oktober 2026)

Mit Webhooks informiert GitHub deine Website oder App über Änderungen genau in dem Moment, in dem sie passieren. So kannst du bei jedem Push eine Website neu bauen, eine Nachricht posten, wenn ein Issue eröffnet wird, oder bei einem Release ein Changelog aktualisieren. Den wichtigen Teil überspringen die meisten Kurzanleitungen: zu prüfen, ob eine Zustellung wirklich von GitHub kommt. Der Checker unten berechnet direkt in deinem Browser dieselbe Signatur, die GitHub sendet.

Häufige Fragen

Wiederholt GitHub fehlgeschlagene Webhooks?

Nein. Laut GitHub-Dokumentation werden fehlgeschlagene Zustellungen nicht automatisch erneut gesendet. Du kannst Zustellungen der letzten 3 Tage unter Recent Deliveries von Hand erneut senden.

Was ist der Header X-Hub-Signature-256?

Er wird gesendet, wenn der Webhook ein Secret hat. GitHub nimmt den Request-Body, berechnet einen HMAC mit SHA-256 und deinem Secret als Schlüssel und sendet das Hex-Ergebnis mit dem Präfix sha256=. Dein Server wiederholt die Berechnung und vergleicht.

Welche Events kann ein Webhook empfangen?

Viele, darunter push, pull_request, issues, release und workflow_run. Der Header X-GitHub-Event nennt das Event, das die jeweilige Zustellung ausgelöst hat, und ping kommt an, wenn du den Hook zum ersten Mal anlegst.

Kann ich einen Webhook ohne öffentlichen Server testen?

Dein Endpoint muss aus dem Internet erreichbar sein, denn GitHub sendet dorthin. Für die lokale Entwicklung nutzt du ein Tunneling-Tool, das deinem Rechner eine temporäre öffentliche URL gibt, und trägst diese als Payload URL ein.

Webhook oder API-Polling?

Ein Webhook schickt dir jede Änderung, sobald sie passiert; Polling heißt, die API in festen Abständen abzufragen. Webhooks brauchen weniger Anfragen und kommen schneller an. Das zählt, weil API-Aufrufe auf die Rate Limits angerechnet werden.

Was mit jeder Zustellung ankommt

Deinen Prüfcode mit GitHubs Testwerten abgleichen

Diese Express-Route liest den rohen Body, berechnet den HMAC mit deinem Secret und vergleicht ihn mit konstanter Laufzeit, bevor sie der Payload vertraut.

express.raw behält genau die Bytes, die GitHub signiert hat. Das Secret kommt aus einer Umgebungsvariable, nie aus dem Code.

Zustellungs-Header

Header bei jeder GitHub-Webhook-Zustellung

Webhook-Signatur-Checker

Gib ein Secret und einen rohen Request-Body ein, um den Wert für X-Hub-Signature-256 zu sehen, den GitHub senden würde. Läuft in deinem Browser mit der Web Crypto API; nichts wird hochgeladen.

Webhook-Secret

Roher Request-Body

Empfangener Signatur-Header (optional)

sha256=...

Berechnete Signatur

Treffer: Die Signatur dieser Zustellung ist für dieses Secret und diesen Body gültig.

Kein Treffer: Secret, Body-Bytes oder Header weichen ab.

GitHubs Testwerte laden

Mit GitHubs Testwerten sollte das Ergebnis lauten:

Kostenlos starten · Keine Kreditkarte nötig

Verwandt: Ratgeber

Produkt

Für wen

Funktionen

Ressourcen

Unternehmen

Sitemap