GitHub-webhooks: aanmaken, verifiëren en opnieuw versturen

GitHub-webhooks

GitHub-webhooks: instellen, events en signature controleren | We.Inc

Maak een GitHub-webhook, kies events, verifieer de X-Hub-Signature-256-header met werkende code en stuur mislukte leveringen opnieuw. Inclusief een signature-checker in de browser.

Een GitHub-webhook is een bericht dat GitHub naar de URL van uw server post zodra er iets gebeurt in een repository, zoals een push, een nieuwe issue of een release. U voegt hem toe onder Settings, Webhooks van de repository. Stel een secret in zodat u de X-Hub-Signature-256-header kunt controleren en valse leveringen kunt weigeren.

Feiten over GitHub-webhooks die u moet kennen (docs.github.com, oktober 2026)

Met webhooks laat GitHub uw site of app weten wat er verandert op het moment dat het gebeurt, zodat u een site bij elke push opnieuw kunt bouwen, een bericht kunt plaatsen wanneer een issue wordt geopend of een changelog kunt bijwerken bij een release. Het belangrijke deel dat de meeste snelle handleidingen overslaan, is controleren of een levering echt van GitHub kwam. De checker hieronder berekent dezelfde signature die GitHub verstuurt, gewoon in uw browser.

Veelgestelde vragen

Probeert GitHub mislukte webhooks opnieuw?

Nee. De documentatie van GitHub zegt dat mislukte leveringen niet automatisch opnieuw worden verstuurd. U kunt er handmatig een opnieuw versturen vanuit Recent Deliveries, voor leveringen van de afgelopen 3 dagen.

Wat is de X-Hub-Signature-256-header?

Die wordt meegestuurd als de webhook een secret heeft. GitHub neemt de body van het verzoek, berekent een HMAC met SHA-256 met uw secret als sleutel, en stuurt het hexresultaat met sha256= ervoor. Uw server maakt dezelfde berekening en vergelijkt.

Welke events kan een webhook ontvangen?

Veel, waaronder push, pull_request, issues, release en workflow_run. De X-GitHub-Event-header noemt het event dat elke levering heeft veroorzaakt, en ping komt binnen wanneer u de hook voor het eerst aanmaakt.

Kan ik een webhook testen zonder publieke server?

Uw endpoint moet vanaf internet bereikbaar zijn, want GitHub post ernaartoe. Voor lokaal werk draait u een tunneltool die uw machine een tijdelijke publieke URL geeft, en gebruikt u die als Payload URL.

Webhook of de API pollen?

Een webhook stuurt elke wijziging naar u zodra die gebeurt; pollen betekent de API op een timer bevragen. Webhooks gebruiken minder verzoeken en komen sneller binnen, en dat telt, want API-aanroepen tellen mee voor de rate limits.

Wat er met elke levering binnenkomt

Uw verificatiecode controleren met de testwaarden van GitHub

Deze Express-route leest de ruwe body, berekent de HMAC met uw secret en vergelijkt die in constante tijd voordat de payload wordt vertrouwd.

express.raw bewaart precies de bytes die GitHub heeft ondertekend. Het secret komt uit een omgevingsvariabele, nooit uit de code.

Headers van een levering

Headers bij elke levering van een GitHub-webhook

Webhook-signature-checker

Typ een secret en een ruwe request-body om de X-Hub-Signature-256-waarde te zien die GitHub zou versturen. Het draait in uw browser met de Web Crypto API; er wordt niets geüpload.

Webhook-secret

Ruwe request-body

Ontvangen signature-header (optioneel)

sha256=...

Berekende signature

Komt overeen: de signature van deze levering is geldig voor dat secret en die body.

Komt niet overeen: het secret, de bytes van de body of de header verschillen.

Testwaarden van GitHub laden

Met de testwaarden van GitHub moet het resultaat gelijk zijn aan:

Gratis beginnen · Geen creditcard nodig

Gerelateerd: Gidsen

Product

Voor wie

Functies

Bronnen

Bedrijf

Sitemap