AWS CodeCommit n'est plus disponible pour les nouveaux clients. Les clients existants de AWS CodeCommit peuvent continuer à utiliser le service normalement. En savoir plus »
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 AWS CLI 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, consultez Autorisations pour les actions sur les modèles de règles d'approbation etAWS politiques gérées pour CodeCommit.
Rubriques
Création d'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)
Ouvrez la CodeCommit console sur https://console.aws.amazon.com/codesuite/codecommit/home
. -
Choisissez Approval rule templates (Modèles de règles d'approbation), puis Create template (Créer un modèle).
-
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
. -
(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.
-
Dans Number of approvals needed (Nombre d'approbations nécessaires), entrez le nombre souhaité. La valeur par défaut est 1.
-
(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 nécessite uniquement un nom. Il peut être utilisé à la fois pour les utilisateurs IAM et les utilisateurs à 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écifiez
Mary_Major
, tous les éléments suivants sont considéré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 comme 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 AWS services, tels que AWS Lambda et AWS CodeBuild. Pour les rôles assumés, le format de l'ARN doit être
arn:aws:sts::
pour les rôles etAccountID
:assumed-role/RoleName
arn:aws:sts::
pour les fonctions.AccountID
:assumed-role/FunctionName
Si vous avez choisi le nom d'utilisateur IAM ou le rôle assumé comme type d'approbateur, dans Value, 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 IAM ou rôle assumé, et que vous le spécifiez
CodeCommitReview/*
, 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ôleCodeCommitReview
. Pour plus d'informations sur l'IAM ARNs, les caractères génériques et les formats, consultez la section Identifiants IAM.Note
Les règles d'approbation ne prennent pas en charge les approbations entre comptes.
-
-
(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 le spécifiez
main
, une règle d'approbation est créée pour les pull requests dans les référentiels associés uniquement si la branche de destination de la pull request est une branche nomméemain
. 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é. -
(Facultatif) Dans Référentiels associés, dans la liste Référentiels, choisissez les référentiels Ré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 de plus amples informations, veuillez consulter Associer un modèle de règle d'approbation à un référentiel.
-
Sélectionnez Créer.

Création d'un modèle de règle d'approbation (AWS CLI)
Vous pouvez utiliser le AWS CLI pour créer des modèles de règles d'approbation. Lorsque vous utilisez le AWS CLI, vous pouvez spécifier des références de destination pour le modèle, afin qu'il ne s'applique qu'aux pull requests dont les branches de destination correspondent à celles du modèle.
Pour créer un modèle de règle d'approbation (AWS CLI)
-
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 à 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 le AWS compte 123456789012 et
Mary_Major
que tous les éléments suivants sont considéré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 comme Mary_Major ()
arn:aws:sts::123456789012:federated-user/Mary_Major
Cette option ne reconnaît pas une session active d'une personne jouant le rôle de
SeniorDevelopers
avec un nom de session de rôleMary_Major
(arn:aws:sts::123456789012:assumed-role/
), sauf si vous incluez un caractère générique (SeniorDevelopers
/Mary_Major
*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 l'IAM ARNs, les caractères génériques et les formats, consultez la section Identifiants IAM.
L'exemple suivant crée un modèle de règle d'approbation nommé
2-approver-rule-for-main
et une descriptionRequires 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ôleCodeCommitReview
approuvent toute demande d'extraction pour qu'elle puisse être fusionnée avec la branchemain
: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/*\"]}]}" -
-
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" } }