

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.

# 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)
