Création d'une règle d'approbation pour une demande d'extraction - 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éation d'une règle d'approbation pour une demande d'extraction

La création de règles d'approbation pour vos demandes d'extraction permet d'assurer la qualité de votre code en exigeant que les utilisateurs approuvent la demande d'extraction pour que le code puisse être fusionné dans la branche de destination. Vous pouvez spécifier le nombre d'utilisateurs devant approuver une demande d'extraction. Vous pouvez également spécifier un groupe d'utilisateurs d'approbation pour la règle. Dans ce cas, seules les approbations de ces utilisateurs sont comptabilisées dans le nombre d'approbations requises pour la règle.

Note

Vous pouvez également créer des modèles de règles d'approbation, ce qui peut vous aider à automatiser la création de règles d'approbation entre les référentiels qui s'appliqueront à chaque demande d'extraction. Pour plus d'informations, consultez Utilisation des modèles de règles d'approbation.

Vous pouvez utiliser la console AWS CodeCommit ou l'AWS CLI pour créer des règles d'approbation pour votre référentiel.

Création d'une règle d'approbation pour une demande d'extraction (console)

Vous pouvez utiliser le plugin CodeCommit pour créer une règle d'approbation pour une demande d'extraction dans un CodeCommit repository.

  1. Ouverture d' CodeCommit Consolehttps://console.aws.amazon.com/codesuite/codecommit/home.

  2. Dans Repositories (Référentiels), choisissez le nom du référentiel dans lequel vous souhaitez créer une règle d'approbation pour une demande d'extraction.

  3. Dans le volet de navigation, choisissez Pull Requests.

  4. Choisissez la demande d'extraction pour laquelle vous souhaitez créer une règle d'approbation dans la liste. Vous pouvez uniquement créer des règles d'approbation pour les demandes d'extraction ouvertes.

    Liste des demandes d'extraction pour un référentiel dans CodeCommit console
  5. Dans la demande d'extraction, choisissez Approvals (Approbations), puis Create approval rule (Créer une règle d'approbation).

  6. Dans Rule name (Nom de la règle), donnez un nom descriptif à la règle afin que vous sachiez quel est son rôle. Par exemple, si vous souhaitez que deux personnes approuvent une demande d'extraction pour qu'elle puisse être fusionnée, vous pouvez nommer la règle Require two approvals before merge.

    Note

    Vous ne pouvez pas modifier le nom d'une règle d'approbation après sa création.

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

    Création d'une règle d'approbation pour une demande d'extraction
  7. (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 IAM ou rôle assumé : Cette option préremplit leAWSavec le compte que vous avez utilisé pour vous connecter et ne requiert qu'un nom. Elle peut être utilisée à la fois pour les utilisateurs IAM et les utilisateurs d'accès fédérés dont le nom correspond au nom fourni. C'est une option très puissante qui offre beaucoup de flexibilité. Par exemple, si vous êtes connecté avec le compte Amazon Web Services et que vous choisissez cette option, si vous choisissez cette option, si vous choisissez cette option et que vous spécifiezMary_Major, tous les éléments suivants sont comptés comme des approbations provenant 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 pleinement qualifié : Cette option vous permet de spécifier l'ARN (Amazon Resource Name) 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 choisiNom d'utilisateur IAM ou rôle assumécomme type d'approbateur, dansValeur, 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 choisissezNom d'utilisateur IAM ou rôle assuméoption, et vous spécifiezCodeCommitReview/*, tous les utilisateurs qui assument le rôle deCodeCommitReviewsont comptabilisés 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 de plus amples informations sur les ARN, les caractères génériques et les formats IAM, consultezIdentifiants IAM.

    Note

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

  8. Lorsque vous avez terminé de configurer la règle d'approbation, choisissez Submit (Envoyer).

Création d'une règle d'approbation pour une demande d'extraction (AWS CLI)

Pour utiliserAWS CLIcommandes avec CodeCommit, installezAWS CLI. Pour plus d'informations, consultez Référence des commandes en ligne.

Pour créer une règle d'approbation pour une demande d'extraction dans un CodeCommit référentiel

  1. Exécutez la commande create-pull-request-approval-rule en indiquant :

    • L'ID de la demande d'extraction (avec l'option --id).

    • Le nom de la règle d'approbation (avec l'option --approval-rule-name).

    • Le contenu de la règle d'approbation (avec l'option --approval-rule-content).

    Lorsque vous créez 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 et une ressource Amazon Web Services. Elle peut être utilisée à la fois pour les utilisateurs IAM et les utilisateurs d'accès fédérés 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 le compte Amazon Web Services 123456789012 etMary_Major, tous les éléments suivants sont comptés comme des approbations provenant 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).

    • ARN pleinement qualifié : Cette option vous permet de spécifier l'ARN (Amazon Resource Name) complet de l'utilisateur ou du rôle IAM.

    Pour de plus amples informations sur les ARN, les caractères génériques et les formats IAM, consultezIdentifiants IAM.

    L'exemple suivant montre comment créer une règle d'approbation nomméeRequire two approved approverspour une demande d'extraction ayant l'ID27. La règle spécifie que deux approbations sont requises à partir d'un groupe d'approbation. Le groupe inclut tous les utilisateurs qui accèdent à CodeCommit et assumez le rôle deCodeCommitReviewdans le123456789012Compte Amazon Web Services. Elle inclut également un utilisateur IAM ou un utilisateur fédéré nomméNikhil_Jayashankardans le même compte Amazon Web Services :

    aws codecommit create-pull-request-approval-rule --pull-request-id 27 --approval-rule-name "Require two approved approvers" --approval-rule-content "{\"Version\": \"2018-11-08\",\"Statements\": [{\"Type\": \"Approvers\",\"NumberOfApprovalsNeeded\": 2,\"ApprovalPoolMembers\": [\"CodeCommitApprovers:123456789012:Nikhil_Jayashankar\", \"arn:aws:sts::123456789012:assumed-role/CodeCommitReview/*\"]}]}"
  2. Si elle aboutit, cette commande produit une sortie similaire à ce qui suit :

    { "approvalRule": { "approvalRuleName": "Require two approved approvers", "lastModifiedDate": 1570752871.932, "ruleContentSha256": "7c44e6ebEXAMPLE", "creationDate": 1570752871.932, "approvalRuleId": "aac33506-EXAMPLE", "approvalRuleContent": "{\"Version\": \"2018-11-08\",\"Statements\": [{\"Type\": \"Approvers\",\"NumberOfApprovalsNeeded\": 2,\"ApprovalPoolMembers\": [\"CodeCommitApprovers:123456789012:Nikhil_Jayashankar\", \"arn:aws:sts::123456789012:assumed-role/CodeCommitReview/*\"]}]}", "lastModifiedUser": "arn:aws:iam::123456789012:user/Mary_Major" } }