Configura webhook

Questa pagina descrive come configurare i webhook in Secure Source Manager.

I webhook sono richieste HTTP attivate da un evento in Secure Source Manager e inviate a un URL specificato dall'utente.

Prima di iniziare

  1. Crea un'istanza Secure Source Manager.
  2. Crea un repository Secure Source Manager.

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per creare webhook, chiedi all'amministratore di concederti i seguenti ruoli IAM:

Per ulteriori informazioni sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.

Per informazioni sulla concessione dei ruoli Secure Source Manager, consulta Controllo dell'accesso con IAM e Concedere agli utenti l'accesso all'istanza.

Configurare un webhook

  1. Nell'interfaccia web di Secure Source Manager, vai al repository per cui vuoi creare un webhook.
  2. Fai clic su Impostazioni.
  3. Fai clic su Webhook e poi su Aggiungi webhook.
  4. Nel campo ID hook, inserisci un ID per il webhook.

  5. Nel campo URL di destinazione, inserisci l'URL webhook. Ad esempio, se vuoi attivare una build in Jenkins, puoi configurare un trigger webhook e poi inserire l'URL del trigger Jenkins qui per attivare la build in Jenkins.

  6. Se l'URL webhook contiene i valori della chiave e del secret inseriti quando hai creato il trigger webhook, rimuovili dalla fine dell'URL di destinazione e copiali nel campo Stringa di query sensibile.

    Per trovare la chiave e il secret nell'URL webhook, cerca il testo che inizia con key=

    Ad esempio, dato il seguente URL: https://cloudbuild.googleapis.com/v1/projects/my-project/triggers/test-trigger:webhook?key=eitIfKhYnv0LrkdsyHqIros8fbsheKRIslfsdngf&secret=Hello%20Secret%20Manager

    Copia e rimuovi la parte che inizia con il punto interrogativo ?key=... dal campo URL di destinazione. Poi rimuovi il punto interrogativo iniziale e sposta la parte rimanente key=... nel campo Stringa di query sensibile.

  7. Nella sezione Attiva su, seleziona una delle seguenti opzioni:

    • Push: per attivare un push al repository.
    • Stato richiesta pull modificato: per attivare un evento in caso di modifica dello stato della richiesta pull.
  8. Se hai selezionato Push, puoi inserire un elenco consentito per gli eventi push nel campo Filtro ramo.

    Il campo Filtro ramificazioni utilizza il pattern glob e solo le operazioni sulle ramificazioni corrispondenti attiveranno una build. Se il campo è vuoto o *, vengono segnalati gli eventi push per tutti i rami. Per informazioni sulla sintassi, consulta la documentazione relativa a glob.

  9. Fai clic su Aggiungi webhook.

  10. Il webhook viene visualizzato nella pagina Webhook.

Testare il webhook

  1. Nella pagina Webhook di Secure Source Manager, fai clic sul webhook che vuoi testare.
  2. Vai in fondo alla pagina e fai clic su Test di pubblicazione.

    Un evento segnaposto viene aggiunto alla coda di pubblicazione. Potrebbero essere necessari alcuni secondi prima che venga visualizzato nella cronologia delle consegne.

  3. Puoi anche utilizzare un comando git per eseguire il push o unire una richiesta pull per testare il webhook.

  4. Controlla lo stato della build o dell'evento attivato nella cronologia delle build del servizio in cui hai configurato il trigger webhook.

  5. Puoi anche visualizzare la richiesta e la risposta al test di pubblicazione nella sezione Pubblicazioni recenti della pagina webhook di Secure Source Manager dopo aver inviato il primo test di pubblicazione.

Sostituisci le variabili YAML di Cloud Build con i dati del payload

Se utilizzi webhook per connetterti a Cloud Build, puoi sostituire le variabili YAML di Cloud Build con i dati del payload del webhook di Secure Source Manager.

  1. Nella pagina Webhook di Secure Source Manager, fai clic sulla prima riga della sezione Recapiti recenti.

    Vengono visualizzati l'intestazione e i contenuti Request inviati dal payload del webhook.

  2. Vai alla dashboard di Cloud Build, quindi fai clic su Trigger.

  3. Fai clic sul trigger che vuoi configurare.

  4. Nella sezione Avanzate, in Variabili di sostituzione, fai clic su + Aggiungi variabile.

  5. Inserisci il nome e il valore della variabile. Il prefisso del valore è body.

    Ad esempio, per sostituire _REPO_URL con il campo dati del payload repository.clone_url e _COMMIT_SHA con l'ultimo SHA del commit in Cloud Build YAML, inserisci i seguenti nomi e valori:

    • Variabile 1: _REPO_URL Valore 1: $(body.repository.clone_url)
    • Variabile 2: _COMMIT_SHA Valore 2: $(body.after)

    Il file YAML di Cloud Build è simile al seguente:

    steps:
    - name: gcr.io/cloud-builders/git
      env:
      - '_REPO_URL=$_REPO_URL'
      - '_COMMIT_SHA=$_COMMIT_SHA'
      script: |
        #!/bin/sh
        git clone ${_REPO_URL} /workspace
        cd /workspace
        git reset --hard ${_COMMIT_SHA}
    

Passaggi successivi