Skip to main content

Test de webhooks

Découvrez comment tester vos webhooks et votre code qui gère les livraisons de webhook.

À 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.

  1. 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énement push, vous pouvez utiliser l’API REST pour déclencher un événement de test push 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 ».

  2. 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

  1. Dans votre navigateur, accédez à https://smee.io/.
  2. Cliquez sur Démarrer un nouveau canal.
  3. 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

  1. Si vous n’avez pas déjà smee-client installé, exécutez la commande suivante dans votre terminal :

    Shell
    npm install --global smee-client
    
  2. 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. Remplacez PATH par le chemin d’accès ou l’itinéraire géré par votre serveur. Remplacez PORT par le port où votre serveur local écoute.

    Shell
    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, et PATH 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
    

    À 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.