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
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
- 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 :
-
CodeBuild marque l'état de construction comme « Echec » avec le message « Pull request approval required for start a build ».
-
Un contributeur fiable doit examiner les modifications et publier un commentaire
/codebuild_run(pour déclencher le build. Par exemple,<SHA_OF_THE_LATEST_COMMIT>)/codebuild_run(.046e8b67481d53bdc86c3f6affdd5d1afae6d369) -
CodeBuild valide les autorisations du commentateur et déclenche le build s'il est approuvé.
-
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(- Les déclencheurs sont basés sur le commit SHA spécifié.046e8b67481d53bdc86c3f6affdd5d1afae6d369)
-
Configuration
- 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
PullRequestBuildPolicyparamètre dans les actions suivantes :-
CreateWebhook -
UpdateWebhook
-
PullRequestBuildPolicystructure-
{ "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
- 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
pullRequestBuildPolicychamp dans la syntaxe de demande des méthodesCreateWebhookou de l'UpdateWebhookAPI. Pour plus d’informations, consultez WebhookFilter 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
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
Pour utiliser la console de AWS gestion afin de filtrer les événements du webhook, procédez comme suit :
-
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). -
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) et WebhookFilter (français non garanti) de la Référence d'API CodeBuild .