View a markdown version of this page

Pull request : approbation des commentaires - AWS CodeBuild

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.

Pull request : approbation des commentaires

CodeBuild prend en charge les politiques de génération de demandes d'extraction qui fournissent un contrôle supplémentaire sur les versions déclenchées par les demandes d'extraction. Il se peut que vous ne souhaitiez pas créer automatiquement des pull requests provenant d'utilisateurs inconnus tant que leurs modifications n'auront pas été 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 de code soumis par des contributeurs inconnus.

Les politiques de génération des demandes d'extraction vous permettent de contrôler le moment où les CodeBuild déclencheurs sont créés pour les demandes d'extraction en fonction des autorisations et du statut d'approbation du contributeur. Ceci est particulièrement important pour les dépôts publics ou les référentiels qui acceptent des contributions de collaborateurs externes.

Lorsqu'elle est activée, cette fonctionnalité garantit que les builds ne sont déclenchés que pour les pull requests lorsque :

  • 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 des sources est défini dans la politique basée sur les demandes d'extraction en tant que rôle d'approbateur. Lorsqu'un contributeur de confiance crée une pull request, CodeBuild déclenche automatiquement la génération, 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'un contributeur non fiable crée une pull request :

  1. CodeBuild marque l'état de construction comme « Échec » avec le message « L'approbation de la demande d'extraction est requise pour démarrer une construction ».

  2. Un contributeur de confiance doit examiner les modifications et publier un commentaire /codebuild_run(<SHA_OF_THE_LATEST_COMMIT>) pour déclencher la construction. Par exemple, /codebuild_run(046e8b67481d53bdc86c3f6affdd5d1afae6d369).

  3. CodeBuild valide les autorisations du commentateur et déclenche la création si elle est approuvée.

  4. Les résultats de construction sont reportés sur la page de demande d'extraction.

Syntaxe d'approbation des commentaires

Les contributeurs de confiance peuvent approuver les builds à l'aide des formats de commentaires suivants :

  • /codebuild_run(046e8b67481d53bdc86c3f6affdd5d1afae6d369)- Les déclencheurs sont basés sur le commit SHA spécifié.

Configuration

Comportement par défaut

La politique de génération des demandes d'extraction 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 la pull request est configurée à l'aide du PullRequestBuildPolicy paramètre dans les actions suivantes :

  • CreateWebhook

  • UpdateWebhook

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

Spécifie quand une approbation basée sur les commentaires est requise avant de déclencher une compilation sur les pull requests. Ce paramètre détermine si les builds s'exécutent automatiquement ou nécessitent une approbation explicite via des commentaires.

Type : chaîne

Valeurs valides :

  • DISABLED- Construit un déclencheur automatiquement sans nécessiter l'approbation des commentaires.

  • FORK_PULL_REQUESTS- Seules les demandes d'extraction provenant de référentiels bifurqués nécessitent l'approbation des commentaires (sauf si le rôle du contributeur est l'un des approbateurs).

  • 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 builds 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 joue 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 du référentiel

  • GITHUB_MAINTAIN- Mainteneurs du référentiel

  • GITHUB_WRITE- Utilisateur disposant d'autorisations d'écriture

  • GITHUB_TRIAGE- Utilisateur disposant d'autorisations de triage

  • GITHUB_READ- Utilisateur disposant d'autorisations de lecture

  • Valeur par défaut : ["GITHUB_ADMIN", "GITHUB_MAINTAIN", "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 des autorisations de développeur

  • GITLAB_REPORTER- Utilisateur disposant des autorisations de journaliste

  • GITLAB_PLANNER- Utilisateur disposant des autorisations du planificateur

  • GITLAB_GUEST - Utilisateur avec autorisations d'invité

  • Valeur 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 disposant d'autorisations de lecture

  • Valeur par défaut : ["BITBUCKET_ADMIN", "BITBUCKET_WRITE"]

Rôles GitHub d'entreprise personnalisés

CodeBuild associe les rôles de référentiel GitHub Enterprise (GHE) personnalisés aux GITHUB_* valeurs standard en fonction du niveau d'autorisation le plus élevé accordé au rôle personnalisé. CodeBuild évalue les autorisations du privilège le plus élevé au plus faible, et la première autorisation activée détermine le rôle mappé.

  • adminGITHUB_ADMIN

  • maintainGITHUB_MAINTAIN

  • push(écrire) → GITHUB_WRITE

  • triageGITHUB_TRIAGE

  • pull(lire) → GITHUB_READ

Par exemple, un rôle personnalisé qui accorde à la fois push et triage des autorisations correspond à GITHUB_WRITE parce que push possède des privilèges plus élevés quetriage.

Si un rôle personnalisé ne possède aucune des autorisations reconnues (admin, maintain, push, triage, pull all disabled), l'utilisateur ne correspond à aucun rôle d'approbateur et est traité comme un contributeur non fiable.

GitHub Les rôles standard (Admin, Maintain, Write, Triage, Read) correspondent directement à leurs GITHUB_* valeurs correspondantes sans résolution basée sur les autorisations.

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 pullRequestBuildPolicy champ dans la syntaxe de requête des méthodes CreateWebhook ou de l'UpdateWebhookAPI. Pour plus d’informations, consultez WebhookFilter dans la Référence d’API CodeBuild .

Les utilisateurs ayant GitHub les rôles Admin, Maintain et Write seront traités comme des contributeurs fiables.

"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 et Maintain seront traités comme des contributeurs de confiance.

"pullRequestBuildPolicy": { "requiresCommentApproval": "FORK_PULL_REQUESTS", "approverRoles": ["GITHUB_ADMIN", "GITHUB_MAINTAIN"] }
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 YAML-formatted partie suivante d'un AWS CloudFormation modèle crée un projet avec un webhook pour lequel la politique de génération des demandes d'extraction est activée pour toutes les demandes d'extraction. Les rôles de maintenance et d'administration sont 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 :

  1. Pour l'approbation des commentaires, sélectionnez Désactivé ou Activé pour toutes les demandes d'extraction (ALL_PULL_REQUEST) ou uniquement pour les demandes d'extraction provenant de forks (FORK_PULL_REQUEST).

  2. Pour les rôles d'approbateur, sélectionnez les rôles de référentiel dotés de privilèges d'approbation pour les créations de demandes d'extraction 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 .

Console d'événements Webhook source principale avec approbation des commentaires.