Webhooks GitHub : créer, vérifier et renvoyer

Webhooks GitHub

Webhooks GitHub : configuration, événements et signature | We.Inc

Créez un webhook GitHub, choisissez les événements, vérifiez l'en-tête X-Hub-Signature-256 avec du code fonctionnel et renvoyez les livraisons échouées. Avec un vérificateur de signature dans le navigateur.

Un webhook GitHub est un message que GitHub envoie à l'URL de votre serveur chaque fois qu'il se passe quelque chose dans un dépôt, comme un push, une nouvelle issue ou une release. Vous l'ajoutez dans Settings, Webhooks du dépôt. Définissez un secret pour pouvoir vérifier l'en-tête X-Hub-Signature-256 et rejeter les fausses livraisons.

Ce qu'il faut savoir sur les webhooks GitHub (docs.github.com, octobre 2026)

Les webhooks permettent à GitHub de prévenir votre site ou votre application d'un changement dès qu'il se produit : vous pouvez ainsi reconstruire un site à chaque push, publier un message à l'ouverture d'une issue ou mettre à jour un changelog à chaque release. Le point important que la plupart des guides rapides oublient, c'est de vérifier qu'une livraison vient bien de GitHub. Le vérificateur ci-dessous calcule la même signature que celle envoyée par GitHub, directement dans votre navigateur.

Questions fréquentes

GitHub relance-t-il les webhooks échoués ?

Non. La documentation de GitHub indique qu'il ne renvoie pas automatiquement les livraisons échouées. Vous pouvez en renvoyer une à la main depuis Recent Deliveries pour les livraisons des 3 derniers jours.

Qu'est-ce que l'en-tête X-Hub-Signature-256 ?

Il est envoyé lorsque le webhook possède un secret. GitHub prend le corps de la requête, calcule un HMAC en SHA-256 avec votre secret comme clé et envoie le résultat hexadécimal précédé de sha256=. Votre serveur refait le calcul et compare.

Quels événements un webhook peut-il recevoir ?

Beaucoup, notamment push, pull_request, issues, release et workflow_run. L'en-tête X-GitHub-Event indique l'événement qui a déclenché chaque livraison, et ping arrive à la création du hook.

Puis-je tester un webhook sans serveur public ?

Votre endpoint doit être accessible depuis internet, car GitHub y envoie ses requêtes. En local, utilisez un outil de tunnel qui donne à votre machine une URL publique temporaire, puis utilisez-la comme Payload URL.

Webhook ou interrogation de l'API ?

Un webhook vous envoie chaque changement au moment où il se produit ; le polling consiste à interroger l'API à intervalles réguliers. Les webhooks utilisent moins de requêtes et arrivent plus tôt, ce qui compte car les appels à l'API sont décomptés des limites de débit.

Ce qui arrive avec chaque livraison

Vérifier votre code avec les valeurs de test de GitHub

Cette route Express lit le corps brut, calcule le HMAC avec votre secret et le compare en temps constant avant de faire confiance au payload.

express.raw conserve exactement les octets signés par GitHub. Le secret provient d'une variable d'environnement, jamais du code.

En-têtes de livraison

Les en-têtes de chaque livraison de webhook GitHub

Vérificateur de signature de webhook

Saisissez un secret et un corps de requête brut pour voir la valeur X-Hub-Signature-256 que GitHub enverrait. Le calcul se fait dans votre navigateur avec la Web Crypto API ; rien n'est envoyé.

Secret du webhook

Corps brut de la requête

En-tête de signature reçu (facultatif)

sha256=...

Signature calculée

Correspondance : la signature de cette livraison est valide pour ce secret et ce corps.

Pas de correspondance : le secret, les octets du corps ou l'en-tête diffèrent.

Charger les valeurs de test de GitHub

Avec les valeurs de test de GitHub, le résultat doit être égal à :

Commencer gratuitement · Sans carte bancaire

Voir aussi: Guides

Produit

Pour qui

Fonctionnalités

Ressources

Entreprise

Plan du site