Webhook GitHub: Crearli, Verificarli e Reinviarli

Webhook GitHub

Webhook GitHub: Configurazione, Eventi e Verifica della Firma | We.Inc

Crea un webhook GitHub, scegli gli eventi, verifica l'header X-Hub-Signature-256 con codice funzionante e reinvia le consegne fallite. Include un verificatore di firma nel browser.

Un webhook GitHub è un messaggio che GitHub invia all'URL del tuo server ogni volta che succede qualcosa in un repository, come un push, una nuova issue o una release. Lo aggiungi in Settings, Webhooks del repository. Imposta un secret così puoi controllare l'header X-Hub-Signature-256 e rifiutare le consegne false.

Dati utili sui webhook GitHub (docs.github.com, ottobre 2026)

I webhook permettono a GitHub di avvisare il tuo sito o la tua app dei cambiamenti nel momento in cui avvengono, così puoi ricostruire un sito a ogni push, pubblicare un messaggio quando si apre una issue o aggiornare un changelog a ogni release. La parte importante che la maggior parte delle guide rapide salta è verificare che una consegna arrivi davvero da GitHub. Il verificatore qui sotto calcola la stessa firma che invia GitHub, direttamente nel tuo browser.

Domande frequenti

GitHub riprova i webhook falliti?

No. La documentazione di GitHub afferma che non reinvia automaticamente le consegne fallite. Puoi reinviarne una a mano da Recent Deliveries per le consegne degli ultimi 3 giorni.

Cos'è l'header X-Hub-Signature-256?

Viene inviato quando il webhook ha un secret. GitHub prende il body della richiesta, calcola un HMAC con SHA-256 usando il tuo secret come chiave e invia il risultato esadecimale preceduto da sha256=. Il tuo server ripete il calcolo e confronta.

Quali eventi può ricevere un webhook?

Molti, tra cui push, pull_request, issues, release e workflow_run. L'header X-GitHub-Event indica l'evento che ha attivato ogni consegna, e ping arriva quando crei l'hook la prima volta.

Posso testare un webhook senza un server pubblico?

Il tuo endpoint deve essere raggiungibile da internet, perché GitHub ci invia le richieste. Per lavorare in locale, usa uno strumento di tunneling che dia al tuo computer un URL pubblico temporaneo, poi usalo come Payload URL.

Webhook o polling dell'API?

Un webhook ti invia ogni cambiamento quando avviene; il polling significa interrogare l'API a intervalli regolari. I webhook usano meno richieste e arrivano prima, e questo conta perché le chiamate API rientrano nei rate limit.

Cosa arriva con ogni consegna

Verificare il tuo codice con i valori di test di GitHub

Questa route Express legge il body grezzo, calcola l'HMAC con il tuo secret e lo confronta a tempo costante prima di fidarsi del payload.

express.raw conserva esattamente i byte firmati da GitHub. Il secret arriva da una variabile d'ambiente, mai dal codice.

Header delle consegne

Header presenti in ogni consegna di un webhook GitHub

Verificatore della firma del webhook

Scrivi un secret e il body grezzo di una richiesta per vedere il valore X-Hub-Signature-256 che GitHub invierebbe. Funziona nel tuo browser con la Web Crypto API; nulla viene caricato.

Secret del webhook

Body grezzo della richiesta

Header della firma ricevuto (facoltativo)

sha256=...

Firma calcolata

Corrisponde: la firma di questa consegna è valida per quel secret e quel body.

Non corrisponde: il secret, i byte del body o l'header sono diversi.

Carica i valori di test di GitHub

Con i valori di test di GitHub il risultato dovrebbe essere uguale a:

Inizia gratis · Nessuna carta di credito richiesta

Correlati: Guide

Prodotto

Per chi è

Funzionalità

Risorse

Azienda

Mappa del sito