

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.

# Événements du webhook Bitbucket
<a name="bitbucket-webhook"></a>

Vous pouvez utiliser des groupes de filtres webhook pour spécifier quels événements webhook Bitbucket déclenchent une génération. Par exemple, vous pouvez spécifier qu'une construction n'est déclenchée que pour les modifications apportées à des branches spécifiques. 

Vous pouvez créer un ou plusieurs des groupes de filtres webhook pour spécifier les événements webhook qui déclenchent une génération. Une génération est déclenchée si un groupe de filtres est évalué comme vrai, ce qui se produit lorsque tous les filtres du groupe sont évalués comme vrais. Lorsque vous créez un groupe de filtres, vous spécifiez : 

**Un événement**  
Pour Bitbucket, vous pouvez choisir un ou plusieurs des événements suivants :  
+ `PUSH`
+ `PULL_REQUEST_CREATED`
+ `PULL_REQUEST_UPDATED`
+ `PULL_REQUEST_MERGED`
+ `PULL_REQUEST_CLOSED`
Le type d’événement du webhook est situé dans son en-tête dans le champ `X-Event-Key`. Le tableau suivant présente le mappage des valeurs d’en-tête `X-Event-Key` aux types d’événements.  
Vous devez activer l'événement `merged` dans le paramètre de votre webhook Bitbucket si vous créez un groupe de filtres de webhook qui utilise le type d’événement `PULL_REQUEST_MERGED`. Vous devez également activer l'`declined`événement dans vos paramètres de webhook Bitbucket si vous créez un groupe de filtres de webhook utilisant le `PULL_REQUEST_CLOSED` type d'événement.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/codebuild/latest/userguide/bitbucket-webhook.html)
En `PULL_REQUEST_MERGED` effet, si une pull request est fusionnée avec la stratégie squash et que la branche pull request est fermée, le commit de la pull request d'origine n'existe plus. Dans ce cas, la variable d'`CODEBUILD_WEBHOOK_MERGE_COMMIT`environnement contient l'identifiant du commit de fusion écrasé.

**Un ou plusieurs filtres optionnels**  
Utilisez une expression régulière pour spécifier un filtre. Pour qu'un événement déclenche une génération, chaque filtre du groupe qui lui est associé doit avoir la valeur true.    
`ACTOR_ACCOUNT_ID`(`ACTOR_ID`dans la console)  
Un événement webhook déclenche une compilation lorsqu'un identifiant de compte Bitbucket correspond au modèle d'expression régulière. Cette valeur est disponible dans la propriété `account_id` de l'objet `actor` dans la charge utile de filtre du webhook.  
`HEAD_REF`  
Un événement webhook déclenche une construction lorsque la référence principale correspond au modèle d'expression régulière (par exemple, `refs/heads/branch-name` et`refs/tags/tag-name`). Un filtre `HEAD_REF` évalue le nom de la référence Git de la branche ou de la balise. Le nom de la branche ou de la balise est situé dans le champ `name` de l’objet `new` dans l’objet `push` de la charge utile du webhook. Pour des événements de demande d’extraction, le nom de la branche est situé dans le champ `name` de l'objet `branch` de l'objet `source` dans la charge utile du webhook.  
`BASE_REF`  
Un événement webhook déclenche une construction lorsque la référence de base correspond au modèle d'expression régulière. Un filtre `BASE_REF` fonctionne avec des événements de demande d'extraction uniquement (par exemple, `refs/heads/branch-name`). Un filtre `BASE_REF` évalue le nom de la référence Git de la branche. Le nom de la branche est situé dans le champ `name` de l'objet `branch` dans l'objet `destination` de la charge utile du webhook.  
`FILE_PATH`  
Un webhook déclenche une compilation lorsque le chemin d'un fichier modifié correspond au modèle d'expression régulière.  
`COMMIT_MESSAGE`  
Un webhook déclenche une compilation lorsque le message de validation principal correspond au modèle d'expression régulière.  
`WORKFLOW_NAME`  
Un webhook déclenche une compilation lorsque le nom du flux de travail correspond au modèle d'expression régulière.

**Note**  
Vous pouvez trouver la charge utile du webhook dans les paramètres webhook de votre référentiel Bitbucket. 

**Topics**
+ [Filtrage des événements webhook BitBucket (console)](bitbucket-webhook-events-console.md)
+ [Filtrage des événements webhook BitBucket (kit SDK)](bitbucket-webhook-events-sdk.md)
+ [Filtrage des événements webhook Bitbucket (CloudFormation)](bitbucket-webhook-events-cfn.md)

# Filtrage des événements webhook BitBucket (console)
<a name="bitbucket-webhook-events-console"></a>

 Pour utiliser le AWS Management Console pour filtrer les événements du webhook : 

1.  Sélectionnez **Rebuild every time a code change is pushed to this repository (Reconstruire à chaque fois qu'une modification de code est transférée dans ce référentiel)** lorsque vous créez votre projet. 

1.  Dans **Event type (Type d'événement)**, choisissez un ou plusieurs événements. 

1.  Pour filtrer le moment où un événement déclenche une génération, sous **Start a build under these conditions (Lancer une génération dans ces conditions)**, ajoutez un ou plusieurs filtres facultatifs. 

1.  Pour filtrer le moment où un événement n'est pas déclenché, sous **Don't start a build under these conditions (Ne pas lancer de génération dans ces conditions)**, ajoutez un ou plusieurs filtres facultatifs. 

1.  Choisissez **Add filter group (Ajouter un groupe de filtres)** pour ajouter un autre groupe de filtres. 

 Pour plus d'informations, veuillez consulter les sections [Création d'un projet de génération (console)](create-project.md#create-project-console) et [WebhookFilter](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_WebhookFilter.html) (français non garanti) de la *Référence d'API AWS CodeBuild *. 

Dans cet exemple, un groupe de filtres webhook déclenche une génération pour des demandes d'extraction uniquement :

![\[Un groupe de filtres Webhook qui déclenche une compilation pour les pull requests uniquement.\]](http://docs.aws.amazon.com/fr_fr/codebuild/latest/userguide/images/pull-request-webhook-filter-bitbucket.png)


Dans cet exemple de deux groupes de filtres, une génération est déclenchée lorsqu'un des deux prend la valeur true :
+ Le premier groupe de filtres spécifie des demandes d'extraction créées ou mises à jour sur des branches avec des noms de référence Git correspondant à l'expression régulière `^refs/heads/main$` et des références principales correspondant à `^refs/heads/branch1!`. 
+ Le deuxième groupe de filtres spécifie des demandes de transmission sur des branches avec des noms de référence Git qui correspondent à l'expression régulière `^refs/heads/branch1$`. 

![\[Exemple de deux groupes de filtres.\]](http://docs.aws.amazon.com/fr_fr/codebuild/latest/userguide/images/pull-request-webhook-filter-head-base-regexes-bitbucket.png)


Dans cet exemple, un groupe de filtres webhook déclenche une génération pour toutes les demandes à l'exception des événements de balise. 

![\[Un groupe de filtres Webhook qui déclenche une génération pour toutes les demandes, à l'exception des événements liés aux balises.\]](http://docs.aws.amazon.com/fr_fr/codebuild/latest/userguide/images/pull-request-webhook-filter-exclude-bitbucket.png)


Dans cet exemple, un groupe de filtres webhook déclenche une génération uniquement lorsque les fichiers dont les noms correspondent à l'expression régulière `^buildspec.*` changent. 

![\[Un groupe de filtres Webhook qui déclenche une compilation uniquement lorsque les noms de fichiers correspondent à l'expression régulière spécifiée.\]](http://docs.aws.amazon.com/fr_fr/codebuild/latest/userguide/images/pull-request-webhook-filter-file-name-regex.png)


Dans cet exemple, un groupe de filtres Webhook déclenche une compilation uniquement lorsque des fichiers sont modifiés dans `src` ou `test` des dossiers.

![\[Un groupe de filtres Webhook qui déclenche une compilation uniquement lorsque des fichiers sont modifiés dans des dossiers spécifiés.\]](http://docs.aws.amazon.com/fr_fr/codebuild/latest/userguide/images/pull-request-webhook-filter-file-name-combined-regex.png)


Dans cet exemple, un groupe de filtres webhook déclenche une génération uniquement lorsqu'une modification est apportée par un utilisateur Bitbucket qui ne dispose pas d'un ID de compte correspondant à l'expression régulière `actor-account-id`. 

**Note**  
 Pour savoir comment trouver l'identifiant de votre compte Bitbucket, consultez https://api.bitbucket.org/2.0/users/*user-name*, où se *user-name* trouve votre nom d'utilisateur Bitbucket. 

![\[Un groupe de filtres Webhook qui déclenche une compilation uniquement lorsqu'une modification est apportée par un utilisateur de Bitbucket qui n'a pas d'identifiant de compte.\]](http://docs.aws.amazon.com/fr_fr/codebuild/latest/userguide/images/pull-request-webhook-filter-actor-bitbucket.png)


Dans cet exemple, un groupe de filtres webhook déclenche une génération pour un événement de transmission lorsque le message de validation principal correspond à l'expression régulière `\[CodeBuild\]`. 

![\[Un groupe de filtres Webhook qui déclenche une compilation pour un événement push lorsque le message de validation principal correspond à l'expression régulière.\]](http://docs.aws.amazon.com/fr_fr/codebuild/latest/userguide/images/pull-request-webhook-filter-commit-message.png)


# Filtrage des événements webhook BitBucket (kit SDK)
<a name="bitbucket-webhook-events-sdk"></a>

 Pour utiliser le AWS CodeBuild SDK afin de filtrer les événements Webhook, utilisez le `filterGroups` champ dans la syntaxe de demande des méthodes `CreateWebhook` ou de l'`UpdateWebhook`API. Pour plus d’informations, consultez [WebhookFilter](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_WebhookFilter.html) dans la *Référence d’API CodeBuild *. 

 Pour créer un filtre webhook qui déclenche une génération pour des demandes d'extraction uniquement, insérez les éléments suivants dans la syntaxe de demande : 

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

 Pour créer un filtre webhook qui déclenche une génération pour des branches spécifiées uniquement, utilisez le paramètre `pattern` pour spécifier une expression régulière pour filtrer les noms de branche. Dans cet exemple de deux groupes de filtres, une génération est déclenchée lorsqu'un des deux prend la valeur true :
+ Le premier groupe de filtres spécifie des demandes d'extraction créées ou mises à jour sur des branches avec des noms de référence Git correspondant à l'expression régulière `^refs/heads/main$` et des références principales correspondant à `^refs/heads/myBranch$`. 
+ Le deuxième groupe de filtres spécifie des demandes de transmission sur des branches avec des noms de référence Git qui correspondent à l'expression régulière `^refs/heads/myBranch$`. 

```
"filterGroups": [
  [
    {
      "type": "EVENT",
      "pattern": "PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED, PULL_REQUEST_CLOSED"
    },
    {
      "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$"
    }
  ]
]
```

 Vous pouvez utiliser le paramètre `excludeMatchedPattern` pour spécifier les événements qui ne déclenchent pas une génération. Dans cet exemple, une génération est déclenchée pour toutes les demandes à l'exception des événements de balise. 

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

Vous pouvez créer un filtre qui déclenche une génération uniquement lorsqu'une modification est apportée par un utilisateur Bitbucket avec l'ID de compte `actor-account-id`. 

**Note**  
 Pour savoir comment trouver l'identifiant de votre compte Bitbucket, consultez https://api.bitbucket.org/2.0/users/*user-name*, où se *user-name* trouve votre nom d'utilisateur Bitbucket. 

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

Vous pouvez créer un filtre qui déclenche une génération uniquement lorsque les fichiers dont les noms correspondent à l'expression régulière dans l'argument `pattern` changent. Dans cet exemple, le groupe de filtres spécifie qu'une génération est déclenchée uniquement lorsque les fichiers dont les noms correspondent à l'expression régulière `^buildspec.*` changent. 

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

Dans cet exemple, le groupe de filtres indique qu'une compilation est déclenchée uniquement lorsque des fichiers sont modifiés dans `src` ou `test` des dossiers.

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

Vous pouvez créer un filtre qui déclenche une génération uniquement lorsque le message de validation principal correspond à l'expression régulière de l'argument de schéma. Dans cet exemple, le groupe de filtres spécifie qu'une génération est déclenchée uniquement lorsque le message de validation principal de l'événement de transmission correspond à l'expression régulière `\[CodeBuild\]`. 

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

# Filtrage des événements webhook Bitbucket (CloudFormation)
<a name="bitbucket-webhook-events-cfn"></a>

 Pour utiliser un CloudFormation modèle afin de filtrer les événements Webhook, utilisez la `FilterGroups` propriété du AWS CodeBuild projet. La partie au format YAML suivante d'un modèle CloudFormation crée deux groupes de filtres. Ensemble, ils déclenchent une génération lorsque l'un des deux ou les deux prennent la valeur true : 
+  Le premier groupe de filtres spécifie des demandes d'extraction créées ou mises à jour sur des branches avec des noms de référence Git correspondant à l'expression régulière `^refs/heads/main$` par un utilisateur Bitbucket n'ayant pas d'ID de compte `12345`. 
+  Le deuxième groupe de filtres spécifie des demandes de transmission créées sur des branches avec des noms de référence Git qui correspondent à l'expression régulière `^refs/heads/.*`. 
+ Le troisième groupe de filtres spécifie une demande de transmission avec un message de validation principal correspondant à l'expression régulière `\[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: BITBUCKET
      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/.+
```