

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# GitHub eventi webhook
<a name="github-webhook"></a>

È possibile utilizzare i gruppi di filtri webhook per specificare quali eventi GitHub webhook attivano una build. Ad esempio, è possibile specificare che una build venga attivata solo per le modifiche a rami specifici. 

È possibile creare uno o più gruppi di filtri webhook per specificare quali eventi webhook attivano una build. Una build viene attivata se un gruppo di filtri restituisce true, il che si verifica quando tutti i filtri del gruppo restituiscono true. Quando si crea un gruppo di filtri, si specifica: 

**Un evento**  
Infatti GitHub, puoi scegliere uno o più dei seguenti eventi:`PUSH`,`PULL_REQUEST_CREATED`,`PULL_REQUEST_UPDATED`,`PULL_REQUEST_REOPENED`,`PULL_REQUEST_MERGED`, `PULL_REQUEST_CLOSED``RELEASED`,`PRERELEASED`, e`WORKFLOW_JOB_QUEUED`. Il tipo di evento webhook si trova nell'intestazione `X-GitHub-Event` nel payload del webhook. Nell'intestazione `X-GitHub-Event` puoi vedere `pull_request` o `push`. Per un evento di richiesta pull, il tipo si trova nel campo `action` del payload del webhook. La tabella seguente mostra il modo in cui i valori dell'intestazione `X-GitHub-Event` e i valori del campo `action` del payload della richiesta pull del webhook sono mappati ai tipi di eventi disponibili.      
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/codebuild/latest/userguide/github-webhook.html)
 Il tipo di `PULL_REQUEST_REOPENED` evento può essere utilizzato solo con GitHub Enterprise GitHub Server. Il tipo di `PRERELEASED` evento `RELEASED` and può essere utilizzato GitHub solo con. Per ulteriori informazioni su `WORKFLOW_JOB_QUEUED`, consulta [Tutorial: configura un GitHub Actions CodeBuild runner ospitato](action-runner.md). 

**Uno o più filtri opzionali**  
Usa un'espressione regolare per specificare un filtro. Affinché un evento attivi una build, ogni filtro all'interno del gruppo ad esso associato deve restituire true.    
`ACTOR_ACCOUNT_ID`(`ACTOR_ID`nella console)  
Un evento webhook attiva una build quando l'ID di un account GitHub o di GitHub Enterprise Server corrisponde al modello di espressione regolare. Questo valore si trova nella proprietà `id` dell'oggetto `sender` nel payload del webhook.  
`HEAD_REF`  
Un evento webhook attiva una build quando il riferimento alla testina corrisponde al modello di espressione regolare (ad esempio, o). `refs/heads/branch-name` `refs/tags/tag-name` Per un evento push, il nome di riferimento si trova nella proprietà `ref` nel payload del webhook. Per gli eventi di richieste pull, il nome del ramo si trova nella proprietà `ref` dell'oggetto `head` nel payload del webhook.   
`BASE_REF`  
Un evento webhook attiva una build quando il riferimento di base corrisponde al modello di espressione regolare (ad esempio,). `refs/heads/branch-name` Un filtro `BASE_REF` può essere utilizzato solo con gli eventi di richiesta pull. Il nome del ramo si trova nella proprietà `ref` dell'oggetto `base` nel payload del webhook.  
`FILE_PATH`  
Un webhook attiva una build quando il percorso di un file modificato corrisponde al modello delle espressioni regolari. È possibile utilizzare un `FILE_PATH` filtro con eventi di richiesta GitHub push e pull ed eventi push di GitHub Enterprise Server. Non può essere utilizzato con gli eventi di pull request di GitHub Enterprise Server.   
`COMMIT_MESSAGE`  
Un webhook attiva una build quando il messaggio head commit corrisponde al modello di espressione regolare. Un `COMMIT_MESSAGE` filtro può essere utilizzato con gli eventi di richiesta GitHub push e pull e gli eventi push di GitHub Enterprise Server. Non può essere utilizzato con gli eventi di pull request di GitHub Enterprise Server.  
`TAG_NAME`  
Un webhook attiva una build quando il nome del tag della release corrisponde al modello di espressione regolare. È possibile utilizzare un `TAG_NAME` filtro con eventi di richiesta GitHub rilasciati e non rilasciati in anteprima.  
`RELEASE_NAME`  
Un webhook attiva una build quando il nome della release corrisponde al modello di espressione regolare. È possibile utilizzare un `RELEASE_NAME` filtro con eventi di richiesta GitHub rilasciati e non rilasciati in anteprima.  
`REPOSITORY_NAME`  
Un webhook attiva una build quando il nome del repository corrisponde al modello di espressione regolare. Un `REPOSITORY_NAME` filtro può essere utilizzato solo con webhook GitHub globali o organizzativi.  
`ORGANIZATION_NAME`  
Un webhook attiva una build quando il nome dell'organizzazione corrisponde al modello di espressione regolare. Un `ORGANIZATION_NAME` filtro può essere utilizzato solo con webhook GitHub globali.  
`WORKFLOW_NAME`  
Un webhook attiva una build quando il nome del flusso di lavoro corrisponde al modello di espressione regolare. È possibile utilizzare un `WORKFLOW_NAME` filtro con gli eventi di richiesta di lavoro in coda del flusso di lavoro di GitHub Actions.

**Nota**  
Puoi trovare il payload del webhook nelle impostazioni del webhook del tuo repository. GitHub 

**Topics**
+ [

# Filtra gli eventi GitHub webhook (console)
](github-webhook-events-console.md)
+ [

# Filtra gli eventi GitHub webhook (SDK)
](github-webhook-events-sdk.md)
+ [

# Filtra gli eventi GitHub webhook ()CloudFormation
](github-webhook-events-cfn.md)

# Filtra gli eventi GitHub webhook (console)
<a name="github-webhook-events-console"></a>

Utilizza le seguenti istruzioni per filtrare gli eventi GitHub webhook utilizzando. Console di gestione AWS Per ulteriori informazioni sugli eventi GitHub webhook, vedere. [GitHub eventi webhook](github-webhook.md)

In **Primary source webhook events**, seleziona quanto segue. Questa sezione è disponibile solo se hai scelto **Repository nel mio GitHub account come repository** di origine.

1. Al momento della creazione di un progetto, selezionare **Rebuild every time a code change is pushed to this repository (Ricompila ogni volta che viene inviata una modifica del codice a questo repository)**. 

1. Da **Event type (Tipo di evento)**, selezionare uno o più eventi. 

1. Per applicare un filtro che stabilisce quando un evento avvia una compilazione, in **Start a build under these conditions (Avvia una compilazione in queste condizioni)** aggiungere uno o più filtri facoltativi. 

1. Per applicare un filtro che stabilisce quando un evento non avvia una compilazione, in **Don't start a build under these conditions (Non avviare una compilazione in queste condizioni)** aggiungere uno o più filtri facoltativi. 

1. Scegli **Aggiungi gruppo di filtri** per aggiungere un altro gruppo di filtri, se necessario. 

 Per ulteriori informazioni, consulta le pagine [Creare un progetto di compilazione (console)](create-project.md#create-project-console) e [WebhookFilter](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_WebhookFilter.html) nella *Documentazione di riferimento dell'API AWS CodeBuild *. 

In questo esempio, un gruppo di filtri webhook avvia una compilazione solo per le richieste pull:

![\[Un gruppo di filtri webhook che attiva una build solo per le richieste pull.\]](http://docs.aws.amazon.com/it_it/codebuild/latest/userguide/images/pull-request-webhook-filter.png)


In un esempio con due gruppi di filtri di webhook, una compilazione si attiva quando uno o entrambi risultano soddisfatti:
+ Il primo gruppo di filtri specifica le richieste pull create, aggiornate o riaperte su ramificazioni con nomi di riferimento Git che corrispondono all’espressione regolare `^refs/heads/main$` e riferimenti head che corrispondono a `^refs/heads/branch1$`. 
+ Il secondo gruppo di filtri specifica le richieste push su rami con nomi di riferimento Git che corrispondono all'espressione regolare `^refs/heads/branch1$`. 

![\[Un esempio di due gruppi di filtri.\]](http://docs.aws.amazon.com/it_it/codebuild/latest/userguide/images/pull-request-webhook-filter-head-base-regexes.png)


In questo esempio, un gruppo di filtri webhook avvia una compilazione per tutte le richieste pull, tranne gli eventi tag: 

![\[Un gruppo di filtri webhook che attiva una build per tutte le richieste tranne gli eventi di tag.\]](http://docs.aws.amazon.com/it_it/codebuild/latest/userguide/images/pull-request-webhook-filter-exclude.png)


In questo esempio, un gruppo di filtri di webhook attiva una compilazione solo in caso di modifica dei file con nomi che corrispondono all'espressione regolare `^buildspec.*`. 

![\[Un gruppo di filtri webhook che attiva una build solo quando vengono specificati file con nomi che corrispondono all'espressione regolare.\]](http://docs.aws.amazon.com/it_it/codebuild/latest/userguide/images/pull-request-webhook-filter-file-name-regex.png)


In questo esempio, un gruppo di filtri webhook attiva una build solo quando i file vengono modificati nelle cartelle o nelle cartelle. `src` `test`

![\[Un gruppo di filtri webhook che attiva una build solo quando i file vengono modificati in cartelle specificate.\]](http://docs.aws.amazon.com/it_it/codebuild/latest/userguide/images/pull-request-webhook-filter-file-name-combined-regex.png)


In questo esempio, un gruppo di filtri webhook attiva una build solo quando una modifica viene apportata da un utente specificato GitHub o da un utente di GitHub Enterprise Server con un ID account che corrisponde all'espressione regolare. `actor-account-id` 

**Nota**  
 Per informazioni su come trovare l'ID GitHub dell'account https://api.github.com/users/*user-name*, vedi *user-name* Dov'è il tuo nome GitHub utente. 

![\[Un gruppo di filtri webhook che attiva una build solo quando viene apportata una modifica da un GitHub utente specificato con un ID account che corrisponde all'espressione regolare.\]](http://docs.aws.amazon.com/it_it/codebuild/latest/userguide/images/pull-request-webhook-filter-actor.png)


In questo esempio, un gruppo di filtri di webhook attiva una compilazione per un evento push quando il messaggio di commit HEAD corrisponde all'espressione regolare `\[CodeBuild\]`. 

![\[Un gruppo di filtri webhook che attiva una generazione per un evento push quando il messaggio di head commit corrisponde all'espressione regolare.\]](http://docs.aws.amazon.com/it_it/codebuild/latest/userguide/images/pull-request-webhook-filter-commit-message.png)


In questo esempio, un gruppo di filtri webhook attiva solo una build for GitHub Actions Workflow Job Events.

**Nota**  
CodeBuild elaborerà i lavori del flusso di lavoro GitHub Actions solo se un webhook ha gruppi di filtri contenenti il filtro di eventi **WORKFLOW\$1JOB\$1QUEUED**.

![\[Un gruppo di filtri webhook attiva una build solo per gli eventi di lavoro del flusso di lavoro Actions. GitHub\]](http://docs.aws.amazon.com/it_it/codebuild/latest/userguide/images/github-actions-workflow-job-queued-no-highlight.png)


In questo esempio, un gruppo di filtri webhook attiva una build per un nome di workflow che corrisponde all'espressione regolare. `CI-CodeBuild` 

![\[Un gruppo di filtri webhook attiva una build per un nome di workflow che corrisponde all'espressione regolare.\]](http://docs.aws.amazon.com/it_it/codebuild/latest/userguide/images/github-actions-workflow-job-specific.png)


# Filtra gli eventi GitHub webhook (SDK)
<a name="github-webhook-events-sdk"></a>

Per utilizzare l' AWS CodeBuild SDK per filtrare gli eventi webhook, utilizza il `filterGroups` campo nella sintassi di richiesta dei metodi o API. `CreateWebhook` `UpdateWebhook` Per ulteriori informazioni, consulta [WebhookFilter](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_WebhookFilter.html) nella *documentazione di riferimento dell’API CodeBuild *. 

Per ulteriori informazioni sugli eventi GitHub webhook, consulta. [GitHub eventi webhook](github-webhook.md)

 Per creare un filtro di webhook che attivi una compilazione solo per le richieste pull, inserire nella sintassi di richiesta quanto segue: 

```
"filterGroups": [
   [
        {
            "type": "EVENT", 
            "pattern": "PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED, PULL_REQUEST_REOPENED, PULL_REQUEST_MERGED, PULL_REQUEST_CLOSED"
        }
    ]
]
```

 Per creare un filtro di webhook che attivi una compilazione solo per determinati rami, utilizzare il parametro `pattern` per specificare un'espressione regolare che filtri i nomi dei rami. In un esempio con due gruppi di filtri, una compilazione si attiva quando uno o entrambi risultano soddisfatti:
+ Il primo gruppo di filtri specifica le richieste pull create, aggiornate o riaperte su ramificazioni con nomi di riferimento Git che corrispondono all’espressione regolare `^refs/heads/main$` e riferimenti head che corrispondono a `^refs/heads/myBranch$`. 
+ Il secondo gruppo di filtri specifica le richieste push su rami con nomi di riferimento Git che corrispondono all'espressione regolare `^refs/heads/myBranch$`. 

```
"filterGroups": [
    [
        {
            "type": "EVENT", 
            "pattern": "PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED, PULL_REQUEST_REOPENED"
        },
        {
            "type": "HEAD_REF", 
            "pattern": "^refs/heads/myBranch$"
        },
        {
            "type": "BASE_REF", 
            "pattern": "^refs/heads/main$"
        }
    ],
    [
        {
            "type": "EVENT", 
            "pattern": "PUSH"
        },
        {
            "type": "HEAD_REF", 
            "pattern": "^refs/heads/myBranch$"
        }
    ]
]
```

 Il parametro `excludeMatchedPattern` consente di indicare quali eventi non attivano una compilazione. In questo esempio, viene attivata una compilazione per tutte le richieste, tranne gli eventi tag. 

```
"filterGroups": [
    [
        {
            "type": "EVENT", 
            "pattern": "PUSH, PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED, PULL_REQUEST_REOPENED, PULL_REQUEST_MERGED, PULL_REQUEST_CLOSED"
        },
        {
            "type": "HEAD_REF", 
            "pattern": "^refs/tags/.*", 
            "excludeMatchedPattern": true
        }
    ]
]
```

È possibile creare un filtro che attivi una compilazione solo in caso di modifica dei file con nomi che corrispondono all'espressione regolare nell'argomento `pattern`. In questo esempio, il gruppo di filtri indica che una compilazione si attiva solo in caso di modifica dei file con nomi che corrispondono all'espressione regolare `^buildspec.*`. 

```
"filterGroups": [
    [
        {
            "type": "EVENT", 
            "pattern": "PUSH"
        },
        {
            "type": "FILE_PATH", 
            "pattern": "^buildspec.*"
        }
    ]
]
```

In questo esempio, il gruppo di filtri specifica che una build viene attivata solo quando i file vengono modificati nelle cartelle o nelle `src` cartelle. `test`

```
"filterGroups": [
    [
        {
            "type": "EVENT", 
            "pattern": "PUSH"
        },
        {
            "type": "FILE_PATH", 
            "pattern": "^src/.+|^test/.+"
        }
    ]
]
```

È possibile creare un filtro che attiva una compilazione solo quando una modifica viene apportata da un utente specificato GitHub o da un utente di GitHub Enterprise Server con ID account. `actor-account-id` 

**Nota**  
 Per informazioni su come trovare l'ID GitHub dell'account https://api.github.com/users/*user-name*, vedi *user-name* Dov'è il tuo nome GitHub utente. 

```
"filterGroups": [
    [
        {
            "type": "EVENT", 
            "pattern": "PUSH, PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED, PULL_REQUEST_REOPENED, PULL_REQUEST_MERGED, PULL_REQUEST_CLOSED"
        },
        {
            "type": "ACTOR_ACCOUNT_ID", 
            "pattern": "actor-account-id"
        }
    ]
]
```

È possibile creare un filtro che attiva una compilazione solo quando il messaggio di commit HEAD corrisponde all'espressione regolare nell'argomento del modello. In questo esempio, il gruppo di filtri specifica che viene attivata una compilazione solo quando il messaggio di commit HEAD dell'evento push corrisponde all'espressione regolare `\[CodeBuild\]`. 

```
"filterGroups": [
    [
        {
            "type": "EVENT",
            "pattern": "PUSH"
        },
        {
            "type": "COMMIT_MESSAGE",
            "pattern": "\[CodeBuild\]"
        }
    ]
]
```

Per creare un filtro webhook che attivi solo i job del flusso di lavoro Build for GitHub Actions, inserisci quanto segue nella sintassi della richiesta:

```
"filterGroups": [
   [
        {
            "type": "EVENT", 
            "pattern": "WORKFLOW_JOB_QUEUED"
        }
    ]
]
```

# Filtra gli eventi GitHub webhook ()CloudFormation
<a name="github-webhook-events-cfn"></a>

 Per utilizzare un CloudFormation modello per filtrare gli eventi del webhook, utilizzate la proprietà del AWS CodeBuild `FilterGroups` progetto.

Per ulteriori informazioni sugli eventi GitHub webhook, vedere. [GitHub eventi webhook](github-webhook.md)

La parte di un modello CloudFormation in formato YAML riportata di seguito crea due gruppi di filtri. Insieme, questi attivano una compilazione quando uno o entrambi risultano soddisfatti: 
+  Il primo gruppo di filtri specifica che le richieste pull vengono create o aggiornate sui rami con nomi di riferimento Git che corrispondono all'espressione regolare `^refs/heads/main$` da un GitHub utente che non dispone di un ID `12345` account. 
+  Il secondo gruppo di filtri specifica le richieste push create su file con nomi che corrispondono all'espressione regolare `READ_ME` in rami con nomi di riferimento Git che corrispondono all'espressione regolare `^refs/heads/.*`. 
+ Il terzo gruppo di filtri specifica una richiesta push con un messaggio di commit HEAD corrispondente all'espressione regolare `\[CodeBuild\]`.
+ Il quarto gruppo di filtri specifica una richiesta di lavoro del flusso di lavoro GitHub Actions con un nome di flusso di lavoro corrispondente all'espressione regolare. `\[CI-CodeBuild\]`

```
CodeBuildProject:
  Type: AWS::CodeBuild::Project
  Properties:
    Name: MyProject
    ServiceRole: service-role
    Artifacts:
      Type: NO_ARTIFACTS
    Environment:
      Type: LINUX_CONTAINER
      ComputeType: BUILD_GENERAL1_SMALL
      Image: aws/codebuild/standard:5.0
    Source:
      Type: GITHUB
      Location: source-location
    Triggers:
      Webhook: true
      FilterGroups:
        - - Type: EVENT
            Pattern: PULL_REQUEST_CREATED,PULL_REQUEST_UPDATED
          - Type: BASE_REF
            Pattern: ^refs/heads/main$
            ExcludeMatchedPattern: false
          - Type: ACTOR_ACCOUNT_ID
            Pattern: 12345
            ExcludeMatchedPattern: true
        - - Type: EVENT
            Pattern: PUSH
          - Type: HEAD_REF
            Pattern: ^refs/heads/.*
          - Type: FILE_PATH
            Pattern: READ_ME
            ExcludeMatchedPattern: true
        - - Type: EVENT
            Pattern: PUSH
          - Type: COMMIT_MESSAGE
            Pattern: \[CodeBuild\]
          - Type: FILE_PATH
            Pattern: ^src/.+|^test/.+
        - - Type: EVENT
            Pattern: WORKFLOW_JOB_QUEUED
          - Type: WORKFLOW_NAME
            Pattern: \[CI-CodeBuild\]
```