

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.

# GitLab événements webhook
<a name="gitlab-webhook"></a>

Vous pouvez utiliser des groupes de filtres Webhook pour spécifier quels événements GitLab Webhook déclenchent une compilation. 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**  
En GitLab effet, vous pouvez choisir un ou plusieurs des événements suivants : `PUSH``PULL_REQUEST_CREATED`, `PULL_REQUEST_UPDATED``PULL_REQUEST_MERGED`,`PULL_REQUEST_REOPENED`,`PULL_REQUEST_CLOSED`,`RELEASED`, et`WORKFLOW_JOB_QUEUED`.  
Le type d’événement du webhook est situé dans son en-tête dans le champ `X-GitLab-Event`. Le tableau suivant présente le mappage des valeurs d’en-tête `X-GitLab-Event` aux types d’événements. Pour l'événement `Merge Request Hook` webhook, la charge utile `object_atttributes.action` contiendra des informations supplémentaires sur le type de demande de fusion.      
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/codebuild/latest/userguide/gitlab-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 un build lorsqu'un identifiant de GitLab compte 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 du webhook de votre dépôt. GitLab 

**Topics**
+ [Filtrer les événements du GitLab webhook (console)](gitlab-webhook-events-console.md)
+ [Filtrer les événements du GitLab webhook (SDK)](gitlab-webhook-events-sdk.md)
+ [Filtrer les événements du GitLab webhook ()CloudFormation](gitlab-webhook-events-cfn.md)

# Filtrer les événements du GitLab webhook (console)
<a name="gitlab-webhook-events-console"></a>

Suivez les instructions ci-dessous pour filtrer AWS Management Console les événements Webhook. Pour plus d'informations sur les événements GitLab Webhook, consultez[GitLab événements webhook](gitlab-webhook.md).

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-gitlab.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-gitlab.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-gitlab.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-gitlab.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-gitlab.png)


Dans cet exemple, un groupe de filtres Webhook déclenche une compilation uniquement lorsqu'une modification est apportée par un GitLab utilisateur dont l'identifiant de compte ne correspond pas à l'expression `actor-account-id` régulière. 

**Note**  
 Pour plus d'informations sur la façon de trouver votre identifiant de GitLab compte https://api.github.com/users/*user-name*, voir Où *user-name* est votre nom GitLab d'utilisateur ? 

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


# Filtrer les événements du GitLab webhook (SDK)
<a name="gitlab-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 plus d'informations sur les événements GitLab Webhook, consultez[GitLab événements webhook](gitlab-webhook.md).

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

 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"
    },
    {
      "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"
    },
    {
      "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 GitLab utilisateur possédant un identifiant de compte`actor-account-id`. 

**Note**  
 Pour plus d'informations sur la façon de trouver votre identifiant de GitLab compte https://api.github.com/users/*user-name*, voir Où *user-name* est votre nom GitLab d'utilisateur ? 

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

# Filtrer les événements du GitLab webhook ()CloudFormation
<a name="gitlab-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. Pour plus d'informations sur les événements GitLab Webhook, consultez[GitLab événements webhook](gitlab-webhook.md).

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 indique que les pull requests sont créées ou mises à jour sur les branches dont les noms de référence Git correspondent à l'expression régulière `^refs/heads/main$` d'un GitLab utilisateur qui n'a pas d'identifiant 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\]`.
+ Le quatrième groupe de filtres spécifie une demande de travail de flux de travail GitHub Actions avec un nom de flux de travail correspondant à l'expression régulière`\[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: GITLAB
      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: EVENT
            Pattern: PUSH
          - Type: COMMIT_MESSAGE
            Pattern: \[CodeBuild\]
        - - Type: EVENT
            Pattern: WORKFLOW_JOB_QUEUED
          - Type: WORKFLOW_NAME
            Pattern: \[CI-CodeBuild\]
```