Esercizio - Configurare un webhook per un repository GitHub
In questo esercizio verrà configurato un webhook per un repository GitHub. Si apprenderà come essere in ascolto di eventi specifici, in questo caso l'evento Gollum, e come eseguire il callback del webhook nella funzione quando l'evento viene attivato.
Attrezzaggio
Usando il Web browser, accedere al proprio account GitHub.
Creare un nuovo repository selezionando Nuovo nel riquadro del menu a sinistra. Viene visualizzata la pagina Crea un nuovo repository.
Nella casella Nome repository immettere un nome significativo, ad esempio LearnWebhookTest.
Selezionare Pubblico per attivare il modulo wiki e trovarlo nel menu.
Selezionare Create repository. Viene visualizzata la pagina Configurazione rapida.
Selezionare il collegamento creazione di un nuovo file.
Nella barra dei menu superiore selezionare Wiki per visualizzare le pagine nel repository ( o repo). Viene visualizzata una pagina Welcome (Benvenuto).
Selezionare Create the first page (Crea la prima pagina). Viene visualizzato il modello Create new page (Crea nuova pagina).
Aggiungere del testo e selezionare Save Page (Salva pagina). La prima pagina di un wiki è la home page.
Aggiungere un webhook per l'evento Gollum
Gollum è il nome dell'evento di GitHub che viene generato ogni volta che si crea o si aggiorna una pagina nel wiki del repository.
Nella home page nella visualizzazione Wiki è presente una barra laterale Pages (Pagine) che elenca le pagine nel proprio repository. Selezionare Home per visualizzare la home page.
Nella home page, nella barra dei menu in alto, selezionare Impostazioni. Viene visualizzato il riquadro Impostazioni.
Nella barra laterale Impostazioni selezionare Webhook. Viene visualizzato il riquadro Webhook.
In alto a destra selezionare Add webhook (Aggiungi webhook). GitHub potrebbe chiedere di confermare la password per GitHub.
Nel riquadro Webhooks/Add webhook (Webhook/Aggiungi webhook) immettere i valori seguenti per ogni impostazione.
Impostazione Valore URL del payload URL per l'app per le funzioni di Azure dall'esercizio precedente. Per informazioni, vedere la nota seguente. Tipo contenuto Nell'elenco a discesa selezionare application/json. Quali eventi attiveranno il webhook? SelezionareLet me select individual events (Consentimi di selezionare eventi singoli). Nell'elenco di eventi visualizzato scorrere verso il basso e selezionare la casella di controllo Wiki. Assicurarsi che non siano selezionate altre caselle di controllo. Attive Selezionato. Suggerimento
Copiare l'URL della funzione dal riquadro HttpTrigger di Azure selezionando Recupera URL funzione dalla barra dei comandi. L'URL sarà simile al seguente:
https://<your-functionapp-name>.azurewebsites.net/api/HttpTrigger1?code=aUjXIpqdJ0ZHPQuB0SzFegxGJu0nAXmsQBnmkCpJ6RYxleRaoxJ8cQ==
Selezionare Aggiungi webhook. Viene visualizzato il riquadro Webhook.
Verificare che venga visualizzato il nuovo webhook. Deve avere (gollum) alla fine del nome.
Testare il webhook
In GitHub, nella barra dei menu in alto selezionare Wiki. Viene visualizzata la pagina Home creata in precedenza.
Seleziona Modifica Viene visualizzato il riquadro Editing Home (Modifica home).
Nell'area di testo del riquadro immettere il testo seguente:
Testing Webhook
Selezionare Save Page (Salva pagina). Viene visualizzata nuovamente la pagina Home.
Nella barra dei menu in alto selezionare Settings (Impostazioni). Viene visualizzato il riquadro Impostazioni.
Nella barra laterale selezionare Webhooks. Viene visualizzato il riquadro Webhook.
Seleziona Modifica Viene visualizzato il riquadro Webhook/Gestisci webhook.
Selezionare la scheda Recapiti recenti (potrebbe essere necessario scorrere fino alla fine della pagina).
Nell'elenco selezionare la prima voce di recapito (la più recente) selezionando i puntini di sospensione (...).
Verrà visualizzata la sezione Headers (Intestazioni), tra cui l'evento:
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
Si noterà anche che la sezione Payload contiene informazioni che indicano che la pagina wiki è stata modificata. Il payload contiene le sezioni pages (pagine), repository e sender (mittente), che dovrebbero avere un aspetto simile all'esempio riportato di seguito:
"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" : { ... }
Nella scheda Recent Deliveries (Recapiti recenti) selezionare la scheda Response (Risposta).
Verrà visualizzato il messaggio di risposta generato dalla funzione di Azure. Per questo esempio, il corpo deve contenere il messaggio. Questa funzione attivata tramite HTTP è stata eseguita correttamente. Passare un nome nella stringa di query o nel corpo della richiesta per una risposta personalizzata.