

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Ajouter un déclencheur avec des types d'événements de type code push ou pull request
<a name="pipelines-filter"></a>

Vous pouvez configurer des filtres pour les déclencheurs de pipeline afin de lancer l'exécution du pipeline pour différents événements Git, tels que le push de balises ou de branches, la modification de chemins de fichiers spécifiques, l'ouverture d'une pull request dans une branche spécifique, etc. Vous pouvez utiliser la AWS CodePipeline console ou les **update-pipeline** commandes **create-pipeline** et du AWS CLI pour configurer les filtres de déclenchement.

**Note**  
Le `BranchName` champ de configuration des actions définit une branche unique, tandis que les déclencheurs avec filtres peuvent être utilisés pour toutes les branches que vous spécifiez. Pour un pipeline dans lequel des déclencheurs sont utilisés pour filtrer les branches par requête push ou pull, le pipeline n'utilisera pas la branche de `BranchName` champ par défaut dans la configuration de l'action. Cependant, la branche du `BranchName` champ dans la configuration de l'action est la branche par défaut lorsque le pipeline est démarré manuellement. Pour obtenir un exemple, consultez [5 : Déclencheur configuré alors que la configuration d'action par défaut BranchName est utilisée pour un démarrage manuel](pipelines-triggers.md#example-filter-default-manual).

Vous pouvez définir des filtres pour les types de déclencheurs suivants : 
+ **Push**

  Un déclencheur push démarre un pipeline lorsqu'une modification est transmise à votre référentiel source. L'exécution utilisera le commit de la branche *vers* laquelle vous pointez (c'est-à-dire la branche de destination). Vous pouvez filtrer les déclencheurs push sur les branches, les chemins de fichiers ou les balises Git.
+ **Pull request**

  Un déclencheur de pull request démarre un pipeline lorsqu'une pull request est ouverte, mise à jour ou fermée dans votre référentiel source. L'exécution utilisera le commit de la branche source que vous *extrayez* (c'est-à-dire la branche source). Vous pouvez filtrer les déclencheurs de pull request sur les branches et les chemins de fichiers.

  Les types d'événements pris en charge pour les pull requests sont les suivants. Tous les autres événements de pull request sont ignorés.
  + Ouvert
  + Mis à jour
  + Fermé (fusionné)
**Note**  
Le comportement de certains événements de pull request peut varier d'un fournisseur à l'autre. Pour en savoir plus, consultez [Événements de pull request pour les déclencheurs par fournisseur](pipelines-triggers.md#pipelines-filter-pullrequest-events).

La définition du pipeline vous permet de combiner différents filtres au sein d'une même configuration de déclencheur push. Pour plus de détails sur la définition du pipeline, voir[Ajouter des filtres pour les types d'événements de type push et pull request (CLI)](#pipelines-filter-cli). Pour obtenir la liste des définitions de champs, voir les [déclencheurs](pipeline-requirements.md#pipeline.triggers) dans la *référence sur la structure du pipeline* de ce guide.

**Topics**
+ [Ajouter des filtres pour les types d'événements de type push et pull request (console)](#pipelines-filter-console)
+ [Ajouter des filtres pour les types d'événements de type push et pull request (CLI)](#pipelines-filter-cli)
+ [Ajouter des filtres pour les types d'événements de type push et pull request (CloudFormation modèles)](#pipelines-filter-cfn)

## Ajouter des filtres pour les types d'événements de type push et pull request (console)
<a name="pipelines-filter-console"></a>

Vous pouvez utiliser la console pour ajouter des filtres pour les événements push et inclure ou exclure des branches ou des chemins de fichiers.

**Ajouter des filtres (console)**

1. Connectez-vous à la CodePipeline console AWS Management Console et ouvrez-la à l'[adresse http://console.aws.amazon. com/codesuite/codepipeline/home](https://console.aws.amazon.com/codesuite/codepipeline/home).

   Les noms et le statut de tous les pipelines associés à votre AWS compte sont affichés. 

1. Dans **Name**, choisissez le nom du pipeline que vous souhaitez modifier. Sinon, suivez ces étapes dans l'assistant de création de pipeline.

1. Sur la page des détails du pipeline, choisissez **Edit**. 

1. Sur la page **Modifier**, choisissez l'action source que vous souhaitez modifier. Choisissez **Modifier les déclencheurs**. Choisissez **Spécifier le filtre**.

1. Dans **Type d'événement**, choisissez **Push** parmi les options suivantes.
   + Choisissez **Push** pour démarrer le pipeline lorsqu'une modification est transmise à votre référentiel source. Cette option permet aux champs de spécifier des filtres pour les branches, les chemins de fichiers ou les balises Git.
   + Choisissez **Pull request** pour démarrer le pipeline lorsqu'une pull request est ouverte, mise à jour ou fermée dans votre référentiel source. Cette option permet aux champs de spécifier des filtres pour les branches de destination et les chemins de fichiers.

1. Sous **Push**, dans **Type de filtre**, choisissez l'une des options suivantes.
   + Choisissez **Branch** pour spécifier les branches de votre référentiel source que le déclencheur surveille afin de savoir quand démarrer une exécution de flux de travail. Dans **Inclure**, entrez les modèles de noms de branches au format global que vous souhaitez spécifier pour la configuration du déclencheur afin de démarrer votre pipeline en cas de modification des branches spécifiées. Dans **Exclure**, entrez les modèles d'expression régulière pour les noms de branches au format global que vous souhaitez spécifier pour que la configuration du déclencheur soit ignorée et pour ne pas démarrer votre pipeline lorsque des modifications sont apportées aux branches spécifiées. Pour plus d’informations, consultez [Utilisation de modèles globulaires dans la syntaxe](syntax-glob.md).
**Note**  
Si l'inclusion et l'exclusion ont toutes deux le même modèle, le modèle par défaut est d'exclure le modèle.

     Vous pouvez utiliser des modèles globaux pour définir les noms de vos succursales. Par exemple, utilisez `main*` pour faire correspondre toutes les branches commençant par`main`. Pour plus d’informations, consultez [Utilisation de modèles globulaires dans la syntaxe](syntax-glob.md).

     Pour un déclencheur, spécifiez les branches *vers* lesquelles vous poussez, c'est-à-dire les branches de *destination*. Pour un déclencheur de pull request, spécifiez les branches de destination auxquelles vous ouvrez une pull request.
   + (Facultatif) Sous **Chemins de fichier**, spécifiez les chemins de fichier pour votre déclencheur. Entrez les noms dans **Inclure** et **Exclure**, le cas échéant.

     Vous pouvez utiliser des modèles globaux pour définir les noms de chemin de vos fichiers. Par exemple, `prod*` à utiliser pour faire correspondre tous les chemins de fichiers commençant par`prod`. Pour plus d’informations, consultez [Utilisation de modèles globulaires dans la syntaxe](syntax-glob.md).
   + Choisissez **Tags** pour configurer la configuration du déclencheur du pipeline afin de commencer par les balises Git. Dans **Inclure**, entrez les modèles de noms de balises au format global que vous souhaitez spécifier pour la configuration du déclencheur afin de démarrer votre pipeline lors de la publication de la ou des balises spécifiées. Dans **Exclure**, entrez les modèles d'expression régulière pour les noms de balises au format global que vous souhaitez spécifier pour que la configuration du déclencheur soit ignorée et pour ne pas démarrer votre pipeline lors de la publication de la ou des balises spécifiées. Si l'inclusion et l'exclusion ont le même modèle de balise, le modèle de balise par défaut est d'exclure le modèle de balise.

1. Sous **Push**, dans **Type de filtre**, choisissez l'une des options suivantes.
   + Choisissez **Branch** pour spécifier les branches de votre référentiel source que le déclencheur surveille afin de savoir quand démarrer une exécution de flux de travail. Dans **Inclure**, entrez les modèles de noms de branches au format global que vous souhaitez spécifier pour la configuration du déclencheur afin de démarrer votre pipeline en cas de modification des branches spécifiées. Dans **Exclure**, entrez les modèles d'expression régulière pour les noms de branches au format global que vous souhaitez spécifier pour que la configuration du déclencheur soit ignorée et pour ne pas démarrer votre pipeline lorsque des modifications sont apportées aux branches spécifiées. Pour plus d’informations, consultez [Utilisation de modèles globulaires dans la syntaxe](syntax-glob.md).
**Note**  
Si l'inclusion et l'exclusion ont toutes deux le même modèle, le modèle par défaut est d'exclure le modèle.

     Vous pouvez utiliser des modèles globaux pour définir les noms de vos succursales. Par exemple, utilisez `main*` pour faire correspondre toutes les branches commençant par`main`. Pour plus d’informations, consultez [Utilisation de modèles globulaires dans la syntaxe](syntax-glob.md).

     Pour un déclencheur, spécifiez les branches *vers* lesquelles vous poussez, c'est-à-dire les branches de *destination*. Pour un déclencheur de pull request, spécifiez les branches de destination auxquelles vous ouvrez une pull request.
   + (Facultatif) Sous **Chemins de fichier**, spécifiez les chemins de fichier pour votre déclencheur. Entrez les noms dans **Inclure** et **Exclure**, le cas échéant.

     Vous pouvez utiliser des modèles globaux pour définir les noms de chemin de vos fichiers. Par exemple, `prod*` à utiliser pour faire correspondre tous les chemins de fichiers commençant par`prod`. Pour plus d’informations, consultez [Utilisation de modèles globulaires dans la syntaxe](syntax-glob.md).
   + Choisissez **Pull request** pour configurer la configuration du déclencheur du pipeline afin de commencer par les événements de pull request que vous spécifiez.

## Ajouter des filtres pour les types d'événements de type push et pull request (CLI)
<a name="pipelines-filter-cli"></a>

Vous pouvez mettre à jour le JSON du pipeline pour ajouter des filtres pour les déclencheurs.

Pour créer ou mettre AWS CLI à jour votre pipeline, utilisez la `update-pipeline` commande `create-pipeline` or.

L'exemple de structure JSON suivant fournit une référence pour les définitions de champs ci-dessous`create-pipeline`.

Pour obtenir la liste des définitions de champs, voir les [déclencheurs](pipeline-requirements.md#pipeline.triggers) dans la *référence sur la structure du pipeline* de ce guide.

```
{
    "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"
                        }
                    }
                ]
            }
        ]
    }
}
```

## Ajouter des filtres pour les types d'événements de type push et pull request (CloudFormation modèles)
<a name="pipelines-filter-cfn"></a>

Vous pouvez mettre à jour la ressource du pipeline CloudFormation pour ajouter un filtrage par déclencheur.

L'exemple d'extrait de modèle suivant fournit une référence YAML pour les définitions de champs de déclencheurs. Pour obtenir la liste des définitions de champs, voir les [déclencheurs](pipeline-requirements.md#pipeline.triggers) dans la *référence sur la structure du pipeline* de ce guide.

Pour un exemple de modèle complet de configuration d'une source de connexion et d'un filtre de déclenchement, voir [Pipeline en deux étapes et configuration du déclencheur](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) dans le *guide de CloudFormation l'utilisateur*.

```
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
```