À propos du test des webhooks
Vous pouvez tester la livraison du webhook. Ce procédé vous permet de vérifier que GitHub envoie une livraison de webhook en réponse à un événement dont vous prévoyez de déclencher une livraison de webhook.
Vous pouvez également tester votre code qui gère les livraisons de webhook à l’aide de votre ordinateur ou espace de code comme serveur local et transfert de livraisons de webhook à votre serveur local. Cette action vous permet de développer et de déboguer votre code sans déployer votre code sur votre serveur de production.
Test de la livraison du webhook
Vous pouvez déclencher un événement de webhook et vérifier que GitHub envoit une livraison de webhook.
-
Déclenchez votre webhook. Par exemple, si vous testez un webhook de référentiel qui est abonné à l'événement
issues
, ouvrez un sujet dans le référentiel où le webhook est configuré.Vous pouvez également livrer de nouveau des livraisons précédentes de webhooks. Pour plus d’informations, consultez « Livrer de nouveau des webhooks ».
Si vous utilisez un webhook d’organisation ou de référentiel, vous pouvez également utiliser l’API REST pour déclencher l’événement
ping
pour votre webhook. Si vous utilisez un webhook de référentiel et que votre webhook est abonné à l’événementpush
, vous pouvez utiliser l’API REST pour déclencher un événement de testpush
pour votre webhook. Pour plus d’informations, consultez « Points de terminaison d’API REST pour les webhooks du référentiel » et « Points de terminaison d’API REST pour les webhooks de l’organisation ». -
Contrôlez GitHub pour vérifier qu’une livraison de webhook a été effectuée. Pour plus d’informations sur la façon de procéder pour chaque type de webhook, consultez « Affichage des livraisons de webhook ».
Si une livraison de webhook n’a pas été effectuée ou si une livraison de webhook a été effectuée, mais GitHub indique que la livraison a échoué, reportez-vous au guide de résolution des problèmes pour vous aider à diagnostiquer le problème. Pour plus d’informations, consultez « Résolution des problèmes liés aux webhooks ».
Test du code webhook localement
Pour tester votre code de webhook localement sur votre ordinateur ou votre espace de code, vous pouvez utiliser une URL proxy de webhook pour transférer les webhooks de GitHub vers votre ordinateur ou votre espace de code. Vous pouvez utiliser votre ordinateur ou espace de code comme serveur local pour recevoir ces webhooks transférés.
Les sections suivantes montrent comment utiliser smee.io pour fournir une URL de proxy webhook et transférer des webhooks.
Pour obtenir des exemples spécifiques d’étapes de code et de test, consultez « Gestion des livraisons de webhooks ».
Obtenir une URL de proxy webhook
- Dans votre navigateur, accédez à https://smee.io/.
- Cliquez sur Démarrer un nouveau canal.
- Copiez l’URL complète sous « URL du proxy webhook ». Vous utiliserez cette URL dans la procédure d’installation suivante.
Configurer un webhook pour utiliser l’URL du proxy webhook
Configurez votre webhook pour utiliser l’URL du proxy webhook ci-dessus. Pour plus d’informations, consultez « Création de webhooks » et « Édition de webhooks ».
À présent, GitHub envoie des livraisons de webhook à cette URL.
Démarrez un serveur local
Sur votre ordinateur ou espace de code, démarrez un serveur local. La manière dont vous procédez dépend de la façon dont vous écrivez votre code pour recevoir les webhooks. Pour obtenir des exemples, consultez Gestion des livraisons de webhooks.
Vous devez vous assurer que votre code peut s’exécuter localement. Par exemple, si votre code s’appuie sur des variables d’environnement sur votre serveur en production, vous devez vous assurer que les variables d’environnement sont également disponibles sur votre serveur local.
Vous pouvez également trouver utile d’ajouter des instructions de journal pour vérifier que les étapes de votre code sont exécutées comme prévu.
Laissez votre serveur local en exécution pendant que vous testez votre webhook.
Transférer des webhooks
-
Si vous n’avez pas déjà smee-client installé, exécutez la commande suivante dans votre terminal :
Shell npm install --global smee-client
npm install --global smee-client
-
Pour recevoir des webhooks transférés à partir de smee.io, exécutez la commande suivante dans votre terminal. Remplacez
WEBHOOK_PROXY_URL
par l’URL de proxy de votre webhook précédent. RemplacezPATH
par le chemin d’accès ou l’itinéraire géré par votre serveur. RemplacezPORT
par le port où votre serveur local écoute.Shell smee --url WEBHOOK_PROXY_URL --path /PATH --port PORT
smee --url WEBHOOK_PROXY_URL --path /PATH --port PORT
Vous devez voir la sortie qui ressemble à ceci, avec les espaces réservés
WEBHOOK_PROXY_URL
,PORT
, etPATH
remplacés par les valeurs que vous avez spécifiées :Shell Forwarding WEBHOOK_PROXY_URL to http://127.0.0.1:PORT/PATH Connected WEBHOOK_PROXY_URL
Forwarding WEBHOOK_PROXY_URL to http://127.0.0.1:PORT/PATH Connected WEBHOOK_PROXY_URL
À présent, quand votre URL de proxy webhook (smee.io URL) reçoit une livraison de webhook de a envoyé une livraison de webhook, que smee a reçu et transféré la livraison, et que votre serveur local a traité la livraison du webhook.
Vérifier que GitHub a envoyé la livraison
Contrôlez GitHub pour vérifier qu’une livraison de webhook a été effectuée. Pour plus d’informations, consultez « Affichage des livraisons de webhook ».
Si une livraison de webhook n’a pas été effectuée ou si une livraison de webhook a été effectuée, mais GitHub indique que la livraison a échoué, reportez-vous au guide de résolution des problèmes pour vous aider à diagnostiquer le problème. Pour plus d’informations, consultez « Résolution des problèmes liés aux webhooks ».
Vérifiez que smee a reçu votre livraison de webhook
Accédez à l’URL du proxy de votre webhook sur smee.io. Vous devriez voir un événement qui correspond à l’événement que vous avez déclenché ou livré de nouveau. Cela indique que GitHub a correctement envoyé une livraison de webhook à l’URL de charge utile que vous avez spécifiée.
Si vous ne voyez pas votre livraison de webhook sur smee.io, vérifiez que votre webhook utilise votre URL de proxy webhook (URL smee.io).
Vérifiez que smee a transféré votre livraison de webhook
Dans la fenêtre du terminal où vous avez exécuté la commande smee --url WEBHOOK_PROXY_URL --path /PATH --port PORT
, vous devriez voir quelque chose comme POST http://127.0.0.1:3000/webhook - 202
. Cela indique que smee a transféré avec succès votre webhook dans votre serveur local.
Si vous ne voyez pas la livraison, assurez-vous que le client smee et votre serveur local sont en cours d’exécution. Ces deux processus doivent s’exécuter dans deux fenêtres différentes du terminal.
Vous devez aussi rechercher les erreurs dans les fenêtres du terminal où vous exécutez le client smee et votre serveur local. Les erreurs spécifiques dépendent de la façon dont votre code doit recevoir des webhooks écrits. Pour obtenir des exemples, consultez Gestion des livraisons de webhooks.
Vérifiez que votre serveur local a traité la livraison du webhook
À ce stade, vous avez vérifié que GitHub a envoyé une livraison de webhook et que smee a transféré la livraison à votre serveur local. À présent, vous devez vérifier que votre code a traité la livraison du webhook comme prévu. La manière dont vous procédez dépend de la façon dont vous écrivez votre code pour recevoir les webhooks. Pour obtenir des exemples, consultez Gestion des livraisons de webhooks.