Een Azure-functie activeren met een GitHub-gebeurtenis
Met de GitHub-gebeurtenis Gollum kunt u luisteren naar wiki-updates. Wanneer deze gebeurtenis plaatsvindt, wordt uw Azure HttpTrigger-functie geactiveerd en kunt u de nettolading parseren om de verzonden gegevens op te halen en te verwerken.
U hebt uw IT-afdeling getoond dat u kunt luisteren naar Gollum-gebeurtenissen in de GitHub-opslagplaats van uw bedrijf door een webhook in te stellen. U hebt ook gedemonstreerd hoe u met Azure Function-apps code kunt uitvoeren wanneer een functie een webhookaanvraag ontvangt.
In deze les onderzoeken we de nettolading van de Gollum-gebeurtenis , zodat we onze functie kunnen bijwerken om deze correct te parseren.
Nettolading van Gollum-gebeurtenis
De nettolading voor de Gollum-gebeurtenis bevat de volgende items:
- pagina's die zijn bijgewerkt. Elke pagina bevat de volgende informatie:
page_name
Naam van de pagina.title
Titel van huidige pagina.action
Actie die is uitgevoerd op de pagina - gemaakt of bewerkt.html_url
HTML-wikipagina.
- opslagplaatsinformatie over de opslagplaats met de wikipagina, waaronder:
name
Naam van de opslagplaats.owner
De details van de eigenaar van de opslagplaats.html_url
Adres van de opslagplaats.
- afzenderinformatie over de gebruiker die de gebeurtenis heeft gegenereerd waardoor de webhook werd geactiveerd.
Een nettolading kan er bijvoorbeeld uitzien als de volgende code.
"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": "..."
...
}
Deze informatie is doorgegeven als de hoofdtekst van een HTTP POST-aanvraag. We moeten onze functielogica bijwerken om deze informatie correct te parseren en te verwerken.
Informatie uit de Gollum-gebeurtenis parseren
Bedenk dat de webhook wordt uitgevoerd wanneer een specifieke gebeurtenis plaatsvindt. De webhook verzendt vervolgens een aanvraag naar de URL waar uw Azure Functions-code is ingesteld om te luisteren, met behulp van de URL voor uw functie. De nettolading wordt doorgegeven aan de Azure-functie. Uw functie kan de hoofdtekst van de aanvraag parseren om de velden uit de nettolading te extraheren en de juiste acties uit te voeren.
In het volgende voorbeeld wordt de naam van de opslagplaats opgehaald uit de nettolading. Het gebeurtenistype is beschikbaar in de aanvraagheader van de x-github-gebeurtenis. Deze gegevens worden uitgevoerd in het volgende functieantwoord.
if (req.body.repository.name){
context.res = {
body: "Repository is: " + req.body.repository.name + ", Event Type is: " + req.headers['x-github-event']
};
}
In de volgende oefening werken we uw functiecode bij om een binnenkomende Gollum-gebeurtenis te kunnen verwerken.