Configurare un webhook per un repository GitHub
In GitHub i webhook possono essere configurati per un'organizzazione o per un repository specifico. Un webhook viene attivato ogni volta che si verifica uno o più degli eventi sottoscritti. Ad esempio, l'evento Gollum consente di essere in ascolto degli aggiornamenti del wiki, in particolare della creazione e degli aggiornamenti di una pagina wiki.
In questa unità si apprenderà come configurare un webhook in ascolto per un evento di modifica del wiki GitHub aziendale.
Configurare un webhook
La configurazione di un webhook è un processo in due passaggi. In primo luogo, specificare in GitHub come si vuole che il webhook si comporti e quali eventi saranno in ascolto. In secondo luogo, configurare la funzione in Funzioni di Azure per ricevere e gestire il payload ricevuto dal webhook. Nello scenario di esempio viene configurato un webhook per un repository specifico.
Per configurare il webhook, nel portale di GitHub selezionare Settings (Impostazioni) dalla barra dei menu in alto. Viene visualizzata la pagina Settings (Impostazioni) con il nome del repository. Nel menu a sinistra selezionare Webhooks (Webhook) e quindi Add webhook (Aggiungi webhook). È anche possibile creare e gestire un webhook tramite l'API Webhook, che non è trattata in questo modulo.
I webhook richiedono alcune opzioni di configurazione prima di poter essere usati. Ognuna di queste impostazioni verrà esaminata di seguito.
URL del payload
L'URL del payload è l'URL del server che riceverà le richieste POST del webhook.
Ogni tipo di evento ha un formato di payload specifico. Il payload contiene informazioni sull'evento che ha attivato il webhook.
Content type
I webhook possono essere recapitati usando due diversi tipi di contenuto:
- Il tipo di contenuto application/json recapita il payload JSON direttamente come corpo di una richiesta POST.
- Il tipo di contenuto application/x-www-form-urlencoded invia il payload JSON come parametro di modulo, denominato payload.
Nota
La pagina Add webhook (Aggiungi webhook) consente inoltre di specificare come proteggere le informazioni inviate dal webhook usando un segreto. Questo argomento viene descritto più avanti in questo modulo.
evento
Gli eventi sono il fulcro dei webhook. Gli eventi si verificano ogni volta che vengono intraprese azioni nel repository. Quando si verifica l'evento, il webhook viene attivato e chiama l'URL specificato, inviando il payload e le informazioni sull'evento all'URL. Ad esempio, per rispondere ogni volta che viene generato un problema in un repository, selezionare Let me select individual events (Selezione di singoli eventi) e quindi selezionare la casella di controllo Issues (Problemi). Assicurarsi di selezionare la casella di controllo Active (Attivo) per ricevere gli eventi dei problemi per i webhook attivati. Selezionare quindi Add webhook (Aggiungi webhook) per attivare il trigger.
Per essere in ascolto per gli aggiornamenti del Wiki per il repository, selezionare la casella di controllo Wiki; questo evento è l'evento Gollum indicato in precedenza. Selezionare Add webhook (Aggiungi webhook) per salvare tutti i singoli eventi selezionati.
Per un elenco completo degli eventi dei webhook e per sapere quando possono essere eseguiti, vedere gli eventi dei webhook di GitHub.
Nell'esercizio successivo verrà illustrato il processo di configurazione di un webhook per un repository GitHub.