Skip to main content

Utilisation de webhooks avec des applications GitHub

Votre GitHub App peut s’abonner Ă  des Ă©vĂ©nements webhook pour recevoir des notifications chaque fois que certaines activitĂ©s se produisent.

À propos des webhooks et GitHub Apps

Les webhooks permettent Ă  votre GitHub App de recevoir des notifications en temps rĂ©el lorsque des Ă©vĂ©nements se produisent sur GitHub, par exemple quand quelqu’un envoie (push) une validation ou ouvre une demande de tirage (pull request) dans un rĂ©fĂ©rentiel auquel votre application peut accĂ©der. Pour plus d’informations sur les webhooks, consultez À propos des webhooks. Pour obtenir un tutoriel qui montre comment utiliser des webhooks avec un GitHub App, consultez « GĂ©nĂ©ration d’une application GitHub qui rĂ©pond aux Ă©vĂ©nements de webhook ».

Vous pouvez configurer votre GitHub App pour recevoir des webhooks pour des Ă©vĂ©nements spĂ©cifiques sur GitHub et y prendre automatiquement des mesures. Pour plus d’informations sur les types de webhooks que vous pouvez recevoir, consultez « Ă‰vĂ©nements et charges utiles du webhook Â».

Pour recevoir des Ă©vĂ©nements webhook dans votre GitHub App, vous devez activer les webhooks pour votre inscription d’GitHub App et spĂ©cifier une URL de webhook oĂč GitHub enverra les charges utiles du webhook.

Si votre GitHub App n’a pas besoin de rĂ©pondre aux webhooks ou ne sera utilisĂ©e que pour l’authentification, vous pouvez dĂ©sactiver la fonction de webhook pour votre inscription d’GitHub App. Vous n’avez pas besoin de spĂ©cifier une URL de webhook.

Pour plus d’informations sur l’inscription d’une GitHub App, consultez « Inscription d’une application GitHub Â». Pour plus d’informations sur la modification des webhooks auxquels une inscription d’GitHub App s’abonne, consultez Modification d’une inscription d’application GitHub.

Choix d’une URL de webhook

Lorsque vous activez des webhooks dans votre inscription d’GitHub App, vous devez spĂ©cifier une URL de webhook. L’URL du webhook est l’adresse d’un serveur web qui recevra les charges utiles d’évĂ©nement webhook envoyĂ©es Ă  votre GitHub App. Le serveur peut ensuite prendre des mesures en fonction du contenu de la charge utile. Vous devez choisir un serveur web appropriĂ© pour le volume de trafic de webhook que votre GitHub App rencontrera.

Choix d’une URL de webhook pour le dĂ©veloppement et le test

Pendant que vous dĂ©veloppez et testez votre application, vous pouvez utiliser un service de livraison de charge utile webhook comme Smee pour capturer et transfĂ©rer des charges utiles webhook vers votre environnement de dĂ©veloppement local. N’utilisez jamais Smee pour une application en production, car les canaux Smee ne sont pas authentifiĂ©s ni sĂ©curisĂ©s. Vous pouvez Ă©galement utiliser un outil comme ngrok, localtunnel ou Hookdeck Console qui expose votre ordinateur local Ă  Internet pour recevoir les charges utiles.

CrĂ©ation d’une URL de webhook avec Smee

Vous pouvez utiliser Smee pour crĂ©er un domaine unique dans lequel GitHub peut envoyer des charges utiles webhook, sans exposer votre dĂ©veloppement local Ă  Internet. Smee appelle ce domaine unique « URL de proxy webhook ». Vous pouvez utiliser l’URL du proxy webhook de Smee comme URL de webhook pour votre GitHub App.

  1. Pour utiliser Smee pour créer un domaine unique, accédez à https://smee.io et cliquez sur Démarrer un nouveau canal.
  2. Dans la page Canal Smee, suivez les instructions sous « Utiliser l’interface CLI » pour installer et exĂ©cuter le client Smee.
  3. Pour connecter votre URL de webhook Smee Ă  votre GitHub App, entrez votre domaine Smee unique dans le champ « URL webhook Â» de votre page d’inscription d’GitHub App Pour plus d’informations, consultez « Inscription d’une application GitHub Â» et « Modification d’une inscription d’application GitHub Â».

Choix d’une URL de webhook pour la production

Pour une application en production qui reçoit un faible volume de trafic webhook, vous pouvez l’hĂ©berger sur n’importe quel serveur d’applications dynamique. Le code cĂŽtĂ© serveur pour la gestion du webhook peut recevoir l’évĂ©nement, dĂ©sĂ©rialiser sa charge utile JSON et dĂ©cider de l’action Ă  entreprendre, comme le stockage des donnĂ©es dans une base de donnĂ©es ou l’appel de l’API GitHub.

Pour gĂ©rer un volume plus Ă©levĂ© de trafic webhook pour une application volumineuse en production, envisagez d’utiliser la gestion de webhook asynchrone sur un serveur dĂ©diĂ©. Vous pouvez y parvenir en utilisant une file d’attente, oĂč le gestionnaire de webhook envoie des donnĂ©es Ă  la file d’attente, et des processus distincts effectuent les actions suivantes en fonction des Ă©vĂ©nements. En outre, vous pouvez utiliser des fonctions cloud, telles que Azure Functions, AWS Lambda ou Hookdeck, pour faciliter la mise Ă  l’échelle de l’application afin de gĂ©rer de grands volumes d’évĂ©nements de webhook.

Sécurisation de vos webhooks avec un secret de webhook

Une fois que votre serveur est configuré pour recevoir des charges utiles, il écoute toutes les charges utiles envoyées au serveur. Pour des raisons de sécurité, vous devez limiter les demandes entrantes uniquement à celles provenant de GitHub. Pour ce faire, créez un secret de webhook pour votre application.

Pour crĂ©er un secret de webhook pour votre application GitHub, tapez un jeton secret sous « Secret du webhook Â» sur votre page d’inscription d’GitHub App. Vous devez choisir une chaĂźne alĂ©atoire de texte avec une entropie Ă©levĂ©e. Pour plus d’informations, consultez « Inscription d’une application GitHub Â» et « Modification d’une inscription d’application GitHub Â».

AprĂšs avoir créé un secret webhook pour votre application, vous devez configurer votre serveur pour stocker et valider de maniĂšre sĂ©curisĂ©e le jeton secret webhook. Pour plus d’informations, consultez « Validation des livraisons de webhook Â».

Abonnement aux événements de webhook

Vous pouvez vous abonner Ă  votre GitHub App pour recevoir des charges utiles webhook pour des Ă©vĂ©nements spĂ©cifiques. Les Ă©vĂ©nements webhook spĂ©cifiques que vous pouvez sĂ©lectionner dans votre inscription d’GitHub App sont dĂ©terminĂ©s par le type d’autorisations que vous avez sĂ©lectionnĂ© pour votre application. Vous devez d’abord sĂ©lectionner les autorisations que vous souhaitez que votre application dispose, puis vous pouvez abonner votre application aux Ă©vĂ©nements de webhook liĂ©s Ă  cet ensemble d’autorisations. Pour plus d’informations, consultez « Choix des autorisations pour une application GitHub Â».

Par exemple, si vous souhaitez que votre application reçoive une charge utile d’évĂ©nement webhook chaque fois qu’un nouveau problĂšme est ouvert dans votre rĂ©fĂ©rentiel, vous devez d’abord accorder Ă  votre application l’autorisation d’accĂ©der aux « problĂšmes » sous « Autorisations du rĂ©fĂ©rentiel Â». Ensuite, sous « S’abonner aux Ă©vĂ©nements », vous pouvez sĂ©lectionner « ProblĂšmes ».

Pour plus d’informations sur les autorisations requises pour chaque Ă©vĂ©nement de webhook, consultez « ÉvĂ©nements et charges utiles du webhook ».