Ă 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.
- Pour utiliser Smee pour créer un domaine unique, accédez à https://smee.io et cliquez sur Démarrer un nouveau canal.
- Dans la page Canal Smee, suivez les instructions sous « Utiliser lâinterface CLI » pour installer et exĂ©cuter le client Smee.
- 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 ».