Exercice - Configurer un webhook pour un dépôt GitHub
Dans cet exercice, vous allez configurer un webhook pour un dépôt GitHub. Vous allez découvrir comment écouter des événements spécifiques (dans le cas présent, l’événement Gollum) et comment configurer le webhook pour qu’il rappelle votre fonction quand l’événement est déclenché.
Paramétrage
À l’aide de votre navigateur web, connectez-vous à votre compte GitHub.
Créez un référentiel en sélectionnant Nouveau dans le volet du menu de gauche. La page Créer un référentiel s’affiche.
Dans la zone Nom du référentiel, entrez un nom explicite, par exemple LearnWebhookTest.
Sélectionnez Public pour activer votre module wiki et le trouver dans le menu.
Cliquez sur Create repository (Créer le dépôt). La page Quick setup (Configuration rapide) s’affiche.
Sélectionnez le lien de création d’un nouveau fichier.
Dans la barre de menu du haut, sélectionnez Wiki pour afficher les pages de votre dépôt. Une page de bienvenue s’affiche.
Sélectionnez Create the first page (Créer la première page). Le modèle Create new page (Créer une page) s’affiche.
Ajoutez du texte et sélectionnez Save Page (Enregistrer la page). La première page d’un wiki est la page d’accueil.
Ajouter un webhook pour l’événement Gollum
Gollum est le nom d’un événement GitHub qui est déclenché chaque fois qu’une page du Wiki du dépôt est créée ou mise à jour.
Dans la page d’accueil de la vue Wiki se trouve une barre latérale Pages qui liste les pages de votre dépôt. Sélectionnez Accueil pour afficher la page d’accueil.
Dans la page d’accueil, dans la barre de menus supérieure, sélectionnez Paramètres. Le volet Paramètres s’affiche.
Dans la barre latérale Paramètres, sélectionnez Webhooks. Le volet Webhooks s’affiche.
En haut à droite, sélectionnez Ajouter un webhook. GitHub peut vous demander de confirmer votre mot de passe pour GitHub.
Dans le volet Webhooks/Ajouter un webhook, entrez les valeurs suivantes pour chaque paramètre.
Paramètre Valeur URL de la charge utile URL de votre application de fonction Azure de l’exercice précédent. Pour obtenir de l’aide, consultez la remarque suivante. Type de contenu Dans la liste déroulante, sélectionnez application/json. Pour quels événements voulez-vous déclencher ce webhook ? Sélectionnez Let me select individual events (Choisir les événements). Dans la liste des événements qui s’affiche, faites défiler vers le bas et cochez la case Wiki. Vérifiez qu’aucune autre case n’est cochée. Actif Coché. Conseil
Copiez l’URL de la fonction depuis le volet Azure HttpTrigger en sélectionnant Obtenir l’URL de la fonction dans la barre de commandes. Votre URL est similaire à :
https://<your-functionapp-name>.azurewebsites.net/api/HttpTrigger1?code=aUjXIpqdJ0ZHPQuB0SzFegxGJu0nAXmsQBnmkCpJ6RYxleRaoxJ8cQ==
Sélectionnez Ajouter un webhook. Le volet Webhooks s’affiche.
Vérifiez que votre nouveau webhook apparaît. (gollum) doit figurer à la fin de son nom.
Tester le webhook
Dans GitHub, dans la barre de menus supérieure, sélectionnez Wiki. La page d’accueil que vous avez créée précédemment s’affiche.
Sélectionnez Modifier. Le volet Editing Home (Modification de l’accueil) s’affiche.
Dans la zone de texte du volet, entrez le texte suivant :
Testing Webhook
Sélectionnez Save Page (Enregistrer la page). La page Home (Accueil) s’affiche à nouveau.
Dans la barre de menus supérieure, sélectionnez Paramètres. Le volet Paramètres s’affiche.
Dans la barre latérale , sélectionnez Webhooks. Le volet Webhooks s’affiche.
Sélectionnez Modifier. Le volet Webhooks/Manage webhook (Webhooks/Gérer un webhook) s’affiche.
Sélectionnez l’onglet Livraisons récentes (vous devrez peut-être faire défiler vers le bas de la page).
Dans la liste, sélectionnez l’entrée de la livraison du haut (la dernière) en sélectionnant les points de suspension (...).
Vous voyez alors la section Headers (En-têtes), notamment Event (Événement) :
Request URL: https://testwh123456.azurewebsites.net/api/HttpTrigger1?code=aUjXIpqdJ0ZHPQuB0SzFegxGJu0nAXmsQBnmkCpJ6RYxleRaoxJ8cQ%3D%3D Request method: POST Accept: */* content-type: application/json User-Agent: GitHub-Hookshot/16496cb X-GitHub-Delivery: 9ed46280-6ab3-11e9-8a19-f1a14922a239 X-GitHub-Event: gollum X-GitHub-Hook-ID: 312141005 X-GitHub-Hook-Installation-Target-ID: 394459163 X-GitHub-Hook-Installation-Target-Type: repository
Vous verrez également que la section Charge utile contient des informations indiquant que votre page wiki a été modifiée. La charge utile contient les sections pages, repository (dépôt) et sender (expéditeur), qui doivent ressembler à l’exemple suivant :
"pages": [ { "page_name": "Home", "title": "Home", "summary": null, "action": "edited", "sha": "04d012c5f92a95ae3f7721173bf9f2b1b35ea22f", "html_url": "https://github.com/.../wiki/Home" } ], "repository" : { "id": 176302421, "node_id": "MDEwOlJlcG9zaXRvcnkxNzYzMDI0MjE=", "name": "tieredstorage", ... }, "sender" : { ... }
Sous l’onglet Recent Deliveries, sélectionnez l’onglet Response.
Vous verrez le message de réponse généré par la fonction Azure. Pour cet exemple, le corps doit contenir le message suivant : Cette fonction déclenchée par HTTP a été exécutée avec succès. Transmettez un nom dans la chaîne de requête ou dans le corps de la requête pour obtenir une réponse personnalisée.