Créer un modèle de règle d'approbation - AWS CodeCommit

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.

Créer un modèle de règle d'approbation

Vous pouvez créer un ou plusieurs modèles de règles d'approbation pour faciliter la personnalisation de vos workflows de développement entre les référentiels. En créant plusieurs modèles, vous pouvez configurer la création automatique des règles d'approbation de sorte que les différentes branches disposent des niveaux appropriés d'approbations et de contrôle. Par exemple, vous pouvez créer différents modèles pour les branches de production et de développement, et appliquer ces modèles à un ou plusieurs référentiels. Lorsque les utilisateurs créent des demandes d'extraction dans ces référentiels, la demande est évaluée par rapport à ces modèles. Si la demande correspond aux conditions des modèles appliqués, des règles d'approbation sont créées pour la demande d'extraction.

Vous pouvez utiliser la console ou l'AWS CLI pour créer des modèles de règles d'approbation. Pour plus d'informations sur les politiques gérées et les autorisations pour les modèles de règles d'approbation, consultezAutorisations pour les actions sur les modèles de règles d'approbation etAWS politiques gérées pour CodeCommit.

Pour créer un modèle de règle d'approbation (console)

Par défaut, les modèles de règles d'approbation ne sont associés à aucun référentiel. Vous pouvez créer une association entre un modèle et un ou plusieurs référentiels lorsque vous créez le modèle, ou ajouter des associations ultérieurement.

Pour créer un modèle de règle d'approbation (console)

  1. Ouvrez laCodeCommit console à l'adresse https://console.aws.amazon.com/codesuite/codecommit/home.

  2. Choisissez Approval rule templates (Modèles de règles d'approbation), puis Create template (Créer un modèle).

  3. Dans Approval rule template name (Nom du modèle de règle d'approbation), donnez au modèle un nom descriptif afin de savoir quel est son rôle. Par exemple, si vous souhaitez qu'une personne faisant partie d'un ensemble de développeurs seniors approuve une demande d'extraction pour qu'elle puisse être fusionnée, vous pouvez nommer la règle Require 1 approver from a senior developer.

  4. (Facultatif) Dans Description, fournissez une description de l'objet de ce modèle. Cela peut aider d'autres personnes à déterminer si ce modèle convient à leurs référentiels.

  5. Dans Number of approvals needed (Nombre d'approbations nécessaires), entrez le nombre souhaité. La valeur par défaut est 1.

  6. (Facultatif) Si vous souhaitez que les approbations d'une demande d'extraction proviennent d'un groupe d'utilisateurs spécifique, dans Approval rule members (Membres de règle d'approbation), choisissez Add (Ajouter). Dans Approver type (Type d'approbateur), choisissez l'une des options suivantes :

    • Nom d'utilisateur ou rôle assumé par IAM : cette option préremplit l'identifiant du compte Amazon Web Services pour le compte que vous avez utilisé pour vous connecter et ne nécessite qu'un nom. Il peut être utilisé à la fois pour les utilisateurs IAM et les utilisateurs d'accès fédéré dont le nom correspond au nom fourni. C'est une option très puissante qui offre beaucoup de flexibilité. Par exemple, si vous choisissez cette option et que vous êtes connecté avec le compte Amazon Web Services 123456789012, et que vous le spécifiezMary_Major, tous les éléments suivants sont considérés comme des approbations émanant de cet utilisateur :

      • Un utilisateur IAM dans le compte (arn:aws:iam::123456789012:user/Mary_Major)

      • Un utilisateur fédéré identifié dans IAM sous le nom de Mary_Major (arn:aws:sts::123456789012:federated-user/Mary_Major)

      Cette option ne reconnaît pas une session active d'une personne assumant le rôle CodeCommitReview avec le nom de session de rôle Mary_Major (arn:aws:sts::123456789012:assumed-role/CodeCommitReview/Mary_Major), sauf si vous incluez un caractère générique (*Mary_Major). Vous pouvez également spécifier explicitement le nom du rôle (CodeCommitReview/Mary_Major).

    • ARN complet : cette option vous permet de spécifier le nom de ressource Amazon (ARN) complet de l'utilisateur ou du rôle IAM. Cette option prend également en charge les rôles assumés utilisés par d'autres services AWS, comme AWS Lambda et AWS CodeBuild. Pour les rôles assumés, le format de l'ARN doit être arn:aws:sts::AccountID:assumed-role/RoleName pour les rôles et arn:aws:sts::AccountID:assumed-role/FunctionName pour les fonctions.

    Si vous avez choisi le nom d'utilisateur ou le rôle assumé IAM comme type d'approbateur, dans Valeur, entrez le nom de l'utilisateur ou du rôle IAM ou l'ARN complet de l'utilisateur ou du rôle. Choisissez à nouveau Add (Ajouter) pour ajouter d'autres utilisateurs ou rôles, jusqu'à ce que vous ayez ajouté tous les utilisateurs ou rôles dont les approbations comptent dans le nombre d'approbations requises.

    Les deux types d'approbateur vous permettent d'utiliser des caractères génériques (*) dans leurs valeurs. Par exemple, si vous choisissez l'option nom d'utilisateur ou rôle assumé IAM et que vous le spécifiezCodeCommitReview/*, tous les utilisateurs qui assument le rôle deCodeCommitReview sont pris en compte dans le pool d'approbation. Leurs noms de session de rôle individuels sont pris en compte dans le nombre requis d'approbateurs. De cette façon, Mary_Major et Li_Juan comptent comme approbations lorsqu'elles sont connectées et assument le rôle CodeCommitReview. Pour plus d'informations sur les ARN IAM, les caractères génériques et les formats, consultez identifiants IAM.

    Note

    Les règles d'approbation ne prennent pas en charge les approbations entre comptes.

  7. (Facultatif) Dans Branch filters (Filtres de branche), entrez les noms de branche de destination à utiliser pour filtrer la création de règles d'approbation. Par exemple, si vous spécifiez main, une règle d'approbation est créée pour les demandes d'extraction dans les référentiels associés uniquement si la branche de destination de la demande d'extraction est une branche nommée main. Vous pouvez utiliser des caractères génériques (*) dans les noms de branche pour appliquer des règles d'approbation à tous les noms de branche qui correspondent aux cas génériques. Toutefois, vous ne pouvez pas utiliser de caractère générique au début d'un nom de branche. Vous pouvez spécifier jusqu'à 100 noms de branches. Si vous ne spécifiez aucun filtre, le modèle s'applique à toutes les branches d'un référentiel associé.

  8. (Facultatif) Dans Référentiels associés, dans la liste Référentiels, choisissez les référentielsRégion AWS que vous souhaitez associer à cette règle d'approbation.

    Note

    Vous pouvez choisir d'associer des référentiels après avoir créé le modèle. Pour plus d'informations, veuillez consulter Associer un modèle de règle d'approbation à un référentiel.

  9. Sélectionnez Créer.

Un modèle de règle d'approbation qui nécessite un approbateur issu d'une règle d'approbation définie si une pull request est créée sur une branche nommée main, associée à deux référentiels

Pour créer un modèle de règle d'approbation (AWS CLI)

Vous pouvez utiliser l'AWS CLI pour créer des modèles de règles d'approbation. Lorsque vous utilisez l'AWS CLI, vous pouvez spécifier des références de destination pour le modèle, de sorte qu'il ne s'applique qu'aux demandes d'extraction dont les branches de destination correspondent à celles du modèle.

Pour créer un modèle de règle d'approbation (AWS CLI)

  1. Depuis le terminal ou la ligne de commande, exécutez la commande create-approval-rule-template, en spécifiant :

    • Le nom du modèle de règle d'approbation. Utilisez un nom décrivant son rôle.

    • Une description du modèle de règle d'approbation. Comme pour le nom, fournissez une description détaillée.

    • La structure JSON du modèle de règle d'approbation. Cette structure peut inclure des exigences pour les références de destination, qui sont les branches de destination des demandes d'extraction pour lesquelles la règle d'approbation est appliquée, et les membres du groupe d'approbation, qui sont des utilisateurs dont les approbations sont comptabilisées dans le nombre d'approbations requises.

    Lorsque vous créez le contenu de la règle d'approbation, vous pouvez spécifier des approbateurs dans un groupe d'approbation de l'une des deux manières suivantes :

    • CodeCommitApprovers: cette option nécessite uniquement un compte Amazon Web Services et une ressource. Il peut être utilisé à la fois pour les utilisateurs IAM et les utilisateurs d'accès fédéré dont le nom correspond au nom de ressource fourni. C'est une option très puissante qui offre beaucoup de flexibilité. Par exemple, si vous spécifiez leAWS compte 123456789012 etMary_Major que tous les éléments suivants sont considérés comme des approbations émanant de cet utilisateur :

      • Un utilisateur IAM dans le compte (arn:aws:iam::123456789012:user/Mary_Major)

      • Un utilisateur fédéré identifié dans IAM sous le nom de Mary_Major (arn:aws:sts::123456789012:federated-user/Mary_Major)

      Cette option ne reconnaît pas la session active d'une personne assumant le rôle dont le nom de SeniorDeveloperssession de rôle est Mary_Major (arn:aws:sts::123456789012:assumed-role/SeniorDevelopers/Mary_Major), sauf si vous incluez un caractère générique (*Mary_Major).

    • ARN complet : cette option vous permet de spécifier le nom de ressource Amazon (ARN) complet de l'utilisateur ou du rôle IAM.

    Pour plus d'informations sur les ARN IAM, les caractères génériques et les formats, consultez identifiants IAM.

    L'exemple suivant crée un modèle de règle d'approbation nommé 2-approver-rule-for-main et une description Requires two developers from the team to approve the pull request if the destination branch is main. Le modèle requiert que deux utilisateurs assumant le rôle CodeCommitReview approuvent toute demande d'extraction pour qu'elle puisse être fusionnée avec la branche main :

    aws codecommit create-approval-rule-template --approval-rule-template-name 2-approver-rule-for-main --approval-rule-template-description "Requires two developers from the team to approve the pull request if the destination branch is main" --approval-rule-template-content "{\"Version\": \"2018-11-08\",\"DestinationReferences\": [\"refs/heads/main\"],\"Statements\": [{\"Type\": \"Approvers\",\"NumberOfApprovalsNeeded\": 2,\"ApprovalPoolMembers\": [\"arn:aws:sts::123456789012:assumed-role/CodeCommitReview/*\"]}]}"
  2. Si elle aboutit, cette commande renvoie une sortie similaire à ce qui suit :

    { "approvalRuleTemplate": { "approvalRuleTemplateName": "2-approver-rule-for-main", "creationDate": 1571356106.936, "approvalRuleTemplateId": "dd8b17fe-EXAMPLE", "approvalRuleTemplateContent": "{\"Version\": \"2018-11-08\",\"DestinationReferences\": [\"refs/heads/main\"],\"Statements\": [{\"Type\": \"Approvers\",\"NumberOfApprovalsNeeded\": 2,\"ApprovalPoolMembers\": [\"arn:aws:sts::123456789012:assumed-role/CodeCommitReview/*\"]}]}", "lastModifiedUser": "arn:aws:iam::123456789012:user/Mary_Major", "approvalRuleTemplateDescription": "Requires two developers from the team to approve the pull request if the destination branch is main", "lastModifiedDate": 1571356106.936, "ruleContentSha256": "4711b576EXAMPLE" } }