

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à.

# Aggiungi trigger con tipi di eventi code push o pull request
<a name="pipelines-filter"></a>

Puoi configurare i filtri per i trigger della pipeline per avviare le esecuzioni della pipeline per diversi eventi Git, come tag o branch push, modifiche a percorsi di file specifici, una richiesta pull aperta in un ramo specifico e così via. Puoi usare la AWS CodePipeline console o i **update-pipeline** comandi **create-pipeline** and in AWS CLI per configurare i filtri di attivazione.

**Nota**  
Il `BranchName` campo di configurazione dell'azione definisce un singolo ramo, mentre i trigger con filtri possono essere utilizzati per qualsiasi ramo o ramo specificato. Per una pipeline in cui i trigger vengono utilizzati per filtrare i rami tramite richieste push o pull, la pipeline non utilizzerà il ramo di `BranchName` campo predefinito nella configurazione dell'azione. Tuttavia, il ramo nel `BranchName` campo nella configurazione dell'azione è l'impostazione predefinita quando la pipeline viene avviata manualmente. Per vedere un esempio, consulta [5: Trigger configurato mentre la configurazione di azione predefinita BranchName viene utilizzata per l'avvio manuale](pipelines-triggers.md#example-filter-default-manual).

È possibile specificare filtri per i seguenti tipi di trigger: 
+ **Push**

  Un push trigger avvia una pipeline quando una modifica viene inviata al repository di origine. L'esecuzione utilizzerà il commit dal ramo verso cui stai inviando il push (ovvero *il* ramo di destinazione). Puoi filtrare i trigger push su rami, percorsi di file o tag Git.
+ **Richiesta pull**

  Un trigger di pull request avvia una pipeline quando una pull request viene aperta, aggiornata o chiusa nel repository di origine. L'esecuzione utilizzerà il commit dal ramo di origine *da* cui stai estraendo (ovvero il ramo di origine). Puoi filtrare i trigger delle pull request sui rami e sui percorsi dei file.

  I tipi di eventi supportati per le richieste pull sono i seguenti. Tutti gli altri eventi di pull request vengono ignorati.
  + Opened (Aperto)
  + Aggiornato
  + Chiuso (unito)
**Nota**  
Il comportamento di alcuni eventi di pull request può variare in base al provider. Per informazioni dettagliate, vedi [Eventi di pull request per i trigger per provider](pipelines-triggers.md#pipelines-filter-pullrequest-events).

La definizione della pipeline consente di combinare diversi filtri all'interno della stessa configurazione push trigger. Per informazioni dettagliate sulla definizione della pipeline, vedere. [Aggiungi filtri per i tipi di eventi di richiesta push e pull (CLI)](#pipelines-filter-cli) Per un elenco delle definizioni dei campi, consulta i [trigger](pipeline-requirements.md#pipeline.triggers) nel *riferimento alla struttura della pipeline in questa guida*.

**Topics**
+ [Aggiungi filtri per i tipi di eventi di richiesta push e pull (console)](#pipelines-filter-console)
+ [Aggiungi filtri per i tipi di eventi di richiesta push e pull (CLI)](#pipelines-filter-cli)
+ [Aggiungi filtri per i tipi di eventi di richiesta push e pull (modelli)CloudFormation](#pipelines-filter-cfn)

## Aggiungi filtri per i tipi di eventi di richiesta push e pull (console)
<a name="pipelines-filter-console"></a>

Puoi utilizzare la console per aggiungere filtri per gli eventi push e includere o escludere rami o percorsi di file.

**Aggiungi filtri (console)**

1. Accedi Console di gestione AWS e apri la CodePipeline console all'[indirizzo http://console.aws.amazon. com/codesuite/codepipeline/home](https://console.aws.amazon.com/codesuite/codepipeline/home).

   Vengono visualizzati i nomi e lo stato di tutte le pipeline associate al tuo AWS account. 

1. In **Name (Nome)**, scegliere il nome della pipeline da modificare. Altrimenti, utilizzate questi passaggi nella procedura guidata di creazione della pipeline.

1. Nella pagina dei dettagli della pipeline, scegliere **Edit (Modifica)**. 

1. Nella pagina **Modifica**, scegliete l'azione sorgente che desiderate modificare. Scegli **Modifica trigger**. Scegli **Specificare filtro**.

1. In **Tipo di evento**, scegli **Push** tra le seguenti opzioni.
   + Scegli **Push** per avviare la pipeline quando una modifica viene inviata al tuo repository di origine. Questa opzione consente ai campi di specificare filtri per rami e percorsi di file o tag Git.
   + Scegli **Pull request** per avviare la pipeline quando una pull request viene aperta, aggiornata o chiusa nel tuo repository di origine. Questa opzione consente ai campi di specificare filtri per i rami di destinazione e i percorsi dei file.

1. In **Push**, in **Tipo di filtro**, scegli una delle seguenti opzioni.
   + Scegliete **Branch** per specificare i rami del repository di origine monitorati dal trigger per sapere quando avviare l'esecuzione di un flusso di lavoro. In **Include**, inserite gli schemi per i nomi dei rami in formato glob che desiderate specificare per la configurazione del trigger per avviare la pipeline in base alle modifiche nei rami specificati. In **Exclude**, inserite i modelli regex per i nomi dei rami in formato glob che desiderate specificare affinché la configurazione del trigger ignori e non avvii la pipeline in base alle modifiche nei rami specificati. Per ulteriori informazioni, consulta [Lavorare con i modelli a globo nella sintassi](syntax-glob.md).
**Nota**  
Se l'inclusione e l'esclusione hanno entrambe lo stesso schema, l'impostazione predefinita prevede l'esclusione del pattern.

     Puoi usare i modelli glob per definire i nomi dei tuoi rami. Ad esempio, usa per `main*` abbinare tutti i rami che iniziano con`main`. Per ulteriori informazioni, consulta [Lavorare con i modelli a globo nella sintassi](syntax-glob.md).

     Per attivare un pulsante, specifica i rami verso cui stai effettuando *il* push, ovvero i rami di *destinazione*. Per attivare una pull request, specifica i rami di destinazione verso cui stai aprendo la pull request.
   + (Facoltativo) In **Percorsi dei file**, specifica i percorsi dei file per il trigger. Immettete i nomi nelle caselle **Includi** ed **Escludi**, a seconda dei casi.

     È possibile utilizzare i modelli glob per definire i nomi dei percorsi dei file. Ad esempio, utilizzare per `prod*` abbinare tutti i percorsi dei file che iniziano con`prod`. Per ulteriori informazioni, consulta [Lavorare con i modelli a globo nella sintassi](syntax-glob.md).
   + Scegli **Tag** per configurare la configurazione del trigger della pipeline per iniziare con i tag Git. In **Includi**, inserisci i modelli per i nomi dei tag in formato glob che desideri specificare per la configurazione del trigger per avviare la pipeline al rilascio del tag o dei tag specificati. In **Exclude**, inserite i pattern regex per i nomi dei tag in formato glob che desiderate specificare affinché la configurazione del trigger ignori e non avvii la pipeline al rilascio del tag o dei tag specificati. Se include ed esclude hanno entrambi lo stesso schema di tag, l'impostazione predefinita prevede l'esclusione del modello di tag.

1. In **Push**, in **Tipo di filtro**, scegli una delle seguenti opzioni.
   + Scegliete **Branch** per specificare i rami del repository di origine monitorati dal trigger per sapere quando avviare l'esecuzione di un flusso di lavoro. In **Include**, inserite gli schemi per i nomi dei rami in formato glob che desiderate specificare per la configurazione del trigger per avviare la pipeline in base alle modifiche nei rami specificati. In **Exclude**, inserite i modelli regex per i nomi dei rami in formato glob che desiderate specificare affinché la configurazione del trigger ignori e non avvii la pipeline in base alle modifiche nei rami specificati. Per ulteriori informazioni, consulta [Lavorare con i modelli a globo nella sintassi](syntax-glob.md).
**Nota**  
Se l'inclusione e l'esclusione hanno entrambe lo stesso schema, l'impostazione predefinita prevede l'esclusione del pattern.

     Puoi usare i modelli glob per definire i nomi dei tuoi rami. Ad esempio, usa per `main*` abbinare tutti i rami che iniziano con`main`. Per ulteriori informazioni, consulta [Lavorare con i modelli a globo nella sintassi](syntax-glob.md).

     Per attivare un pulsante, specifica i rami verso cui stai effettuando *il* push, ovvero i rami di *destinazione*. Per attivare una pull request, specifica i rami di destinazione verso cui stai aprendo la pull request.
   + (Facoltativo) In **Percorsi dei file**, specifica i percorsi dei file per il trigger. Immettete i nomi nelle caselle **Includi** ed **Escludi**, a seconda dei casi.

     È possibile utilizzare i modelli glob per definire i nomi dei percorsi dei file. Ad esempio, utilizzare per `prod*` abbinare tutti i percorsi dei file che iniziano con`prod`. Per ulteriori informazioni, consulta [Lavorare con i modelli a globo nella sintassi](syntax-glob.md).
   + Scegliete **Pull request** per configurare la configurazione del trigger della pipeline per iniziare con gli eventi di pull request specificati.

## Aggiungi filtri per i tipi di eventi di richiesta push e pull (CLI)
<a name="pipelines-filter-cli"></a>

Puoi aggiornare la pipeline JSON per aggiungere filtri per i trigger.

Per utilizzare il AWS CLI per creare o aggiornare la pipeline, usa il comando o. `create-pipeline` `update-pipeline`

La seguente struttura JSON di esempio fornisce un riferimento per le definizioni di campo riportate di seguito. `create-pipeline`

Per un elenco delle definizioni dei campi, consulta i [trigger](pipeline-requirements.md#pipeline.triggers) nel *riferimento alla struttura Pipeline in questa guida*.

```
{
    "pipeline": {
        "name": "MyServicePipeline",
        "triggers": [
            {
                "provider": "Connection",
                "gitConfiguration": {
                    "sourceActionName": "ApplicationSource",
                    "push": [
                        {
                            "filePaths": {
                                "includes": [
                                    "projectA/**",
                                    "common/**/*.js"
                                ],
                                "excludes": [
                                    "**/README.md",
                                    "**/LICENSE",
                                    "**/CONTRIBUTING.md"
                                ]
                            },
                            "branches": {
                                "includes": [
                                    "feature/**",
                                    "release/**"
                                ],
                                "excludes": [
                                    "mainline"
                                ]
                            },
                            "tags": {
                                "includes": [
                                    "release-v0", "release-v1"
                                ],
                                "excludes": [
                                    "release-v2"
                                ]
                            }
                        }
                    ],
                    "pullRequest": [
                        {
                            "events": [
                                "CLOSED"
                            ],
                            "branches": {
                                "includes": [
                                    "feature/**",
                                    "release/**"
                                ],
                                "excludes": [
                                    "mainline"
                                ]
                            },
                            "filePaths": {
                                "includes": [
                                    "projectA/**",
                                    "common/**/*.js"
                                ],
                                "excludes": [
                                    "**/README.md",
                                    "**/LICENSE",
                                    "**/CONTRIBUTING.md"
                                ]
                            }
                        }
                    ]
                }
            }
        ],
        "stages": [
            {
                "name": "Source",
                "actions": [
                    {
                        "name": "ApplicationSource",
                        "configuration": {
                            "BranchName": "mainline",
                            "ConnectionArn": "arn:aws:codestar-connections:eu-central-1:111122223333:connection/fe9ff2e8-ee25-40c9-829e-65f8EXAMPLE",
                            "FullRepositoryId": "monorepo-example",
                            "OutputArtifactFormat": "CODE_ZIP"
                        }
                    }
                ]
            }
        ]
    }
}
```

## Aggiungi filtri per i tipi di eventi di richiesta push e pull (modelli)CloudFormation
<a name="pipelines-filter-cfn"></a>

Puoi aggiornare la risorsa della pipeline in CloudFormation per aggiungere il filtro dei trigger.

Il seguente frammento di modello di esempio fornisce un riferimento YAML per le definizioni dei campi dei trigger. Per un elenco delle definizioni dei campi, consulta i [trigger](pipeline-requirements.md#pipeline.triggers) nel riferimento alla struttura *Pipeline* in questa guida.

*Per un esempio completo di modello per la configurazione della sorgente di connessione e del filtro di attivazione, consulta [Pipeline con due fasi e configurazione dei trigger](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-pipeline.html#aws-resource-codepipeline-pipeline--examples--Pipeline_with_two_stages_and_trigger_configuration) nella Guida per l' CloudFormation utente.*

```
pipeline:
  name: MyServicePipeline
  executionMode: PARALLEL
  triggers:
    - provider: CodeConnection
      gitConfiguration:
        sourceActionName: ApplicationSource
        push:
          - filePaths:
              includes:
                - projectA/**
                - common/**/*.js
              excludes:
                - '**/README.md'
                - '**/LICENSE'
                - '**/CONTRIBUTING.md'
            branches:
              includes:
                - feature/**
                - release/**
              excludes:
                - mainline
          - tags:
              includes:
                - release-v0
                - release-v1
              excludes:
                - release-v2
        pullRequest:
          - events:
              - CLOSED
            branches:
              includes:
                - feature/**
                - release/**
              excludes:
                - mainline
            filePaths:
              includes:
                - projectA/**
                - common/**/*.js
              excludes:
                - '**/README.md'
                - '**/LICENSE'
                - '**/CONTRIBUTING.md'
  stages:
    - name: Source
      actions:
        - name: ApplicationSource
          configuration:
            BranchName: mainline
            ConnectionArn: arn:aws:codestar-connections:eu-central-1:111122223333:connection/fe9ff2e8-ee25-40c9-829e-65f85EXAMPLE
            FullRepositoryId: monorepo-example
            OutputArtifactFormat: CODE_ZIP
```