

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.

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