Utlösa en Azure-funktion med en GitHub-händelse
Med Gollum-händelsen (GitHub) kan du lyssna efter Wiki-uppdateringar. När den här händelsen inträffar utlöses din Azure HttpTrigger-funktion och du kan parsa nyttolasten för att hämta och bearbeta de data som skickades.
Du har visat IT-avdelningen att du kan lyssna efter Gollum-händelser på företagets GitHub-lagringsplats genom att konfigurera en webhook. Du har också visat hur Azure Function-appar gör att du kan köra kod när en funktion tar emot en webhook-begäran.
I den här lektionen ska vi undersöka nyttolasten från Gollum-händelsen så att vi kan uppdatera vår funktion för att parsa den korrekt.
Nyttolast för Gollum-händelse
Nyttolasten för Gollum-händelsen innehåller följande objekt:
-
sidor som har uppdaterats. Varje sida innehåller följande information:
-
page_name
Namnet på sidan. -
title
Aktuell sidrubrik. -
action
Åtgärd som utfördes på sidan – skapad eller redigerad. -
html_url
HTML-wiki-sida.
-
-
lagringsplatsinformation om lagringsplatsen som innehåller wiki-sidan, inklusive:
-
name
Namnet på lagringsplatsen. -
owner
Information om ägaren av lagringsplatsen. -
html_url
Lagringsplatsens adress.
-
- avsändarinformation om den användare som skapade händelsen som orsakade webhooken att utlösas.
En nyttolast kan till exempel se ut som följande kod.
"pages": [
{
"page_name": "Home",
"title": "Home",
"summary": null,
"action": "edited",
"sha": "562362bc141b9e2db1fb971e1ecb4fd0b7457f68",
"html_url": "https://github.com/testrepo/Hello-World/wiki/Home"
}
],
"repository": {
...
"name": "testrepo",
...
"owner": {
...
},
"html_url": "https://github.com/...",
...
},
"sender": {
"login": "..."
...
}
Den här informationen skickas som meddelandetext i en HTTP POST-begäran. Vi måste uppdatera vår funktionslogik för att parsa och bearbeta den här informationen korrekt.
Parsa information från Gollum-händelsen
Kom ihåg att webhooken körs när en viss händelse inträffar. Webhooken skickar sedan en begäran till url:en där Azure Functions-koden har konfigurerats för att lyssna med hjälp av URL:en för din funktion. Nyttolasten skickas till Azure-funktionen. Funktionen kan parsa begärandetexten för att extrahera fälten från nyttolasten och vidta lämpliga åtgärder.
I följande exempel hämtas namnet på lagringsplatsen från nyttolasten. Händelsetypen är tillgänglig i begärandehuvudet x-github-event. Dessa data matas ut i följande funktionssvar.
if (req.body.repository.name){
context.res = {
body: "Repository is: " + req.body.repository.name + ", Event Type is: " + req.headers['x-github-event']
};
}
I nästa övning uppdaterar vi funktionskoden för att kunna hantera en inkommande Gollum-händelse .