๐Ÿ‡ฌ๐Ÿ‡ง EN
๐Ÿ‡ฎ๐Ÿ‡น IT

๐Ÿ™ GitHub Trigger

Il GitHub Trigger avvia un workflow quando GitHub invia un evento webhook โ€” come un push su un branch, una nuova pull request o l'apertura di una issue. Valida automaticamente la firma HMAC-SHA256 di GitHub in modo che solo eventi genuini possano avviare il workflow.

Categoria: Trigger  ยท  Identificatore tipo: github_trigger

Panoramica

GitHub puo inviare notifiche webhook per un'ampia gamma di eventi di repository e organizzazione: ogni volta che qualcuno esegue un push di un commit, apre o chiude una pull request, commenta una issue, crea una release o dozzine di altre azioni. Il GitHub Trigger ti permette di rispondere a qualsiasi di questi eventi direttamente in un workflow Flusso.

GitHub firma i payload dei webhook usando HMAC-SHA256 con un segreto che definisci tu. La firma e inclusa nell'header X-Hub-Signature-256 di ogni richiesta. Il GitHub Trigger verifica questa firma automaticamente, rifiutando qualsiasi richiesta che non abbia una firma valida. Questo garantisce che solo eventi reali da GitHub โ€” non richieste falsificate da altre fonti โ€” possano attivare il tuo workflow.

Puoi opzionalmente filtrare il trigger per attivarsi solo per un tipo specifico di evento GitHub usando il campo Event Filter. Ad esempio, impostandolo su push il workflow verra eseguito solo quando qualcuno esegue un push sul repository, ignorando pull request, issue e tutti gli altri eventi anche se GitHub li invia allo stesso endpoint.

Configurazione

Campo Obbligatorio Descrizione
Webhook Secret Obbligatorio Una stringa segreta che scegli e inserisci sia qui che nella configurazione del webhook di GitHub. Flusso la usa per verificare che le richieste in arrivo provengano realmente da GitHub validando la firma HMAC-SHA256.
Event Filter Opzionale Un singolo tipo di evento GitHub su cui filtrare (ad esempio, push, pull_request, issues, release). Se lasciato vuoto, il trigger si attiva per tutti i tipi di evento che GitHub invia. Consulta il riferimento eventi webhook GitHub per l'elenco completo dei tipi di evento disponibili.

Configurare il webhook in GitHub

  1. Copia l'URL webhook del tuo workflow dal pannello di configurazione del GitHub Trigger in Flusso.
  2. Vai al tuo repository GitHub (o organizzazione), poi naviga su Settings โ†’ Webhooks โ†’ Add webhook.
  3. Incolla l'URL del webhook nel campo Payload URL. Imposta Content type su application/json.
  4. Inserisci un segreto nel campo Secret. Usa una stringa lunga e casuale. Copia lo stesso identico valore e incollalo nel campo Webhook Secret in Flusso.
  5. Scegli quali eventi inviare โ€” puoi inviare "Just the push event", "Send me everything", o selezionare singoli eventi. Clicca Add webhook per salvare.

Dati di Output

VariabileTipoDescrizione
trigger.output.payload Object Il payload completo dell'evento GitHub. La struttura varia per tipo di evento โ€” consulta la documentazione GitHub per i dettagli.
trigger.output.event String Il valore dell'header X-GitHub-Event โ€” il tipo di evento, ad es. push, pull_request, issues.
trigger.output.headers Object Tutti gli header della richiesta HTTP, inclusi x-github-event e x-hub-signature-256.
// Accedi al tipo di evento {{ trigger.output.event }} // Evento push: il branch su cui e stato eseguito il push {{ trigger.output.payload.ref }} // Evento push: il nome di chi ha eseguito il push {{ trigger.output.payload.pusher.name }} // Evento pull request: il titolo della PR {{ trigger.output.payload.pull_request.title }} // Evento issue: il corpo della issue {{ trigger.output.payload.issue.body }} // Nome del repository (disponibile in tutti gli eventi) {{ trigger.output.payload.repository.full_name }}

Esempio di Utilizzo

Inviare un messaggio Slack quando viene eseguito un push su main

  1. Aggiungi un GitHub Trigger. Imposta un webhook secret e imposta Event Filter su push.
  2. Aggiungi un nodo Logic Gate per verificare che il push sia sul branch main: {{ trigger.output.payload.ref }} equals refs/heads/main.
  3. Sul ramo true, aggiungi un nodo Slack Message:
    New push to main by {{ trigger.output.payload.pusher.name }} Repository: {{ trigger.output.payload.repository.full_name }}

Suggerimenti e Note

Usa un nodo Switch per piu tipi di evento. Se configuri GitHub per inviare tutti gli eventi allo stesso endpoint webhook, aggiungi un nodo Switch subito dopo il GitHub Trigger, con switch su {{ trigger.output.event }}. Questo ti permette di gestire eventi push, pull_request e issues con logiche diverse nello stesso workflow.

Nodi Correlati