Criar uma regra de aprovação para uma solicitação pull - AWS CodeCommit

AWS CodeCommit não está mais disponível para novos clientes. Os clientes atuais do AWS CodeCommit podem continuar usando o serviço normalmente. Saiba mais

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Criar uma regra de aprovação para uma solicitação pull

A criação de regras de aprovação de solicitações pull ajuda a garantir a qualidade do seu código, exigindo que os usuários aprovem a solicitação pull para que o código possa ser mesclado à ramificação de destino. É possível especificar o número de usuários que devem aprovar uma solicitação pull. Também é possível especificar um grupo de aprovações de usuários para a regra. Se você fizer isso, somente as aprovações desses usuários contarão para o número de aprovações necessárias para a regra.

nota

Também é possível criar modelos de regras de aprovação que podem ajudar a automatizar a criação de regras de aprovação em vários repositórios. Para obter mais informações, consulte Trabalhar com modelos de regra de aprovação.

É possível usar o console do AWS CodeCommit ou o AWS CLI para criar regras de aprovação para seu repositório.

Criar uma regra de aprovação de uma solicitação pull (console)

É possível usar o console do CodeCommit para criar uma regra de aprovação de uma solicitação pull em um repositório do CodeCommit.

  1. Abra o console do CodeCommit em https://console.aws.amazon.com/codesuite/codecommit/home.

  2. Em Repositories (Repositórios), escolha o nome do repositório onde você deseja criar uma regra de aprovação de uma solicitação pull.

  3. No painel de navegação, escolha Pull Requests.

  4. Escolha a solicitação pull da qual você deseja criar uma regra de aprovação na lista. Só é possível criar regras de aprovação de solicitações pull abertas.

    Uma lista de solicitações pull para um repositório no console do CodeCommit.
  5. Na solicitação pull, escolha Approvals (Aprovações) e selecione Create approval rule (Criar regra de aprovação).

  6. Em Rule name (Nome da regra), dê à regra um nome descritivo para que você saiba para que serve. Por exemplo, se você deseja exigir que duas pessoas aprovem uma solicitação pull para que ela possa ser mesclada, é possível nomear a regra Require two approvals before merge.

    nota

    Não é possível alterar o nome de uma regra de aprovação depois de criá-la.

    Em Number of approvals needed (Número de aprovações necessárias), insira o número desejado. O padrão é 1.

    Criar uma regra de aprovação de uma solicitação pull
  7. (Opcional) Se deseja exigir que as aprovações de uma solicitação pull sejam provenientes de um grupo específico de usuários, em Approval rule members (Membros da regra de aprovação), escolha Add (Adicionar). Em Approver type (Tipo de aprovador), escolha uma das seguintes opções:

    • Nome de usuário do IAM ou perfil assumido: essa opção preenche previamente o ID da conta da AWS com a conta que você usou para fazer login e requer apenas um nome. Ela pode ser usada para usuários de acesso federados e usuários do IAM cujos nomes correspondam ao nome fornecido. Essa é uma opção muito eficiente que oferece uma grande flexibilidade. Por exemplo, se você escolher essa opção, estiver conectado com a conta 123456789012 da Amazon Web Services e especificar Mary_Major, todos as opções a seguir contarão como aprovações provenientes desse usuário:

      • Um usuário do IAM na conta (arn:aws:iam::123456789012:user/Mary_Major)

      • Um usuário federado identificado no IAM como Mary_Major (arn:aws:sts::123456789012:federated-user/Mary_Major)

      Essa opção não reconhecerá uma sessão ativa de alguém que assume a função de CodeCommitReview com um nome de sessão de função de Mary_Major (arn:aws:sts::123456789012:assumed-role/CodeCommitReview/Mary_Major), a menos que você inclua um curinga (*Mary_Major). Você também pode especificar o nome da função explicitamente (CodeCommitReview/Mary_Major).

    • ARN totalmente qualificado: essa opção permite especificar o nome do recurso da Amazon (ARN) totalmente qualificado do perfil ou usuário do IAM. Essa opção também oferece suporte a funções assumidas usadas por outros serviços da AWS, como o AWS Lambda e o AWS CodeBuild. Para funções assumidas, o formato do ARN deve ser arn:aws:sts::AccountID:assumed-role/RoleName para funções (roles) e arn:aws:sts::AccountID:assumed-role/FunctionName funções (functions).

    Se você escolheu o nome de usuário do IAM ou perfil assumido como o tipo de aprovador, em Valor, insira o nome do perfil ou usuário do IAM, ou o ARN totalmente qualificado do usuário ou perfil. Escolha Add (Adicionar) novamente para adicionar mais usuários ou funções, até que você tenha adicionado todos os usuários ou funções cujas aprovações contam para o número de aprovações necessárias.

    Ambos os tipos de aprovadores permitem usar curingas (*) em seus valores. Por exemplo, se você escolher a opção nome de usuário do IAM ou perfil assumido e especificar CodeCommitReview/*, todos os usuários que assumirem o perfil de CodeCommitReview serão contados no grupo de aprovação. Os nomes de sessão de função individual são contabilizados no número necessário de aprovadores. Dessa forma, tanto Mary_Major quanto Li_Juan contarão como aprovações quando conectados e assumindo a função de CodeCommitReview. Para obter mais informações sobre ARNs, curingas e formatos do IAM, consulte Identificadores do IAM.

    nota

    As regras de aprovação não oferecem suporte a aprovações entre contas.

  8. Quando terminar de configurar a regra de aprovação, escolha Submit (Enviar).

Criar uma regra de aprovação de uma solicitação pull (AWS CLI)

Para usar comandos da AWS CLI com o CodeCommit, instale a AWS CLI. Para obter mais informações, consulte Referência da linha de comando.

Para criar uma regra de aprovação de uma solicitação pull em um repositório do CodeCommit

  1. Execute o comando create-pull-request-approval-rule, especificando:

    • O ID da solicitação pull (com a opção --id).

    • O nome da regra de aprovação (com a opção --approval-rule-name).

    • O conteúdo da regra de aprovação (com a opção --approval-rule-content).

    Ao criar a regra de aprovação, é possível especificar aprovadores em um grupo de aprovações de duas maneiras:

    • CodeCommitApprovers: essa opção exige apenas um recurso e uma conta da Amazon Web Services. Ela pode ser usada para usuários de acesso federados e usuários do IAM cujo nome corresponde ao nome do recurso fornecido. Essa é uma opção muito eficiente que oferece uma grande flexibilidade. Por exemplo, se você especificar a conta 123456789012 da Amazon Web Services e Mary_Major, todas as opções a seguir contam como aprovações provenientes desse usuário:

      • Um usuário do IAM na conta (arn:aws:iam::123456789012:user/Mary_Major)

      • Um usuário federado identificado no IAM como Mary_Major (arn:aws:sts::123456789012:federated-user/Mary_Major)

      Essa opção não reconhecerá uma sessão ativa de alguém que assume a função de CodeCommitReview com um nome de sessão de função de Mary_Major (arn:aws:sts::123456789012:assumed-role/CodeCommitReview/Mary_Major), a menos que você inclua um curinga (*Mary_Major).

    • ARN totalmente qualificado: essa opção permite especificar o nome do recurso da Amazon (ARN) totalmente qualificado do perfil ou usuário do IAM.

    Para obter mais informações sobre ARNs, curingas e formatos do IAM, consulte Identificadores do IAM.

    O exemplo a seguir cria uma regra de aprovação chamada Require two approved approvers de uma solicitação pull com o ID 27. A regra especifica que duas aprovações são necessárias de um grupo de aprovações. O grupo inclui todos os usuários que acessam o CodeCommit e assumem um perfil de CodeCommitReview na conta 123456789012 da Amazon Web Services. Ele também inclui um usuário federado ou usuário do IAM chamado Nikhil_Jayashankar na mesma conta da 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. Se houver êxito, o comando gerará uma saída semelhante à seguinte:

    { "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" } }