Utlösa en Azure-funktion med en GitHub-händelse
Med GitHub Gollum-händelsen 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 visade 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 undersöker vi 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 lagringsplatsens ägare.
- 
              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 behöver 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 den URL 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 .