

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.

# Utilisez des webhooks avec AWS CodeBuild
<a name="webhooks"></a>

AWS CodeBuild prend en charge l'intégration de webhook avec GitHub GitHub Enterprise Server GitLab, GitLab Self Managed et Bitbucket. 

**Topics**
+ [

## Bonnes pratiques d'utilisation des webhooks avec AWS CodeBuild
](#webhook-best-practices)
+ [

# Événements du webhook Bitbucket
](bitbucket-webhook.md)
+ [

# GitHub webhooks mondiaux et organisationnels
](github-global-organization-webhook.md)
+ [

# GitHub webhooks manuels
](github-manual-webhook.md)
+ [

# GitHub événements webhook
](github-webhook.md)
+ [

# GitLab webhooks de groupe
](gitlab-group-webhook.md)
+ [

# GitLab webhooks manuels
](gitlab-manual-webhook.md)
+ [

# GitLab événements webhook
](gitlab-webhook.md)
+ [

# Webhooks manuels Buildkite
](buildkite-manual-webhook.md)
+ [

# Approbation des commentaires par pull request
](pull-request-build-policy.md)

## Bonnes pratiques d'utilisation des webhooks avec AWS CodeBuild
<a name="webhook-best-practices"></a>

Pour les projets qui utilisent des référentiels publics pour configurer des webhooks, nous recommandons les options suivantes :

`ACTOR_ACCOUNT_ID`Filtres de configuration  
Ajoutez des `ACTOR_ACCOUNT_ID` filtres aux groupes de filtres Webhook de votre projet pour spécifier quels utilisateurs peuvent déclencher une génération. Chaque événement webhook CodeBuild livré à est accompagné d'informations sur l'expéditeur qui spécifient l'identifiant de l'acteur. CodeBuild filtrera les webhooks en fonction du modèle d'expression régulière fourni dans les filtres. Vous pouvez spécifier les utilisateurs spécifiques autorisés à déclencher des builds avec ce filtre. Pour plus d’informations, consultez [GitHub événements webhook](github-webhook.md) et [Événements du webhook Bitbucket](bitbucket-webhook.md). 

`FILE_PATH`Filtres de configuration  
Ajoutez des `FILE_PATH` filtres aux groupes de filtres Webhook de votre projet pour inclure ou exclure les fichiers susceptibles de déclencher une génération en cas de modification. Par exemple, vous pouvez refuser les demandes de compilation visant à modifier le `buildspec.yml` fichier à l'aide d'un modèle d'expression régulière tel que`^buildspec.yml$`, avec la `excludeMatchedPattern` propriété. Pour plus d’informations, consultez [GitHub événements webhook](github-webhook.md) et [Événements du webhook Bitbucket](bitbucket-webhook.md). 

Limitez les autorisations associées à votre rôle IAM de build  
Les builds déclenchés par un webhook utilisent le rôle de service IAM spécifié dans le projet. Nous vous recommandons de définir les autorisations du rôle de service sur l'ensemble minimal d'autorisations requis pour exécuter la génération. Par exemple, dans un scénario de test et de déploiement, créez un projet pour les tests et un autre pour le déploiement. Le projet de test accepte les versions de webhook à partir du référentiel, mais ne fournit aucune autorisation d'écriture sur vos ressources. Le projet de déploiement fournit des autorisations d'écriture à vos ressources, et le filtre Webhook est configuré pour autoriser uniquement les utilisateurs de confiance à déclencher des builds.

Utilisez une spécification de construction en ligne ou stockée sur Amazon S3  
Si vous définissez votre buildspec en ligne dans le projet lui-même, ou si vous stockez le fichier buildspec dans un compartiment Amazon S3, le fichier buildspec n'est visible que par le propriétaire du projet. Cela empêche les pull requests d'apporter des modifications de code au fichier buildspec et de déclencher des builds indésirables. *Pour plus d'informations, consultez le [ProjectSourcefichier .buildspec](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectSource.html#CodeBuild-Type-ProjectSource-buildspec) dans la référence de l'API. CodeBuild*

# É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/.+
```

# GitHub webhooks mondiaux et organisationnels
<a name="github-global-organization-webhook"></a>

Vous pouvez utiliser des webhooks CodeBuild GitHub globaux ou organisationnels pour démarrer des builds à partir d'événements webhooks à partir de n'importe quel référentiel au sein d'une GitHub organisation ou d'une entreprise. Les webhooks globaux et organisationnels fonctionnent avec tous les types d'événements GitHub webhook existants et peuvent être configurés en ajoutant une configuration de portée lors de la création d'un CodeBuild webhook. Vous pouvez également utiliser des webhooks mondiaux et organisationnels pour [configurer des GitHub Action Runners auto-hébergés au sein d'un même projet CodeBuild](action-runner.md) afin de recevoir des `WORKFLOW_JOB_QUEUED` événements provenant de plusieurs référentiels au sein d'un même projet.

**Topics**
+ [

# Configurer un GitHub webhook mondial ou organisationnel
](github-global-organization-webhook-setup.md)
+ [

# Filtrer les événements webhook GitHub mondiaux ou organisationnels (console)
](github-global-organization-webhook-events-console.md)
+ [

# Filtrer les événements du webhook de l' GitHub organisation ()CloudFormation
](github-organization-webhook-events-cfn.md)

# Configurer un GitHub webhook mondial ou organisationnel
<a name="github-global-organization-webhook-setup"></a>

Les étapes de haut niveau pour configurer un GitHub webhook mondial ou organisationnel sont les suivantes. Pour plus d'informations sur les GitHub webhooks mondiaux et organisationnels, consultez[GitHub webhooks mondiaux et organisationnels](github-global-organization-webhook.md).

1. Définissez l'emplacement source de votre projet sur`CODEBUILD_DEFAULT_WEBHOOK_SOURCE_LOCATION`.

1. Dans la configuration de la portée du webhook, définissez la portée sur l'une ou l'autre `GITHUB_ORGANIZATION` ou `GITHUB_GLOBAL` selon qu'il doit s'agir d'une organisation ou d'un [webhook mondial](https://docs.github.com/en/enterprise-cloud@latest/admin/monitoring-activity-in-your-enterprise/exploring-user-activity-in-your-enterprise/managing-global-webhooks). Pour plus d'informations, consultez la section [Types de webhooks.](https://docs.github.com/en/webhooks/types-of-webhooks)

1. Spécifiez un nom dans le cadre de la configuration du scope du webhook. Pour les webhooks d'organisation, il s'agit du nom de l'organisation, et pour les webhooks globaux, il s'agit du nom de l'entreprise.
**Note**  
Si le type de source du projet est`GITHUB_ENTERPRISE`, vous devrez également spécifier un domaine dans le cadre de la configuration de la portée du webhook.

1. (Facultatif) Si vous souhaitez uniquement recevoir des événements de webhook pour des référentiels spécifiques au sein de votre organisation ou de votre entreprise, vous pouvez les spécifier `REPOSITORY_NAME` sous forme de filtre lors de la création du webhook.

1. Si vous créez un webhook d'organisation, assurez-vous qu'il CodeBuild dispose des autorisations nécessaires pour créer des webhooks au niveau de l'organisation. GitHub Vous pouvez créer un jeton d'accès GitHub personnel avec les autorisations Webhook de l'organisation, ou l'utiliser CodeBuild OAuth. Pour de plus amples informations, veuillez consulter [GitHub et jeton d'accès au serveur GitHub Enterprise](access-tokens-github.md).

   Notez que les webhooks d'organisation fonctionnent avec tous les types d'événements GitHub webhook existants.

1. Si vous créez un webhook global, le webhook devra être créé manuellement. Pour plus d'informations sur la création manuelle d'un webhook à l'intérieur de celui-ci GitHub, consultez[GitHub webhooks manuels](github-manual-webhook.md).

   Notez que les webhooks globaux ne prennent en charge que le type `WORKFLOW_JOB_QUEUED` d'événement. Pour de plus amples informations, veuillez consulter [Tutoriel : Configuration d'un CodeBuild exécuteur d' GitHub actions hébergé](action-runner.md).

# Filtrer les événements webhook GitHub mondiaux ou organisationnels (console)
<a name="github-global-organization-webhook-events-console"></a>

Lorsque vous créez un GitHub projet via la console, sélectionnez les options suivantes pour créer un webhook GitHub global ou organisationnel au sein du projet. Pour plus d'informations sur les GitHub webhooks mondiaux et organisationnels, consultez[GitHub webhooks mondiaux et organisationnels](github-global-organization-webhook.md).

1. Ouvrez la AWS CodeBuild console sur [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1. Créez un projet de génération. Pour plus d’informations, consultez [Création d'un projet de génération (console)](create-project.md#create-project-console) et [Exécution d'une génération (console)](run-build-console.md).
   +  Dans **Source**: 
     +  Dans le **champ Source provider**, sélectionnez **GitHubGitHub****Enterprise**.
     +  Pour **Repository**, choisissez un **GitHubwebhook scopé**. 

        Le GitHub référentiel sera automatiquement défini sur`CODEBUILD_DEFAULT_WEBHOOK_SOURCE_LOCATION`, qui est l'emplacement source requis pour les webhooks mondiaux et organisationnels. 
**Note**  
Si vous utilisez des webhooks d'organisation, assurez-vous que celle-ci CodeBuild dispose des autorisations nécessaires pour créer des webhooks au niveau de l'organisation. GitHub Si vous utilisez une [ OAuthconnexion existante](oauth-app-github.md), il se peut que vous deviez la régénérer pour accorder CodeBuild cette autorisation. Vous pouvez également créer le webhook manuellement à l'aide de la fonction [webhooks CodeBuild manuels](github-manual-webhook.md). Notez que si vous avez un GitHub OAuth jeton existant et que vous souhaitez ajouter des autorisations d'organisation supplémentaires, vous pouvez [révoquer l'autorisation du OAuth jeton](https://docs.github.com/en/apps/oauth-apps/using-oauth-apps/reviewing-your-authorized-oauth-apps) et le reconnecter via la CodeBuild console.  
![\[La configuration du GitHub webhook délimité.\]](http://docs.aws.amazon.com/fr_fr/codebuild/latest/userguide/images/github-organization-webhook-source.png)
   +  Dans les **événements Webhook de la source principale** : 
     +  Pour **Type de portée**, choisissez **Niveau organisation** si vous créez un webhook d'organisation ou **Niveau entreprise** si vous créez un webhook global.
     +  Dans **Nom**, entrez le nom de l'entreprise ou de l'organisation, selon qu'il s'agit d'un webhook mondial ou d'une organisation.

       Si le type de source du projet est`GITHUB_ENTERPRISE`, vous devez également spécifier un domaine dans le cadre de la configuration de l'organisation du webhook. Par exemple, si l'URL de votre organisation est**https://domain.com/orgs/org-name**, le domaine est**https://domain.com**.
**Note**  
 Ce nom ne peut pas être modifié une fois le webhook créé. Pour modifier le nom, vous pouvez supprimer et recréer le webhook. Si vous souhaitez supprimer complètement le webhook, vous pouvez également mettre à jour l'emplacement de la source du projet vers un GitHub référentiel.   
![\[Configuration de webhooks globaux ou organisationnels.\]](http://docs.aws.amazon.com/fr_fr/codebuild/latest/userguide/images/github-organization-webhook-primary-events.png)
     +  (Facultatif) Dans les **groupes de filtres d'événements Webhook**, vous pouvez spécifier [les événements pour lesquels vous souhaitez déclencher une nouvelle génération](github-webhook.md). Vous pouvez également spécifier `REPOSITORY_NAME` comme filtre de manière à ne déclencher des builds que sur des événements webhook provenant de référentiels spécifiques.  
![\[Un filtre qui se déclenche uniquement à partir d'événements webhook provenant de référentiels spécifiques.\]](http://docs.aws.amazon.com/fr_fr/codebuild/latest/userguide/images/github-organization-webhook-filter-groups.png)

       Vous pouvez également définir le type d'événement sur `WORKFLOW_JOB_QUEUED` pour configurer des coureurs GitHub Actions auto-hébergés. Pour de plus amples informations, veuillez consulter [Tutoriel : Configuration d'un CodeBuild exécuteur d' GitHub actions hébergé](action-runner.md).

1. Continuez avec les valeurs par défaut, puis choisissez **Create build project**.

# Filtrer les événements du webhook de l' GitHub organisation ()CloudFormation
<a name="github-organization-webhook-events-cfn"></a>

 Pour utiliser un CloudFormation modèle afin de filtrer les événements webhook d'une organisation, utilisez la `ScopeConfiguration` propriété du AWS CodeBuild projet. Pour plus d'informations sur les GitHub webhooks mondiaux et organisationnels, consultez[GitHub webhooks mondiaux et organisationnels](github-global-organization-webhook.md).

**Note**  
Les webhooks globaux et les webhooks GitHub d'entreprise ne sont pas pris en charge par. CloudFormation

 La partie suivante d'un CloudFormation modèle au format YAML crée quatre groupes de filtres. Ensemble, ils déclenchent une compilation lorsqu'une ou toutes les évaluations sont vraies : 
+  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 GitHub utilisateur qui n'a pas d'identifiant de compte`12345`. 
+  Le deuxième groupe de filtres spécifie les demandes de transmission créées sur des fichiers dont les noms correspondent à l'expression régulière `READ_ME` dans 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: GITHUB
      Location: source-location
    Triggers:
      Webhook: true
      ScopeConfiguration:
        Name: organization-name
        Scope: GITHUB_ORGANIZATION
      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\]
```

# GitHub webhooks manuels
<a name="github-manual-webhook"></a>

Vous pouvez configurer des GitHub webhooks manuels pour empêcher toute tentative automatique CodeBuild de création d'un webhook à l'intérieur. GitHub CodeBuild renvoie une URL de charge utile dans le cadre de l'appel pour créer le webhook et peut être utilisée pour créer manuellement le webhook à l'intérieur. GitHub Même si vous CodeBuild n'êtes pas autorisé à créer un webhook dans votre GitHub compte, vous pouvez toujours créer manuellement un webhook pour votre projet de construction.

Utilisez la procédure suivante pour créer un webhook GitHub manuel.

**Pour créer un GitHub webhook manuel**

1. Ouvrez la AWS CodeBuild console sur [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1. Créez un projet de génération. Pour plus d’informations, consultez [Création d'un projet de génération (console)](create-project.md#create-project-console) et [Exécution d'une génération (console)](run-build-console.md).
   +  Dans **Source**: 
     +  Dans le **champ Source provider**, sélectionnez **GitHub**.
     +  Pour **Repository**, sélectionnez **Repository dans mon GitHub compte**. 
     +  Pour **Repository URL (URL du référentiel)**, saisissez **https://github.com/*user-name*/*repository-name*** 
   +  Dans les **événements Webhook de la source principale** : 
     +  Pour **Webhook, facultatif**, choisissez **Rebuild chaque fois qu'une modification de code est envoyée à ce référentiel**.
     +  Choisissez **Configuration supplémentaire** et pour **Création manuelle (facultatif)**, choisissez **Créer manuellement un webhook pour ce référentiel dans GitHub la console**. .

1. Continuez avec les valeurs par défaut, puis choisissez **Create build project**. Prenez note de l'**URL de charge utile** et des valeurs **secrètes** que vous utiliserez ultérieurement.  
![\[URL de charge utile et configuration secrète pour les webhooks manuels.\]](http://docs.aws.amazon.com/fr_fr/codebuild/latest/userguide/images/github-manual-webhook-values.png)

1. Ouvrez la GitHub console à `https://github.com/user-name/repository-name/settings/hooks` et choisissez **Ajouter un webhook**.
   + Pour **URL de charge utile**, entrez la valeur de l'URL de charge utile dont vous avez pris note précédemment.
   + Pour **le type de contenu**, choisissez **application/json**.
   + Pour **Secret**, entrez la valeur Secret dont vous avez pris note plus tôt.
   + Configurez les événements individuels auxquels une charge utile de webhook sera envoyée. CodeBuild Pour **quels événements souhaitez-vous déclencher ce webhook ?** **, choisissez **Let me select individual events**, puis choisissez parmi les événements suivants : **Pushes**, **Pull requests** et Releases.** Si vous souhaitez démarrer des builds pour des `WORKFLOW_JOB_QUEUED` événements, choisissez **Workflow jobs**. Pour en savoir plus sur GitHub les coureurs Actions, consultez[Tutoriel : Configuration d'un CodeBuild exécuteur d' GitHub actions hébergé](action-runner.md). Pour en savoir plus sur les types d'événements pris en charge par CodeBuild, consultez[GitHub événements webhook](github-webhook.md).

1. Choisissez **Ajouter un webhook.**

# GitHub événements webhook
<a name="github-webhook"></a>

Vous pouvez utiliser des groupes de filtres Webhook pour spécifier quels événements GitHub 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 GitHub effet, vous pouvez choisir un ou plusieurs des événements suivants : `PUSH``PULL_REQUEST_CREATED`,`PULL_REQUEST_UPDATED`, `PULL_REQUEST_REOPENED``PULL_REQUEST_MERGED`,`PULL_REQUEST_CLOSED`,`RELEASED`,`PRERELEASED`, et`WORKFLOW_JOB_QUEUED`. Le type d’événement du webhook est situé dans l’en-tête `X-GitHub-Event` de la charge utile du webhook. Dans l’en-tête `X-GitHub-Event`, vous pourriez voir `pull_request` ou `push`. Pour un événement de demande d’extraction, le type se situe dans le champ `action` de la charge utile d’événement du webhook. Le tableau suivant présente le mappage des valeurs de l’en-tête `X-GitHub-Event` et des valeurs du champ `action` de la charge utile de la demande d’extraction du webhook aux types d’événements disponibles.      
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/codebuild/latest/userguide/github-webhook.html)
 Le type d'`PULL_REQUEST_REOPENED`événement ne peut être utilisé qu'avec un GitHub serveur GitHub d'entreprise. Le type `PRERELEASED` d'événement `RELEASED` et ne peut être utilisé GitHub qu'avec. Pour plus d’informations sur `WORKFLOW_JOB_QUEUED`, consultez [Tutoriel : Configuration d'un CodeBuild exécuteur d' GitHub actions hébergé](action-runner.md). 

**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 GitHub ou un identifiant de compte GitHub Enterprise Server correspond au modèle d'expression régulière. Cette valeur se situe dans la propriété `id` de l’objet `sender` dans la charge utile 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` ou`refs/tags/tag-name`). Pour un événement d’extraction, le nom de référence est situé dans la propriété `ref` de la charge utile du webhook. Pour les événements de demande d’extraction, le nom de la branche est situé dans la propriété `ref` de l’objet `head` 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 (par exemple,`refs/heads/branch-name`). Un filtre `BASE_REF` ne peut être utilisé qu’avec des événements de demande d’extraction. Le nom de la branche se situe dans la propriété `ref` de l’objet `base` dans 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'expressions régulières. Un `FILE_PATH` filtre peut être utilisé avec les événements de requêtes GitHub push et pull et les événements push GitHub d'Enterprise Server. Il ne peut pas être utilisé avec les événements de pull request d' GitHubEnterprise Server.   
`COMMIT_MESSAGE`  
Un webhook déclenche une compilation lorsque le message de validation principal correspond au modèle d'expression régulière. Un `COMMIT_MESSAGE` filtre peut être utilisé avec les événements de requêtes GitHub push et pull et les événements push GitHub d'Enterprise Server. Il ne peut pas être utilisé avec les événements de pull request d' GitHubEnterprise Server.  
`TAG_NAME`  
Un webhook déclenche une compilation lorsque le nom de balise de la version correspond au modèle d'expression régulière. Un `TAG_NAME` filtre peut être utilisé avec les événements de demande GitHub publiés et prépubliés.  
`RELEASE_NAME`  
Un webhook déclenche une compilation lorsque le nom de la version correspond au modèle d'expression régulière. Un `RELEASE_NAME` filtre peut être utilisé avec les événements de demande GitHub publiés et prépubliés.  
`REPOSITORY_NAME`  
Un webhook déclenche une compilation lorsque le nom du dépôt correspond au modèle d'expression régulière. Un `REPOSITORY_NAME` filtre ne peut être utilisé qu'avec des webhooks GitHub globaux ou organisationnels.  
`ORGANIZATION_NAME`  
Un webhook déclenche une compilation lorsque le nom de l'organisation correspond au modèle d'expression régulière. Un `ORGANIZATION_NAME` filtre ne peut être utilisé qu'avec des webhooks GitHub globaux.  
`WORKFLOW_NAME`  
Un webhook déclenche une compilation lorsque le nom du flux de travail correspond au modèle d'expression régulière. Un `WORKFLOW_NAME` filtre peut être utilisé avec les événements de demande de travail en file d'attente du flux de travail GitHub Actions.

**Note**  
Vous pouvez trouver la charge utile du webhook dans les paramètres du webhook de votre dépôt. GitHub 

**Topics**
+ [

# Filtrer les événements du GitHub webhook (console)
](github-webhook-events-console.md)
+ [

# Filtrer les événements du GitHub webhook (SDK)
](github-webhook-events-sdk.md)
+ [

# Filtrer les événements du GitHub webhook ()CloudFormation
](github-webhook-events-cfn.md)

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

Suivez les instructions suivantes pour filtrer les événements GitHub webhook à l'aide du AWS Management Console. Pour plus d'informations sur les événements GitHub Webhook, consultez[GitHub événements webhook](github-webhook.md).

Dans **Événements webhook de la source principale**, sélectionnez ce qui suit. Cette section n'est disponible que lorsque vous avez choisi **Repository dans mon GitHub compte** pour le référentiel source.

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 **Ajouter un groupe de filtres** pour ajouter un autre groupe de filtres, si nécessaire. 

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


Dans cet exemple de deux groupes de filtres webhook, une génération est déclenchée lorsque l'un des deux ou les deux prennent la valeur true :
+ Le premier groupe de filtres spécifie les demandes d’extraction créées, mises à jour ou rouvertes sur des branches avec des noms de référence Git qui correspondent à l’expression régulière `^refs/heads/main$` et des références principales qui correspondent à `^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.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.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 spécifié GitHub ou par un utilisateur d' GitHub Enterprise Server dont l'ID de compte correspond à l'expression `actor-account-id` régulière. 

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

![\[Un groupe de filtres Webhook qui déclenche une génération uniquement lorsqu'une modification est apportée par un GitHub utilisateur spécifié dont l'identifiant de compte correspond à l'expression régulière.\]](http://docs.aws.amazon.com/fr_fr/codebuild/latest/userguide/images/pull-request-webhook-filter-actor.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)


Dans cet exemple, un groupe de filtres Webhook déclenche une génération pour les événements de travail du flux de travail GitHub Actions uniquement.

**Note**  
CodeBuild ne traitera les tâches du flux de travail GitHub Actions que si un webhook possède des groupes de filtres contenant le filtre d'événements **WORKFLOW\$1JOB\$1QUEUED**.

![\[Un groupe de filtres Webhook déclenche uniquement un build pour les événements de travail du flux de travail GitHub Actions.\]](http://docs.aws.amazon.com/fr_fr/codebuild/latest/userguide/images/github-actions-workflow-job-queued-no-highlight.png)


Dans cet exemple, un groupe de filtres Webhook déclenche une génération pour un nom de flux de travail qui correspond à l'expression `CI-CodeBuild` régulière. 

![\[Un groupe de filtres Webhook déclenche la création d'un nom de flux de travail correspondant à l'expression régulière.\]](http://docs.aws.amazon.com/fr_fr/codebuild/latest/userguide/images/github-actions-workflow-job-specific.png)


# Filtrer les événements du GitHub webhook (SDK)
<a name="github-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 GitHub Webhook, consultez[GitHub événements webhook](github-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_REOPENED, 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 les demandes d’extraction créées, mises à jour ou rouvertes sur des branches avec des noms de référence Git qui correspondent à l’expression régulière `^refs/heads/main$` et des références principales qui correspondent à `^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_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$"
        }
    ]
]
```

 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 sauf les événements de balise. 

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

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 lorsqu'une modification est apportée par un utilisateur spécifié GitHub ou par un utilisateur GitHub Enterprise Server doté d'un identifiant de compte`actor-account-id`. 

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

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

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

Pour créer un filtre Webhook qui déclenche une génération pour les tâches de flux de travail GitHub Actions uniquement, insérez ce qui suit dans la syntaxe de la demande :

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

# Filtrer les événements du GitHub webhook ()CloudFormation
<a name="github-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 GitHub Webhook, consultez[GitHub événements webhook](github-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 GitHub utilisateur qui n'a pas d'identifiant de compte`12345`. 
+  Le deuxième groupe de filtres spécifie les demandes de transmission créées sur des fichiers dont les noms correspondent à l'expression régulière `READ_ME` dans 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: 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\]
```

# GitLab webhooks de groupe
<a name="gitlab-group-webhook"></a>

Vous pouvez utiliser des webhooks de CodeBuild GitLab groupe pour démarrer des builds à partir d'événements de webhooks à partir de n'importe quel référentiel au sein d'un GitLab groupe. Les webhooks de groupe fonctionnent avec tous les types d'événements GitLab webhook existants et peuvent être configurés en ajoutant une configuration de portée lors de la création d'un CodeBuild webhook. Vous pouvez également utiliser des webhooks de groupe pour [configurer des GitLab coureurs auto-hébergés CodeBuild au sein](gitlab-runner.md) d'un même projet afin de recevoir `WORKFLOW_JOB_QUEUED` des événements provenant de plusieurs référentiels.

**Topics**
+ [

# Configurer un GitLab webhook de groupe
](gitlab-group-webhook-setup.md)
+ [

# Filtrer les événements de webhook de GitLab groupe (console)
](gitlab-group-webhook-events-console.md)
+ [

# Filtrer les événements webhook de GitLab groupe ()CloudFormation
](gitlab-group-webhook-events-cfn.md)

# Configurer un GitLab webhook de groupe
<a name="gitlab-group-webhook-setup"></a>

Les étapes de haut niveau pour configurer un GitLab webhook de groupe sont les suivantes. Pour plus d'informations sur les GitLab webhooks de groupe, consultez[GitLab webhooks de groupe](gitlab-group-webhook.md).

1. Définissez l'emplacement source de votre projet sur`CODEBUILD_DEFAULT_WEBHOOK_SOURCE_LOCATION`.

1. Dans la configuration de la portée du webhook, définissez la portée sur`GITLAB_GROUP`.

1. Spécifiez un nom dans le cadre de la configuration du scope du webhook. Pour les webhooks de groupe, il s'agit du nom du groupe.
**Note**  
Si le type de source du projet est`GITLAB_SELF_MANAGED`, vous devrez également spécifier un domaine dans le cadre de la configuration de la portée du webhook.

1. (Facultatif) Si vous souhaitez uniquement recevoir des événements de webhook pour des référentiels spécifiques au sein de votre organisation ou de votre entreprise, vous pouvez les spécifier `REPOSITORY_NAME` sous forme de filtre lors de la création du webhook.

1. Lorsque vous créez un webhook de groupe, assurez-vous qu'il CodeBuild dispose des autorisations nécessaires pour créer des webhooks au niveau du groupe. GitLab Pour ce faire, vous pouvez CodeBuild OAuth cependant utiliser CodeConnections. Pour de plus amples informations, veuillez consulter [GitLab accéder à CodeBuild](access-tokens-gitlab-overview.md).

   Notez que les webhooks de groupe fonctionnent avec tous les types d'événements GitLab webhook existants.

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

Lorsque vous créez un GitLab projet via la console, sélectionnez les options suivantes pour créer un webhook de GitLab groupe au sein du projet. Pour plus d'informations sur les GitLab webhooks de groupe, consultez[GitLab webhooks de groupe](gitlab-group-webhook.md).

1. Ouvrez la AWS CodeBuild console sur [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1. Créez un projet de génération. Pour plus d’informations, consultez [Création d'un projet de génération (console)](create-project.md#create-project-console) et [Exécution d'une génération (console)](run-build-console.md).
   +  Dans **Source**: 
     +  Dans le **champ Source provider**, choisissez **GitLabGitLab****Self Managed**.
     +  Pour **Repository**, choisissez un **GitLabwebhook scopé**. 

        Le GitLab référentiel sera automatiquement défini sur`CODEBUILD_DEFAULT_WEBHOOK_SOURCE_LOCATION`, qui est l'emplacement source requis pour les webhooks de groupe. 
**Note**  
Lorsque vous utilisez des webhooks de groupe, assurez-vous qu'ils sont CodeBuild autorisés à créer des webhooks au niveau du groupe. GitLab Si vous utilisez une [ OAuthconnexion existante](access-tokens-gitlab-overview.md#connections-gitlab), vous devrez peut-être la régénérer pour accorder CodeBuild cette autorisation.  
![\[La configuration du GitLab webhook délimité.\]](http://docs.aws.amazon.com/fr_fr/codebuild/latest/userguide/images/gitlab-group-source.png)
   +  Dans les **événements Webhook de la source principale** : 
     +  Dans **Nom du groupe**, entrez le nom du groupe.

       Si le type de source du projet est`GITLAB_SELF_MANAGED`, vous devez également spécifier un domaine dans le cadre de la configuration du groupe Webhook. Par exemple, si l'URL de votre groupe est**https://domain.com/group/group-name**, le domaine est**https://domain.com**.
**Note**  
 Ce nom ne peut pas être modifié une fois le webhook créé. Pour modifier le nom, vous pouvez supprimer et recréer le webhook. Si vous souhaitez supprimer complètement le webhook, vous pouvez également mettre à jour l'emplacement de la source du projet vers un GitLab référentiel.   
![\[Configuration des webhooks de groupe.\]](http://docs.aws.amazon.com/fr_fr/codebuild/latest/userguide/images/gitlab-group-webhook-primary-events.png)
     +  (Facultatif) Dans les **groupes de filtres d'événements Webhook**, vous pouvez spécifier [les événements pour lesquels vous souhaitez déclencher une nouvelle génération](gitlab-webhook.md). Vous pouvez également spécifier `REPOSITORY_NAME` comme filtre de manière à ne déclencher des builds que sur des événements webhook provenant de référentiels spécifiques.  
![\[Un filtre qui se déclenche uniquement à partir d'événements webhook provenant de référentiels spécifiques.\]](http://docs.aws.amazon.com/fr_fr/codebuild/latest/userguide/images/github-organization-webhook-filter-groups.png)

       Vous pouvez également définir le type d'événement sur `WORKFLOW_JOB_QUEUED` pour configurer des GitLab coureurs auto-hébergés. Pour de plus amples informations, veuillez consulter [GitLab Coureurs autogérés en AWS CodeBuild](gitlab-runner.md).

1. Continuez avec les valeurs par défaut, puis choisissez **Create build project**.

# Filtrer les événements webhook de GitLab groupe ()CloudFormation
<a name="gitlab-group-webhook-events-cfn"></a>

 Pour utiliser un CloudFormation modèle afin de filtrer les événements webhook de groupe, utilisez la `ScopeConfiguration` propriété du AWS CodeBuild projet. Pour plus d'informations sur les GitLab webhooks de groupe, consultez[GitLab webhooks de groupe](gitlab-group-webhook.md).

 La partie suivante d'un CloudFormation modèle au format YAML crée quatre groupes de filtres. Ensemble, ils déclenchent une compilation lorsqu'une ou toutes les évaluations sont vraies : 
+  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 les demandes de transmission créées sur des fichiers dont les noms correspondent à l'expression régulière `READ_ME` dans 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 un nom de GitLab CI/CD pipeline job request with a CI/CD pipeline 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
      ScopeConfiguration:
        Name: group-name
        Scope: GITLAB_GROUP
      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\]
```

# GitLab webhooks manuels
<a name="gitlab-manual-webhook"></a>

Vous pouvez configurer des GitLab webhooks manuels pour empêcher toute tentative automatique CodeBuild de création d'un webhook à l'intérieur. GitLab CodeBuild renvoie une URL de charge utile dans le cadre de l'appel pour créer le webhook et peut être utilisée pour créer manuellement le webhook à l'intérieur. GitLab Même si vous CodeBuild n'êtes pas autorisé à créer un webhook dans votre GitLab compte, vous pouvez toujours créer manuellement un webhook pour votre projet de construction.

Utilisez la procédure suivante pour créer un webhook GitLab manuel.

**Pour créer un GitLab webhook manuel**

1. Ouvrez la AWS CodeBuild console sur [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1. Créez un projet de génération. Pour plus d’informations, consultez [Création d'un projet de génération (console)](create-project.md#create-project-console) et [Exécution d'une génération (console)](run-build-console.md).
   +  Dans **Source**: 
     +  Dans le **champ Source provider**, sélectionnez **GitLab**.
     +  Pour **Repository**, sélectionnez **Repository dans mon GitLab compte**. 
     +  Pour **Repository URL (URL du référentiel)**, saisissez **https://gitlab.com/*user-name*/*repository-name*** 
   +  Dans les **événements Webhook de la source principale** : 
     +  Pour **Webhook, facultatif**, choisissez **Rebuild chaque fois qu'une modification de code est envoyée à ce référentiel**.
     +  Choisissez **Configuration supplémentaire** et pour **Création manuelle (facultatif)**, choisissez **Créer manuellement un webhook pour ce référentiel dans GitLab la console**. .

1. Continuez avec les valeurs par défaut, puis choisissez **Create build project**. Prenez note de l'**URL de charge utile** et des valeurs **secrètes** que vous utiliserez ultérieurement.

1. Ouvrez la GitLab console à `https://gitlab.com/user-name/repository-name/-/hooks` et choisissez **Ajouter un nouveau webhook**.
   + Pour **URL**, entrez la valeur de l'URL de charge utile dont vous avez pris note précédemment.
   + Pour le **jeton secret**, entrez la valeur secrète dont vous avez pris note précédemment.
   + Configurez les événements individuels auxquels une charge utile de webhook sera envoyée. CodeBuild Pour **Trigger**, choisissez parmi les événements suivants : événements **Push, événements** de **demande de fusion, événements** **Releases** et **événements Job**. Pour en savoir plus sur les types d'événements pris en charge par CodeBuild, consultez[GitLab événements webhook](gitlab-webhook.md).

1. Choisissez **Ajouter un webhook.**

# 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\]
```

# Webhooks manuels Buildkite
<a name="buildkite-manual-webhook"></a>

Actuellement, tous CodeBuild les webhooks Buildkite doivent être créés manuellement. CodeBuildrenvoie une URL de charge utile dans le cadre de l'appel pour créer le webhook, qui peut être utilisée pour créer manuellement le webhook dans Buildkite.

Utilisez la procédure suivante pour créer un webhook manuel Buildkite.

**Pour créer un CodeBuild projet avec un webhook**

1. Ouvrez la AWS CodeBuild console sur [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1. Créez un projet de génération. Pour plus d’informations, consultez [Création d'un projet de génération (console)](create-project.md#create-project-console) et [Exécution d'une génération (console)](run-build-console.md).

1. Dans **Configuration du projet**, choisissez **Runner project**.

   Dans **Runner** :
   + Pour le **fournisseur Runner**, choisissez **Buildkite**.
   + Pour le **jeton d'agent Buildkite**, choisissez **Créer un nouveau jeton d'agent en utilisant la page de création d'un secret**. Vous serez invité à créer un nouveau secret dans AWS Secrets Manager avec une valeur de secret égale au jeton d'agent Buildkite que vous avez généré ci-dessus.
   + (Facultatif) Si vous souhaitez utiliser des informations d'identification CodeBuild gérées pour votre tâche, sélectionnez le fournisseur du référentiel source de votre tâche dans les **options d'identification source de Buildkite** et vérifiez que les informations d'identification sont configurées pour votre compte. Vérifiez également que votre pipeline Buildkite utilise **Checkout via HTTPS**.

1. 
   +  Dans **Environment (Environnement)** : 
     + Choisissez une **image d'environnement** compatible et **calculez**. Notez que vous avez la possibilité de remplacer les paramètres d'image et d'instance en utilisant une étiquette dans le code YAML de votre flux de travail GitHub Actions. Pour plus d’informations, consultez [Étape 2 : mettez à jour votre flux de travail GitHub Actions YAML](action-runner.md#sample-github-action-runners-update-yaml).
   +  Dans **Buildspec**: 
     + Notez que votre spécification de construction sera ignorée à moins qu'elle ne `buildspec-override:true` soit ajoutée sous forme d'étiquette. Au lieu de cela, il le CodeBuild remplacera pour utiliser des commandes qui configureront le coureur auto-hébergé.

1. Continuez avec les valeurs par défaut, puis choisissez **Create build project**.

1. Enregistrez l'**URL de charge utile** et les valeurs **secrètes** dans la fenêtre contextuelle **Create Webhook**. Suivez les instructions affichées dans la fenêtre contextuelle pour créer un nouveau webhook d'organisation Buildkite.

# Approbation des commentaires par pull request
<a name="pull-request-build-policy"></a>

CodeBuild prend en charge les politiques de génération de pull request qui fournissent un contrôle supplémentaire sur les builds déclenchés par des pull requests. Il se peut que vous ne souhaitiez pas créer automatiquement des pull requests provenant d'utilisateurs inconnus tant que leurs modifications ne peuvent pas être examinées. Cette fonctionnalité vous permet de demander à l'un des membres de votre équipe de revoir d'abord le code, puis d'exécuter le pipeline. Ceci est couramment utilisé comme mesure de sécurité lors de la création d'un code soumis par des contributeurs inconnus.

Les politiques de génération de pull request vous permettent de contrôler le moment où CodeBuild déclenche les builds pour les pull requests en fonction des autorisations et du statut d'approbation du contributeur. Cela est particulièrement important pour les référentiels publics ou les référentiels qui acceptent les contributions de collaborateurs externes.

Lorsqu'elle est activée, cette fonctionnalité garantit que les builds ne sont déclenchés pour les pull requests que dans les cas suivants :
+ La pull request est créée par un contributeur de confiance.
+ Un contributeur de confiance approuve la pull request en publiant un commentaire spécifique.

## Comment ça marche
<a name="pull-request-build-policy.how-it-works"></a>

**Des contributeurs de confiance**  
Un contributeur fiable est un utilisateur dont le rôle actuel dans le système de contrôle de source est défini dans la politique basée sur les pull requests en tant que rôles d'approbateur. Lorsqu'un contributeur de confiance crée une pull request, il CodeBuild déclenche automatiquement le build, en conservant le comportement actuel.

**Contributeurs non fiables**  
Un contributeur non fiable est un utilisateur dont le rôle n'est pas défini dans la liste des rôles d'approbateur. Lorsqu'une contribution non fiable crée une pull request :  

1. CodeBuild marque l'état de construction comme « Echec » avec le message « Pull request approval required for start a build ».

1. Un contributeur fiable doit examiner les modifications et publier un commentaire `/codebuild_run(<SHA_OF_THE_LATEST_COMMIT>)` pour déclencher le build. Par exemple, `/codebuild_run(046e8b67481d53bdc86c3f6affdd5d1afae6d369)`.

1. CodeBuild valide les autorisations du commentateur et déclenche le build s'il est approuvé.

1. Les résultats du build sont reportés sur la page de pull request.

**Syntaxe d'approbation des commentaires**  
Les contributeurs fiables peuvent approuver les versions en utilisant les formats de commentaires suivants :  
+ `/codebuild_run(046e8b67481d53bdc86c3f6affdd5d1afae6d369)`- Les déclencheurs sont basés sur le commit SHA spécifié.

## Configuration
<a name="pull-request-build-policy.configuration"></a>

**Comportement par défaut**  
La politique de construction par pull request est activée par défaut pour tous les CodeBuild projets nouvellement créés.

**Paramètres d'API**  
La politique de génération de pull request est configurée à l'aide du `PullRequestBuildPolicy` paramètre dans les actions suivantes :  
+ `CreateWebhook`
+ `UpdateWebhook`

**`PullRequestBuildPolicy`structure**  

```
{
    "requiresCommentApproval": "string",
    "approverRoles": ["string", ...]
}
```

**`requiresCommentApproval`**  
Spécifie à quel moment une approbation basée sur des commentaires est requise avant de déclencher un build sur des pull requests. Ce paramètre détermine si les builds s'exécutent automatiquement ou nécessitent une approbation explicite par le biais de commentaires.  
Type : chaîne  
Valeurs valides :  
+ `DISABLED`- Les builds se déclenchent automatiquement sans nécessiter l'approbation des commentaires.
+ `FORK_PULL_REQUESTS`- Seules les pull requests provenant de référentiels bifurqués nécessitent l'approbation des commentaires (sauf si le contributeur est l'un des rôles d'approbateur).
+ `ALL_PULL_REQUESTS`- Toutes les pull requests nécessitent l'approbation des commentaires avant l'exécution des builds (sauf si le contributeur est l'un des rôles d'approbateur). C’est la valeur par défaut.

**`approverRoles`**  
Liste des rôles de référentiel dotés de privilèges d'approbation pour les versions de pull request lorsque l'approbation des commentaires est requise. Seuls les utilisateurs dotés de ces rôles peuvent fournir des approbations de commentaires valides. Si un contributeur de pull request est l'un de ces rôles, ses builds de pull request se déclencheront automatiquement.   
Type : tableau de chaînes  
Valeurs valides pour les GitHub projets (les valeurs sont mappées aux GitHub rôles) :  
+ `GITHUB_ADMIN`- Administrateurs de référentiels
+ `GITHUB_MAINTAIN`- Mainteneurs de référentiels
+ `GITHUB_WRITE`- Utilisateur disposant d'autorisations d'écriture
+ `GITHUB_TRIAGE`- Utilisateur disposant d'autorisations de triage
+ `GITHUB_READ`- Utilisateur autorisé à lire
+ Par défaut : `["GITHUB_ADMIN", "GITHUB_MAINTAINER", "GITHUB_WRITE"]`
Valeurs valides pour les GitLab projets (les valeurs sont mappées aux GitLab rôles) :  
+ `GITLAB_OWNER`- Propriétaire du référentiel
+ `GITLAB_MAINTAINER`- Mainteneur du référentiel
+ `GITLAB_DEVELOPER`- Utilisateur disposant d'autorisations de développeur
+ `GITLAB_REPORTER`- Utilisateur ayant des autorisations de journaliste
+ `GITLAB_PLANNER`- Utilisateur disposant d'autorisations de planification
+ `GITLAB_GUEST `- Utilisateur autorisé en tant qu'invité
+ Par défaut : `["GITLAB_OWNER", "GITLAB_MAINTAINER", "GITLAB_DEVELOPER"]`
Valeurs valides pour les projets Bitbucket (les valeurs sont mappées aux rôles Bitbucket) :  
+ `BITBUCKET_ADMIN `- Administrateur du référentiel
+ `BITBUCKET_WRITE`- Utilisateur disposant d'autorisations d'écriture
+ `BITBUCKET_READ `- Utilisateur autorisé à lire
+ Par défaut : `["BITBUCKET_ADMIN", "BITBUCKET_WRITE"]`

## Exemples
<a name="pull-request-build-policy.examples"></a>

**Activer l'approbation des commentaires pour toutes les pull requests**  
Pour utiliser le AWS CodeBuild SDK afin d'activer ou de désactiver la politique Pull Request Build pour un webhook, utilisez le `pullRequestBuildPolicy` 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 *.  
Les utilisateurs ayant les rôles d'administrateur, de maintenance et d'écriture sur Github seront traités comme des contributeurs de confiance.  

```
"pullRequestBuildPolicy": {
    "requiresCommentApproval": "ALL_PULL_REQUESTS",
    "approverRoles": ["GITHUB_ADMIN", "GITHUB_MAINTAIN", "GITHUB_WRITE"]
}
```

**Activer l'approbation des commentaires uniquement pour les administrateurs et les responsables du référentiel**  
Les utilisateurs ayant GitHub les rôles Admin, Maintain, seront traités comme des contributeurs de confiance.  

```
"pullRequestBuildPolicy": {
    "requiresCommentApproval": "FORK_PULL_REQUESTS",
    "approverRoles": ["GITHUB_ADMIN", "GITHUB_MAINTAINER"]
}
```

**Désactiver l'approbation des commentaires**  

```
"pullRequestBuildPolicy": { 
    "requiresCommentApproval": "DISABLED"
}
```

## AWS CloudFormation
<a name="pull-request-build-policy.cloudformation"></a>

Pour utiliser un AWS CloudFormation modèle afin d'activer ou de désactiver la politique Pull Request Build pour un webhook, utilisez la PullRequestBuildPolicy propriété. La partie suivante d'un AWS CloudFormation modèle au format YAML crée un projet avec un webhook pour lequel la politique de génération de demandes d'extraction est activée pour toutes les pull requests. Rôles de maintenance et d'administration tels que spécifiés en tant qu'approbateurs.

```
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
      PullRequestBuildPolicy:
        RequiresCommentApproval: ALL_PULL_REQUESTS
        ApproverRoles:
          - GITHUB_MAINTAIN
          - GITHUB_ADMIN
```

## Configuration de la console
<a name="pull-request-build-policy.console"></a>

Pour utiliser la console de AWS gestion afin de filtrer les événements du webhook, procédez comme suit :

1. Pour **l'approbation des commentaires**, sélectionnez Désactivé ou activé pour toutes les pull requests (`ALL_PULL_REQUEST`) ou uniquement pour les pull requests provenant de forks (`FORK_PULL_REQUEST`).

1. Pour les **rôles d'approbateur**, sélectionnez des rôles de référentiel dotés de privilèges d'approbation pour les versions de pull request lorsque l'approbation des commentaires est requise.

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 CodeBuild *.

![\[Console d'événements Webhook source principale avec approbation des commentaires.\]](http://docs.aws.amazon.com/fr_fr/codebuild/latest/userguide/images/pull-request-comment-approval.png)
