

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á.

# Trabalhando com pull requests em AWS CodeCommit repositórios
<a name="pull-requests"></a>

Uma solicitação de extração é a principal maneira para você e outros usuários de repositório analisarem, comentarem e mesclarem alterações de código de uma ramificação para outra. Você pode usar solicitações de extração para analisar alterações de código de maneira colaborativa em caso de alterações ou correções relativamente pequenas, adições significativas de recursos ou novas versões do seu software lançado. Aqui está um possível fluxo de trabalho para uma solicitação pull:

Li Juan, um desenvolvedor que trabalha em um repositório chamado MyDemoRepo, quer trabalhar em um novo recurso para uma próxima versão de um produto. Para manter seu trabalho separado do código pronto para produção, ela cria uma ramificação a partir da ramificação padrão e a nomeia. *feature-randomizationfeature* Ela escreve código, faz confirmações e envia o novo código de recurso por push para essa ramificação. Ela quer que outros usuários do repositório analisem o código para verificar a qualidade antes de ela mesclar suas alterações na ramificação padrão. Para isso, ela cria uma solicitação pull. A solicitação de extração contém a comparação entre sua ramificação de trabalho e a ramificação do código em que ela pretende mesclar as alterações (neste caso, a ramificação padrão). Ela também pode criar uma regra de aprovação que exige que um número especificado de usuários aprovem a solicitação pull. Ela pode até mesmo especificar um grupo de aprovações de usuários. Outros usuários analisam seu código e alterações adicionando comentários e sugestões. Ela pode atualizar sua ramificação de trabalho várias vezes com alterações de código em resposta aos comentários. Suas alterações são incorporadas ao pull request toda vez que ela as envia para essa ramificação. CodeCommit Ela também pode incorporar as alterações que foram feitas na ramificação de destino pretendida enquanto a solicitação de extração estiver aberta, para que os usuários possam ter certeza de que estão revisando todas as alterações propostas no contexto. Quando ela e seus revisores estiverem satisfeitos e as condições para as regras de aprovação (se houver) forem atendidas, ela ou um de seus revisores mescla o código e fecha a solicitação pull. 

![\[Criar uma solicitação pull\]](http://docs.aws.amazon.com/pt_br/codecommit/latest/userguide/images/codecommit-pull-request-create.png)


As solicitações de extraçãoexigem duas ramificações: uma ramificação de origem, que contém o código que você deseja analisar, e uma ramificação de destino, na qual você mescla o código revisado. A ramificação de origem contém a confirmação AFTER, que é a confirmação que contém as alterações que você deseja mesclar na ramificação de destino. A ramificação de destino contém a confirmação BEFORE, que representa o estado do código (antes de a ramificação da solicitação pull ser mesclada à ramificação de destino). A escolha da estratégia de mesclagem afeta os detalhes de como os commits são mesclados entre as ramificações de origem e destino no console. CodeCommit Para obter mais informações sobre estratégias de mesclagem em CodeCommit, consulte[Mesclar uma solicitação pull (console)](how-to-merge-pull-request.md#how-to-merge-pull-request-console).

![\[As ramificações de origem e de destino para solicitações de extração mostrando o relacionamento entre confirmações de antes e depois\]](http://docs.aws.amazon.com/pt_br/codecommit/latest/userguide/images/codecommit-pull-request-concepts.png)


A solicitação de extração exibe as diferenças entre a extremidade da ramificação de origem e a confirmação mais recente na ramificação de destino quando a solicitação de extração é criada para que os usuários possam visualizar e comentar sobre as alterações. Você pode atualizar a solicitação de extração em resposta a comentários confirmando e enviando alterações para a ramificação de origem. 

![\[Adicionar um comentário em um linha em uma solicitação pull.\]](http://docs.aws.amazon.com/pt_br/codecommit/latest/userguide/images/codecommit-pull-request-comment.png)


Quando o código for revisado e os requisitos da regra de aprovação (se houver) forem atendidos, será possível fechar a solicitação pull de várias maneiras: 
+ Mescle as ramificações localmente e faça push de suas alterações. Isso fecha a solicitação automaticamente se a estratégia de mesclagem encaminhada for usada e não houver conflitos de mesclagem.
+ Use o AWS CodeCommit console para fechar a pull request sem mesclar, resolver conflitos em uma mesclagem ou, se não houver conflitos, fechar e mesclar as ramificações usando uma das estratégias de mesclagem disponíveis.
+ Use a AWS CLI.

Antes de criar uma solicitação pull:
+ Verifique se você confirmou e enviou as alterações de código por push que você deseja que sejam revisadas a uma ramificação (a ramificação de origem).
+ Configure notificações para seu repositório para que outros usuários possam ser notificados sobre a solicitação de extração e alterações feitas a ela. (Esta etapa é opcional, mas recomendada.)
+ Crie e associe modelos de regra de aprovação ao repositório para que as regras de aprovação sejam criadas automaticamente para solicitações pull a fim de ajudar a garantir a qualidade do código. Para obter mais informações, consulte [Trabalhar com modelos de regra de aprovação](approval-rule-templates.md).

As solicitações pull são mais eficientes quando você configura usuários do IAM para os usuários do repositório na conta da Amazon Web Services. É mais fácil identificar qual usuário fez qual comentário. A outra vantagem é que os usuários do IAM podem usar credenciais do Git para acessar o repositório. Para obter mais informações, consulte [Etapa 1: Configuração inicial para CodeCommit](setting-up-gc.md#setting-up-gc-account). Você pode usar solicitações de extração com outros tipos de usuários, incluindo usuários de acesso federado.

Para obter informações sobre como trabalhar com outros aspectos do seu repositório em CodeCommit[Trabalhar com repositórios](repositories.md), consulte[Trabalhar com modelos de regra de aprovação](approval-rule-templates.md),[Trabalhar com arquivos](files.md),[Trabalhar com confirmações](commits.md),[Como trabalhar com ramificações](branches.md), e. [Trabalhar com preferências do usuário](user-preferences.md) 

**Topics**
+ [Criar uma solicitação pull](how-to-create-pull-request.md)
+ [Criar uma regra de aprovação de uma solicitação pull](how-to-create-pull-request-approval-rule.md)
+ [Exibir pull requests em um AWS CodeCommit repositório](how-to-view-pull-request.md)
+ [Revisar uma solicitação pull](how-to-review-pull-request.md)
+ [Atualizar uma solicitação pull](how-to-update-pull-request.md)
+ [Editar ou excluir uma regra de aprovação de uma solicitação pull](how-to-edit-delete-pull-request-approval-rule.md)
+ [Substituir regras de aprovação em uma solicitação pull](how-to-override-approval-rules.md)
+ [Mesclar uma solicitação pull em um repositório do AWS CodeCommit](how-to-merge-pull-request.md)
+ [Resolver conflitos em uma solicitação pull em um repositório do AWS CodeCommit](how-to-resolve-conflict-pull-request.md)
+ [Fechar uma pull request em um AWS CodeCommit repositório](how-to-close-pull-request.md)

# Criar uma solicitação pull
<a name="how-to-create-pull-request"></a>

A criação de solicitações pull ajuda outros usuários a ver e revisar suas alterações de código antes de mesclá-las em outra ramificação. Primeiro, você cria uma ramificação para suas alterações de código. Ela é chamada de ramificação de origem para uma solicitação pull. Depois de confirmar e enviar alterações para o repositório, você pode criar uma solicitação pull que compara o conteúdo dessa ramificação (a ramificação de origem) com a ramificação em que deseja mesclar suas alterações após a solicitação pull ser fechada (a ramificação de destino). 

Você pode usar o console do AWS CodeCommit ou o AWS CLI para criar solicitações de extração para o repositório. 

**Topics**
+ [Criar uma solicitação pull (console)](#how-to-create-pull-request-console)
+ [Criar uma solicitação pull (AWS CLI)](#how-to-create-pull-request-cli)

## Criar uma solicitação pull (console)
<a name="how-to-create-pull-request-console"></a>

Você pode usar o console do CodeCommit para criar uma solicitação pull em um repositório do CodeCommit. Se o seu repositório estiver [configurado com notificações](how-to-repository-email.md), os usuários inscritos receberão um e-mail quando você criar uma solicitação pull.

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

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

1. No painel de navegação, escolha **Pull Requests**.
**dica**  
Você também pode criar solicitações pull em **Branches (Ramificações)** e em **Code (Código)**.

1. Escolha **Create pull request**.   
![\[Criar uma solicitação pull na página Solicitações pull no console do CodeCommit.\]](http://docs.aws.amazon.com/pt_br/codecommit/latest/userguide/images/codecommit-pull-request-view.png)

1. Em **Create pull request**, em **Source**, escolha a ramificação que contém as alterações que deseja revisar. 

1. Em **Destination (Destino)**, escolha a ramificação na qual você pretende mesclar suas alterações de código quando a solicitação pull for fechada. 

1. Escolha **Compare**. Uma comparação é executada nas duas ramificações, e as diferenças entre elas são exibidas. Uma análise também é realizada para determinar se as duas ramificações podem ser mescladas automaticamente quando a solicitação pull é fechada.

1. Analise os detalhes da comparação e as alterações para se certificar de que a solicitação pull contém as alterações e confirmações que você deseja analisar. Caso contrário, ajuste suas escolhas para as ramificações de origem e de destino e escolha **Compare** novamente.

1. Quando estiver satisfeito com os resultados da comparação para a solicitação pull, em **Title (Título)**, forneça um título curto, mas descritivo, para essa revisão. Este é o título que aparece na lista de solicitações pull para o repositório. 

1. (Opcional) Em **Description (Descrição)**, insira os detalhes sobre essa análise e qualquer outra informação útil para os revisores.

1. Escolha **Criar**.  
![\[Criar uma solicitação pull\]](http://docs.aws.amazon.com/pt_br/codecommit/latest/userguide/images/codecommit-pull-request-create.png)

Sua solicitação pull aparece na lista de solicitações pull para o repositório. Se você [configurou notificações](how-to-repository-email.md), os assinantes do tópico do Amazon SNS receberão um e-mail informando sobre a solicitação pull recém-criada.

## Criar uma solicitação pull (AWS CLI)
<a name="how-to-create-pull-request-cli"></a>

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](cmd-ref.md). 

**Para usar a AWS CLI para criar solicitações pull em um repositório do CodeCommit**
+ Execute o comando **create-pull-request**, especificando:
  + O nome da solicitação pull (com a opção **--title**).
  + A descrição da solicitação pull (com a opção **--description**).
  + Uma lista de destinos para o comando **create-pull-request**, incluindo:
    + O nome do repositório do CodeCommit em que a solicitação pull foi criada (com o atributo **repositoryName**).
    + O nome da ramificação que contém as alterações de código que você deseja analisar, também conhecida como ramificação de origem (com o atributo **sourceReference**).
    + Opcionalmente, o nome da ramificação na qual você pretende mesclar suas alterações de código, também conhecida como a ramificação de destino, se você não quiser mesclar a ramificação padrão (com o atributo **destinationReference**).
  + Um token de idempotência exclusivo gerado pelo cliente (com a opção **--client-request-token**). 

  Este exemplo cria uma solicitação pull chamada *Pronunciation difficulty analyzer (Analisador de dificuldade de pronúncia)* com uma descrição *Please review these changes by Tuesday (Revise essas alterações até terça-feira)* que tem como destino a ramificação de origem *jane-branch*. A solicitação pull deve ser mesclada com a ramificação padrão *principal* em um repositório do CodeCommit chamado `MyDemoRepo`:

  ```
  aws codecommit create-pull-request --title "Pronunciation difficulty analyzer" --description "Please review these changes by Tuesday" --client-request-token 123Example --targets repositoryName=MyDemoRepo,sourceReference=jane-branch 
  ```

# Criar uma regra de aprovação de uma solicitação pull
<a name="how-to-create-pull-request-approval-rule"></a>

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](approval-rule-templates.md).

Você pode usar o AWS CodeCommit console ou o AWS CLI para criar regras de aprovação para seu repositório. 

**Topics**
+ [Criar uma regra de aprovação de uma solicitação pull (console)](#how-to-create-pull-request-approval-rule-console)
+ [Criar uma regra de aprovação de uma solicitação pull (AWS CLI)](#how-to-create-pull-request-approval-rule-cli)

## Criar uma regra de aprovação de uma solicitação pull (console)
<a name="how-to-create-pull-request-approval-rule-console"></a>

Você pode usar o CodeCommit console para criar uma regra de aprovação para uma pull request em um CodeCommit repositório. 

1. Abra o CodeCommit console em [https://console.aws.amazon.com/codesuite/codecommit/home](https://console.aws.amazon.com/codesuite/codecommit/home).

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

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

1. 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 pull requests para um repositório no CodeCommit console.\]](http://docs.aws.amazon.com/pt_br/codecommit/latest/userguide/images/codecommit-pull-request-view.png)

1. Na solicitação pull, escolha **Approvals (Aprovações)** e selecione **Create approval rule (Criar regra de aprovação)**. 

1. 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 é um.   
![\[Criar uma regra de aprovação de uma solicitação pull\]](http://docs.aws.amazon.com/pt_br/codecommit/latest/userguide/images/codecommit-create-approval-rule.png)

1. (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\$1Major**, 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\$1Major (`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\$1Major (`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 AWS serviços, como AWS Lambda AWS CodeBuild e. 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 usuário ou perfil 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 (\$1) em seus valores. Por exemplo, se você escolher a opção **nome de usuário do IAM ou perfil assumido** e especificar **CodeCommitReview/\$1**, 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\$1Major quanto Li\$1Juan contarão como aprovações quando conectados e assumindo a função de `CodeCommitReview`. Para obter mais informações sobre IAM ARNs, curingas e formatos, consulte [Identificadores do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-arns).
**nota**  
As regras de aprovação não oferecem suporte a aprovações entre contas.

1. 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)
<a name="how-to-create-pull-request-approval-rule-cli"></a>

Para usar AWS CLI comandos com CodeCommit, instale AWS CLI o. Para obter mais informações, consulte [Referência da linha de comando](cmd-ref.md). 

## Para criar uma regra de aprovação para uma pull request em um CodeCommit repositório

+ 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 requer somente uma conta e um recurso 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\$1Major**, 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\$1Major (`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\$1Major (`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 IAM ARNs, curingas e formatos, consulte [Identificadores do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-arns).

  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 pool inclui todos os usuários que acessam CodeCommit e assumem a função **CodeCommitReview** na conta da `123456789012` 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/*\"]}]}"
  ```

# Exibir pull requests em um AWS CodeCommit repositório
<a name="how-to-view-pull-request"></a>

Você pode usar o AWS CodeCommit console ou o AWS CLI para visualizar pull requests para seu repositório. Por padrão, você vê somente solicitações de extração em aberto, mas pode alterar o filtro para exibir todas as solicitações de extração, somente as solicitações fechadas, somente as solicitações de extração que você criou e mais. 

**Topics**
+ [Visualização de solicitações pull (console)](#how-to-view-pull-request-console)
+ [Visualizar solicitações pull (AWS CLI)](#how-to-view-pull-request-cli)

## Visualização de solicitações pull (console)
<a name="how-to-view-pull-request-console"></a>

Você pode usar o AWS CodeCommit console para ver uma lista de pull requests em um CodeCommit repositório. Ao alterar o filtro, você pode alterar a exibição em lista para mostrar apenas um determinado conjunto de solicitações de extração. Por exemplo, você pode exibir uma lista de solicitações de extração que você criou com status de **Open** ou pode escolher um filtro diferente e exibir solicitações de extração que você criou com status de **Closed**.

1. Abra o CodeCommit console em [https://console.aws.amazon.com/codesuite/codecommit/home](https://console.aws.amazon.com/codesuite/codecommit/home).

1. Em **Repositories (Repositórios)**, escolha o nome do repositório onde você deseja visualizar solicitações de extração. 

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

1. Por padrão, é exibida uma lista de todas as solicitações de extração abertas.   
![\[Solicitações pull exibidas no AWS CodeCommit console.\]](http://docs.aws.amazon.com/pt_br/codecommit/latest/userguide/images/codecommit-pull-request-view-list.png)

1. Para alterar o filtro de exibição, escolha na lista de filtros disponíveis:
   + **All open requests (Todas as solicitações em aberto)** (padrão): exibe todas as solicitações de extração com status de **Open (Em aberto)**.
   + **All pull requests (Todas as solicitações de extração)**: exibe todas as solicitações de extração.
   + **All closed requests (Todas as solicitações fechadas)**: exibe todas as solicitações de extração com status de **Closed (Fechadas)**.
   + **My pull requests (Minhas solicitações de extração)**: exibe todas as solicitações de extração que você criou, independentemente do status. Ela não mostra revisões nas quais você comentou ou das quais participou.
   + **My open requests (Minhas solicitações em aberto)**: exibe todas as solicitações de extração que você criou cujo status é **Open (Aberto)**.
   + **My closed requests (Minhas solicitações fechadas)**: exibe todas as solicitações de extração que você criou cujo status é **Closed (Fechado)**.

1. Quando você encontrar uma solicitação pull na lista exibida que gostaria de exibir, escolha-a.

## Visualizar solicitações pull (AWS CLI)
<a name="how-to-view-pull-request-cli"></a>

Para usar AWS CLI comandos com CodeCommit, instale AWS CLI o. Para obter mais informações, consulte [Referência da linha de comando](cmd-ref.md). 

Siga estas etapas para usar o AWS CLI para visualizar pull requests em um CodeCommit repositório.

1. Para visualizar uma lista de solicitações de extração em um repositório, execute o comando **list-pull-requests** especificando:
   + O nome do CodeCommit repositório em que você deseja visualizar pull requests (com a **--repository-name** opção).
   + (Opcional) O status da solicitação pull (com a opção **--pull-request-status**).
   + (Opcional) O nome do recurso da Amazon (ARN) do usuário do IAM que criou a solicitação pull (com a opção **--author-arn**).
   + (Opcional) Um token de enumeração que pode ser usado para retornar lotes de resultados (com a opção **--next-token**) 
   + (Opcional) Um limite no número de resultados retornados por solicitação (com a opção **--max-results**).

   Por exemplo, para listar pull requests criadas por um usuário do IAM com o ARN *arn:aws:iam::111111111111:user/Li\$1Juan* e o status de *CLOSED* em um CodeCommit repositório chamado: `MyDemoRepo`

   ```
   aws codecommit list-pull-requests --author-arn arn:aws:iam::111111111111:user/Li_Juan --pull-request-status CLOSED --repository-name MyDemoRepo 
   ```

   Se houver êxito, o comando gerará uma saída semelhante à seguinte:

   ```
   {
      "nextToken": "",
      "pullRequestIds": ["2","12","16","22","23","35","30","39","47"]
   }
   ```

    IDs As solicitações pull são exibidas na ordem da atividade mais recente.

1. Para visualizar detalhes de uma solicitação pull específica, execute o comando **get-pull-request** com a opção **--pull-request-id** especificando o ID da solicitação pull. Por exemplo, para visualizar informações sobre uma pull request com o ID de*27*:

   ```
   aws codecommit get-pull-request --pull-request-id 27
   ```

   Se houver êxito, o comando gerará uma saída semelhante à seguinte:

   ```
   {
       "pullRequest": {
           "approvalRules": [
               {
                   "approvalRuleContent": "{\"Version\": \"2018-11-08\",\"Statements\": [{\"Type\": \"Approvers\",\"NumberOfApprovalsNeeded\": 2,\"ApprovalPoolMembers\": [\"arn:aws:sts::123456789012:assumed-role/CodeCommitReview/*\"]}]}",
                   "approvalRuleId": "dd8b17fe-EXAMPLE",
                   "approvalRuleName": "2-approver-rule-for-main",
                   "creationDate": 1571356106.936,
                   "lastModifiedDate": 571356106.936,
                   "lastModifiedUser": "arn:aws:iam::123456789012:user/Mary_Major",
                   "ruleContentSha256": "4711b576EXAMPLE"
               }
           ],
           "lastActivityDate": 1562619583.565,
           "pullRequestTargets": [
               {
                   "sourceCommit": "ca45e279EXAMPLE",
                   "sourceReference": "refs/heads/bugfix-1234",
                   "mergeBase": "a99f5ddbEXAMPLE",
                   "destinationReference": "refs/heads/main",
                   "mergeMetadata": {
                       "isMerged": false
                   },
                   "destinationCommit": "2abfc6beEXAMPLE",
                   "repositoryName": "MyDemoRepo"
               }
           ],
           "revisionId": "e47def21EXAMPLE",
           "title": "Quick fix for bug 1234",
           "authorArn": "arn:aws:iam::123456789012:user/Nikhil_Jayashankar",
           "clientRequestToken": "d8d7612e-EXAMPLE",
           "creationDate": 1562619583.565,
           "pullRequestId": "27",
           "pullRequestStatus": "OPEN"
       }
   }
   ```

1. <a name="get-pull-request-approval-state"></a>Para visualizar aprovações em uma solicitação pull, execute o comando **get-pull-request-approval-state**, especificando:
   + O ID da solicitação pull (usando a opção **--pull-request-id**).
   + O ID de revisão da solicitação pull (usando a **--revision-id option)**. É possível obter o ID de revisão atual para uma solicitação pull usando o comando [get-pull-request](#get-pull-request).

   Por exemplo, para ver as aprovações em uma pull request com um ID de *8* e um ID de revisão de*9f29d167EXAMPLE*:

   ```
   aws codecommit get-pull-request-approval-state --pull-request-id 8 --revision-id 9f29d167EXAMPLE
   ```

   Se houver êxito, o comando gerará uma saída semelhante à seguinte:

   ```
   {
       "approvals": [
           {
               "userArn": "arn:aws:iam::123456789012:user/Mary_Major",
               "approvalState": "APPROVE"
           }
       ]
   }
   ```

1. Para visualizar eventos de uma solicitação pull específica, execute o comando **describe-pull-request-events** com a opção **--pull-request-id** especificando o ID da solicitação pull. Por exemplo, para visualizar os eventos de uma pull request com o ID de*8*:

   ```
   aws codecommit describe-pull-request-events --pull-request-id 8
   ```

   Se houver êxito, o comando gerará uma saída semelhante à seguinte:

   ```
   {
       "pullRequestEvents": [
           {
               "pullRequestId": "8",
               "pullRequestEventType": "PULL_REQUEST_CREATED",
               "eventDate": 1510341779.53,
               "actor": "arn:aws:iam::111111111111:user/Zhang_Wei"
           },
           {
               "pullRequestStatusChangedEventMetadata": {
                   "pullRequestStatus": "CLOSED"
               },
               "pullRequestId": "8",
               "pullRequestEventType": "PULL_REQUEST_STATUS_CHANGED",
               "eventDate": 1510341930.72,
               "actor": "arn:aws:iam::111111111111:user/Jane_Doe"
           }
       ]
   }
   ```

1. Para visualizar se há conflitos de mesclagem para uma solicitação pull, execute o comando **get-merge-conflicts** especificando:
   + O nome do CodeCommit repositório (com a **--repository-name** opção).
   + A ramificação, tag, HEAD ou outra referência totalmente qualificada para a origem das alterações a serem usadas na avaliação da mesclagem (com a opção **--source-commit-specifier**).
   + A ramificação, tag, HEAD ou outra referência totalmente qualificada para o destino das alterações a serem usadas na avaliação da mesclagem (com a opção **--destination-commit-specifier**).
   + A opção de mesclagem a ser usada (com a opção **--merge-option**) 

   Por exemplo, para ver se há algum conflito de mesclagem entre a ponta de uma ramificação de origem chamada *my-feature-branch* e uma ramificação de destino nomeada *main* em um repositório chamado: `MyDemoRepo`

   ```
   aws codecommit get-merge-conflicts --repository-name MyDemoRepo --source-commit-specifier my-feature-branch --destination-commit-specifier main --merge-option FAST_FORWARD_MERGE
   ```

   Se houver êxito, o comando gerará uma saída semelhante à seguinte:

   ```
   {
       "destinationCommitId": "fac04518EXAMPLE",
       "mergeable": false,
       "sourceCommitId": "16d097f03EXAMPLE"
   }
   ```

# Revisar uma solicitação pull
<a name="how-to-review-pull-request"></a>

Você pode usar o AWS CodeCommit console para revisar as alterações incluídas em uma pull request. Você pode adicionar comentários à solicitação, aos arquivos e a linhas de código individuais. Você também pode responder aos comentários feitos por outros usuários. Se o seu repositório estiver [configurado com notificações](how-to-repository-email.md), você receberá e-mails quando os usuários responderem aos seus comentários ou quando eles comentarem em uma solicitação pull.

Você pode usar o AWS CLI para comentar em uma pull request e responder aos comentários. Para revisar as alterações, você deve usar o CodeCommit console, o **git diff** comando ou uma ferramenta de comparação.

**Topics**
+ [Revisar uma solicitação pull (console)](#how-to-review-pull-request-console)
+ [Revisar solicitações pull (AWS CLI)](#how-to-review-pull-request-cli)

## Revisar uma solicitação pull (console)
<a name="how-to-review-pull-request-console"></a>

Você pode usar o CodeCommit console para revisar uma pull request em um CodeCommit repositório. 

1. Abra o CodeCommit console em [https://console.aws.amazon.com/codesuite/codecommit/home](https://console.aws.amazon.com/codesuite/codecommit/home).

1. Em **Repositories (Repositórios)**, escolha o nome do repositório. 

1. No painel de navegação, escolha **Pull Requests (Solicitações pull)**.

1. Por padrão, é exibida uma lista de todas as solicitações de extração abertas. Escolha a solicitação pull aberta que você deseja analisar.   
![\[Abra as pull requests exibidas no CodeCommit console.\]](http://docs.aws.amazon.com/pt_br/codecommit/latest/userguide/images/codecommit-pull-request-view-list.png)
**nota**  
É possível comentar sobre uma solicitação pull fechada ou mesclada, mas não mesclá-la ou reabri-la.

1. Na solicitação pull, escolha **Changes**.

1. Execute um destes procedimentos:
   + Para adicionar um comentário geral para toda a solicitação pull, em **Comments on changes (Comentários sobre alterações)**, escolha **New comment (Novo comentário)**, insira um comentário e escolha **Save (Salvar)**. Você pode usar [Markdown](https://docs.aws.amazon.com/general/latest/gr/aws-markdown.html) ou inserir seu comentário em texto simples.  
![\[Um comentário geral sobre as alterações em uma solicitação pull.\]](http://docs.aws.amazon.com/pt_br/codecommit/latest/userguide/images/codecommit-commenting-changecomment.png)
   + Para adicionar um comentário a um arquivo na confirmação, em **Changes**, encontre o nome do arquivo. Escolha o ícone de comentário ![\[The comment bubble icon that that indicates that you can leave a comment on that line of code.\]](http://docs.aws.amazon.com/pt_br/codecommit/latest/userguide/images/codecommit-commentbubble.png) que é exibido ao lado do nome do arquivo, insira um comentário e escolha **Save (Salvar)**.   
![\[Adicionar um comentário em um arquivo em uma solicitação pull.\]](http://docs.aws.amazon.com/pt_br/codecommit/latest/userguide/images/codecommit-commenting-addfilecomment.png)
   + Para adicionar um comentário a uma linha alterada na solicitação pull, em **Changes**, vá até a linha na qual deseja comentar. Escolha o ícone de comentário ![\[The comment bubble icon that that indicates that you can leave a comment on that line of code.\]](http://docs.aws.amazon.com/pt_br/codecommit/latest/userguide/images/codecommit-commentbubble.png) que é exibido para essa linha, insira um comentário e escolha **Save (Salvar)**.   
![\[Adicionar um comentário em um linha em uma solicitação pull.\]](http://docs.aws.amazon.com/pt_br/codecommit/latest/userguide/images/codecommit-pull-request-comment.png)

1. Para responder a comentários em uma confirmação, em **Changes** ou **Activity**, escolha **Reply**. Você pode responder com texto e emojis.   
![\[Adicionar respostas e reações de emoji a um comentário.\]](http://docs.aws.amazon.com/pt_br/codecommit/latest/userguide/images/codecommit-commenting-commenttab.png)

   Você pode ver os nomes das pessoas que responderam com uma reação de emoji específica selecionando essa reação. Para ver todas as reações de emojis e informações sobre quem respondeu com quais emojis, escolha **Exibir todas as reações**. Se você respondeu com um emoji a um comentário, sua resposta é mostrada no ícone do botão de reação de emoji.
**nota**  
As contagens de reações exibidas no console são precisas no momento em que a página foi carregada. Para obter as informações mais atuais sobre a contagem de reações de emojis, atualize a página ou selecione **Exibir todas as reações**.  
![\[Visualização de informações sobre usuários que responderam a um comentário com uma reação de emoji.\]](http://docs.aws.amazon.com/pt_br/codecommit/latest/userguide/images/codecommit-comment-view-reaction.png)

1. (Opcional) Para responder a uma recomendação criada pelo Amazon CodeGuru Reviewer, incluindo fornecer feedback sobre a qualidade da recomendação, escolha **Responder**. Use os botões de reação para fornecer informações gerais sobre se você aprova ou não a recomendação. Use o campo de comentário para fornecer mais detalhes sobre sua reação.
**nota**  
O Amazon CodeGuru Reviewer é um serviço automatizado de revisão de código que usa análise de programas e aprendizado de máquina para detectar problemas comuns e recomendar correções em seu código Java ou Python.  
Você só vê os comentários do Amazon CodeGuru Reviewer se tiver associado o repositório ao Amazon CodeGuru Reviewer, se a análise estiver completa e se o código na pull request for código Java ou Python. Para obter mais informações, consulte [Associar ou desassociar um AWS CodeCommit repositório com o Amazon Reviewer CodeGuru](how-to-amazon-codeguru-reviewer.md).
Os comentários do Amazon CodeGuru Reviewer só aparecem na guia **Alterações** se tiverem sido feitos na revisão mais recente do pull request. Eles sempre aparecem na guia **Atividade**.
Embora você possa responder com qualquer uma das reações de emoji disponíveis às recomendações do Amazon CodeGuru Reviewer, somente as reações de emoji de polegar para cima e de polegar para baixo são usadas para avaliar a utilidade da recomendação.   
![\[Uma recomendação criada pelo Amazon CodeGuru Reviewer com um trabalho de revisão em andamento.\]](http://docs.aws.amazon.com/pt_br/codecommit/latest/userguide/images/codecommit-pull-request-reply-bot.png)

1. Para aprovar as alterações feitas em uma solicitação pull, escolha **Approve (Aprovar)**. 
**nota**  
Não é possível aprovar uma solicitação pull que você criou.

   É possível exibir aprovações, regras de aprovação e uma solicitação pull e regras de aprovação criadas por modelos de regra de aprovação em **Approvals (Aprovações)**. Se você decidir que não deseja aprovar a solicitação pull, será possível escolher **Revoke approval (Revogar aprovação)**.
**nota**  
É possível aprovar ou revogar a aprovação somente em uma solicitação pull aberta. Não é possível aprovar ou revogar a aprovação em uma solicitação pull cujo status seja mesclado ou fechado.  
![\[Aprovações e regras de aprovação em uma solicitação pull.\]](http://docs.aws.amazon.com/pt_br/codecommit/latest/userguide/images/codecommit-approval-rule-met.png)

## Revisar solicitações pull (AWS CLI)
<a name="how-to-review-pull-request-cli"></a>

Para usar AWS CLI comandos com CodeCommit, instale AWS CLI o. Para obter mais informações, consulte [Referência da linha de comando](cmd-ref.md). 

Você pode revisar as pull requests com os seguintes AWS CLI comandos:
+ [**post-comment-for-pull-request**](#post-comment-reply), para adicionar comentários a uma solicitação pull
+ [**get-comments-for-pull-request**](#get-comments-for-pull-request), para ver os comentários deixados em uma solicitação pull
+ [**update-pull-request-approval-state**](#update-pull-request-approval-state), para aprovar ou revogar a aprovação de uma solicitação pull
+ [**post-comment-reply**](#post-comment-reply), para responder a um comentário em uma solicitação pull

Você também pode usar emojis com comentários em uma solicitação pull com os seguintes comandos: 
+ Para responder a um comentário com um emoji, execute [**put-comment-reaction**](how-to-commit-comment.md#how-to-commit-comment-cli-commit-reply-emoji).
+ Para ver as reações de emoji a um comentário, execute [**get-comment-reactions**](how-to-commit-comment.md#how-to-commit-comment-cli-commit-emoji-view).

**Para usar o AWS CLI para revisar pull requests em um CodeCommit repositório**

1. Para adicionar um comentário a uma solicitação pull em um repositório, execute o comando **post-comment-for-pull-request**, especificando:
   + O ID da solicitação pull (com a opção **--pull-request-id**).
   + O nome do repositório que contém a solicitação pull (com a opção **--repository-name**).
   + O ID de confirmação completo da confirmação na ramificação de destino onde a solicitação de extração é mesclada (com a opção **--before-commit-id**).
   + O ID de confirmação completo da confirmação na ramificação de origem que é a ponta atual da ramificação atual para a solicitação pull quando você publica o comentário (com a opção **--after-commit-id**).
   + Um token de idempotência exclusivo gerado pelo cliente (com a opção **--client-request-token**).
   + O conteúdo do seu comentário (com a opção **--content**).
   + Uma lista de informações de localização sobre onde colocar o comentário, incluindo:
     + O nome do arquivo que está sendo comparado, incluindo sua extensão e subdiretório, se houver (com o atributo **filePath**).
     + O número da linha da alteração em um arquivo comparado (com o atributo **filePosition**).
     + Se o comentário sobre a alteração estiver "antes" ou "depois" na comparação entre as ramificações de origem e destino (com o atributo **relativeFileVersion**).

   Por exemplo, use esse comando para adicionar o comentário *"These don't appear to be used anywhere. Can we remove them?"* sobre a alteração no *ahs\$1count.py* arquivo em uma pull request com o ID de *47* em um repositório chamado*MyDemoRepo*.

   ```
   aws codecommit post-comment-for-pull-request --pull-request-id "47" --repository-name MyDemoRepo --before-commit-id 317f8570EXAMPLE --after-commit-id 5d036259EXAMPLE --client-request-token 123Example --content "These don't appear to be used anywhere. Can we remove them?" --location filePath=ahs_count.py,filePosition=367,relativeFileVersion=AFTER   
   ```

   Se houver êxito, o comando gerará uma saída semelhante à seguinte.

   ```
   { 
            "afterBlobId": "1f330709EXAMPLE",
            "afterCommitId": "5d036259EXAMPLE",
            "beforeBlobId": "80906a4cEXAMPLE",
            "beforeCommitId": "317f8570EXAMPLE",
            "comment": {
                  "authorArn": "arn:aws:iam::111111111111:user/Saanvi_Sarkar",
                  "clientRequestToken": "123Example",
                  "commentId": "abcd1234EXAMPLEb5678efgh",
                  "content": "These don't appear to be used anywhere. Can we remove them?",
                  "creationDate": 1508369622.123,
                  "deleted": false,
                  "lastModifiedDate": 1508369622.123,
                  "callerReactions": [],
                  "reactionCounts": []
               }
                "location": { 
                  "filePath": "ahs_count.py",
                  "filePosition": 367,
                  "relativeFileVersion": "AFTER"
                },
            "repositoryName": "MyDemoRepo",
            "pullRequestId": "47"
    }
   ```

1. Para exibir comentários de uma solicitação de pull, execute o comando **get-comments-for-pull-request**, especificando:
   + O nome do CodeCommit repositório (com a `--repository-name` opção).
   + O ID gerado pelo sistema da solicitação pull (com a opção `--pull-request-id`).
   + (Opcional) Um token de enumeração para retornar o lote seguintes de resultados (com a opção `--next-token`).
   + (Opcional) Um inteiro não negativo no número de resultados retornados (com a opção `--max-results`).

   Por exemplo, use esse comando para visualizar comentários de uma solicitação pull com um ID 42.

   ```
   aws codecommit get-comments-for-pull-request --pull-request-id 42
   ```

   Se houver êxito, o comando gerará uma saída semelhante à seguinte.

   ```
   {
      "commentsForPullRequestData": [ 
         { 
            "afterBlobId": "1f330709EXAMPLE",
            "afterCommitId": "5d036259EXAMPLE",
            "beforeBlobId": "80906a4cEXAMPLE",
            "beforeCommitId": "317f8570EXAMPLE",
            "comments": [ 
               { 
                  "authorArn": "arn:aws:iam::111111111111:user/Saanvi_Sarkar",
                  "clientRequestToken": "",
                  "commentId": "abcd1234EXAMPLEb5678efgh",
                  "content": "These don't appear to be used anywhere. Can we remove them?",
                  "creationDate": 1508369622.123,
                  "deleted": false,
                  "lastModifiedDate": 1508369622.123,
                  "callerReactions": [],
                  "reactionCounts": 
                   {
                     "THUMBSUP" : 6,
                     "CONFUSED" : 1
                   }
               },
               {
                  "authorArn": "arn:aws:iam::111111111111:user/Li_Juan",
                  "clientRequestToken": "",
                  "commentId": "442b498bEXAMPLE5756813",
                  "content": "Good catch. I'll remove them.",
                  "creationDate": 1508369829.104,
                  "deleted": false,
                  "lastModifiedDate": 150836912.273,
                  "callerReactions": ["THUMBSUP"]
                  "reactionCounts": 
                   {
                     "THUMBSUP" : 14
                   }
                }
            ],
            "location": { 
               "filePath": "ahs_count.py",
               "filePosition": 367,
               "relativeFileVersion": "AFTER"
            },
            "repositoryName": "MyDemoRepo",
            "pullRequestId": "42"
         }
      ],
      "nextToken": "exampleToken"
   }
   ```

1. <a name="update-pull-request-approval-state"></a>Para aprovar ou revogar a aprovação de uma solicitação pull, execute o comando **update-pull-request-approval-state**, especificando:
   + O ID da solicitação pull (usando a opção **--pull-request-id**).
   + O ID de revisão da solicitação pull (usando a **--revision-id option)**. É possível obter o ID de revisão atual para uma solicitação pull usando o comando [get-pull-request](how-to-view-pull-request.md#get-pull-request).
   + O estado de aprovação que você deseja aplicar (usando a opção **--approval-state**). Os estados de aprovação válidos incluem `APPROVE` e `REVOKE`.

   Por exemplo, use esse comando para aprovar uma pull request com o ID de *27* e um ID de revisão de*9f29d167EXAMPLE*.

   ```
   aws codecommit update-pull-request-approval-state --pull-request-id 27 --revision-id 9f29d167EXAMPLE --approval-state "APPROVE"
   ```

   Se houver êxito, o comando não retornará nada.

1. Para enviar uma resposta a um comentário em uma solicitação pull, execute o comando **post-comment-reply**, especificando:
   + O ID gerado pelo sistema do comentário ao qual você deseja responder (com a opção **--in-reply-to**).
   + Um token de idempotência exclusivo gerado pelo cliente (com a opção **--client-request-token**).
   + O conteúdo do sua resposta (com a opção **--content**). 

    Por exemplo, use esse comando para adicionar a resposta *"Good catch. I'll remove them."* ao comentário com o ID gerado pelo sistema de. *abcd1234EXAMPLEb5678efgh* 

   ```
   aws codecommit post-comment-reply --in-reply-to abcd1234EXAMPLEb5678efgh --content "Good catch. I'll remove them." --client-request-token 123Example
   ```

   Se houver êxito, o comando gerará uma saída semelhante à seguinte.

   ```
   { 
       "comment": {
           "authorArn": "arn:aws:iam::111111111111:user/Li_Juan",
           "clientRequestToken": "123Example",
           "commentId": "442b498bEXAMPLE5756813",
           "content": "Good catch. I'll remove them.",
           "creationDate": 1508369829.136,
           "deleted": false,
           "lastModifiedDate": 150836912.221,
           "callerReactions": [],
           "reactionCounts": []
       }
    }
   ```

# Atualizar uma solicitação pull
<a name="how-to-update-pull-request"></a>

Você pode atualizar uma solicitação pull com mais alterações no código enviando confirmações para a ramificação de origem de uma solicitação pull aberta. Para obter mais informações, consulte [Crie um commit em AWS CodeCommit](how-to-create-commit.md).

Você pode usar o console do AWS CodeCommit ou o AWS CLI para atualizar o título ou a descrição de uma solicitação de extração. Você pode querer atualizar a solicitação pull ou descrição porque:
+ Outros usuários não entendem a descrição ou o título original é enganador.
+ Você quer que o título ou a descrição reflita as alterações feitas à ramificação de origem de uma solicitação pull aberta.

## Atualizar uma solicitação pull (console)
<a name="how-to-update-pull-request-console"></a>

Você pode usar o console do CodeCommit para atualizar o título e a descrição de uma solicitação pull em um repositório do CodeCommit. Você pode atualizar o código na solicitação pull, enviar via push confirmações para a ramificação de origem de uma solicitação pull aberta.

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

1. Em **Repositories (Repositórios)**, escolha o nome do repositório onde você deseja atualizar uma solicitação pull. 

1. No painel de navegação, escolha **Pull Requests (Solicitações pull)**.

1. Por padrão, é exibida uma lista de todas as solicitações de extração abertas. Escolha a solicitação pull aberta que você deseja atualizar.

1. Na solicitação pull, selecione **Details (Detalhes)** e, em seguida, escolha **Edit details (Editar detalhes)** para editar o título ou a descrição.
**nota**  
Você não pode atualizar o título ou a descrição de uma solicitação pull fechada ou mesclada.

## Atualizar solicitações pull (AWS CLI)
<a name="how-to-update-pull-request-cli"></a>

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](cmd-ref.md). 

Você também pode estar interessado nos seguintes comandos:
+ **[update-pull-request-approval-state](how-to-review-pull-request.md#update-pull-request-approval-state)**, para aprovar ou revogar a aprovação em uma solicitação pull.
+ [**create-pull-request-approval-rule**](how-to-create-pull-request-approval-rule.md#how-to-create-pull-request-approval-rule-cli), para criar uma regra de aprovação para uma solicitação pull.
+ [**delete-pull-request-approval-rule**](how-to-edit-delete-pull-request-approval-rule.md#delete-pull-request-approval-rule), para excluir uma regra de aprovação para uma solicitação pull.
+ [Crie um commit usando o AWS CLI](how-to-create-commit.md#how-to-create-commit-cli) ou [Criar uma confirmação usando um cliente Git](how-to-create-commit.md#how-to-create-commit-git), para criar e enviar via push alterações de código adicionais para a ramificação de origem de uma solicitação pull aberta.

**Para usar a AWS CLI para atualizar solicitações pull em um repositório do CodeCommit**

1.  Para atualizar o título de uma solicitação pull em um repositório, execute o comando **update-pull-request-title** especificando:
   + O ID da solicitação pull (com a opção **--pull-request-id**).
   + O título da solicitação pull (com a opção **--title**).

   Por exemplo, para atualizar o título de uma solicitação pull com o ID *47*:

   ```
   aws codecommit update-pull-request-title --pull-request-id 47 --title "Consolidation of global variables - updated review"  
   ```

1. Para atualizar a descrição de uma solicitação pull, execute o comando **update-pull-request-description** especificando:
   + O ID da solicitação pull (com a opção **--pull-request-id**).
   + A descrição (com a opção **--description**). 

    Por exemplo, para atualizar a descrição de uma solicitação pull com o ID *47* :

   ```
   aws codecommit update-pull-request-description --pull-request-id 47 --description "Updated the pull request to remove unused global variable."
   ```

# Editar ou excluir uma regra de aprovação de uma solicitação pull
<a name="how-to-edit-delete-pull-request-approval-rule"></a>

Quando você tem uma regra de aprovação em uma solicitação pull, não é possível mesclar essa solicitação pull até que as condições sejam atendidas. É possível alterar as regras de aprovação de solicitações pull para facilitar o atendimento de suas condições ou aumentar o rigor das revisões. Você pode alterar o número de usuários que devem aprovar uma solicitação pull. Também é possível adicionar, remover ou alterar a associação em um grupo de aprovações de usuários para a regra. Por fim, se não quiser mais usar uma regra de aprovação de uma solicitação pull, você poderá excluí-la.

**nota**  
Também é possível substituir regras de aprovação de uma solicitação pull. Para obter mais informações, consulte [Substituir regras de aprovação em uma solicitação pull](how-to-override-approval-rules.md).

Você pode usar o AWS CodeCommit console ou o AWS CLI para editar e excluir as regras de aprovação do seu repositório. 

**Topics**
+ [Editar ou excluir uma regra de aprovação de uma solicitação pull (console)](#how-to-edit-delete-pull-request-approval-rule-console)
+ [Editar ou excluir uma regra de aprovação de uma solicitação pull (AWS CLI)](#how-to-edit-delete-pull-request-approval-rule-cli)

## Editar ou excluir uma regra de aprovação de uma solicitação pull (console)
<a name="how-to-edit-delete-pull-request-approval-rule-console"></a>

Você pode usar o CodeCommit console para editar ou excluir uma regra de aprovação para uma pull request em um CodeCommit repositório. 

1. Abra o CodeCommit console em [https://console.aws.amazon.com/codesuite/codecommit/home](https://console.aws.amazon.com/codesuite/codecommit/home).

1. Em **Repositories (Repositórios)**, escolha o nome do repositório no qual você deseja editar ou excluir uma regra de aprovação de uma solicitação pull. 

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

1. Escolha a solicitação pull em que você deseja editar ou excluir uma regra de aprovação. É possível editar e excluir regras de aprovação somente de solicitações pull abertas.  
![\[Uma lista de pull requests para um repositório no CodeCommit console.\]](http://docs.aws.amazon.com/pt_br/codecommit/latest/userguide/images/codecommit-pull-request-view.png)

1. Na solicitação pull, escolha **Approvals (Aprovações)** e selecione a regra que deseja editar ou excluir da lista. Execute um destes procedimentos:
   + Se quiser editar a regra, escolha **Edit (Editar)**. 
   + Se desejar excluir a regra, escolha **Delete (Excluir)** e siga as instruções para verificar a exclusão da regra.

1. Em **Edit approval rule (Editar regra de aprovação)**, faça as alterações desejadas na regra e escolha **Submit (Enviar)**.  
![\[Editar uma regra de aprovação\]](http://docs.aws.amazon.com/pt_br/codecommit/latest/userguide/images/codecommit-pull-request-edit-rule.png)

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

 

## Editar ou excluir uma regra de aprovação de uma solicitação pull (AWS CLI)
<a name="how-to-edit-delete-pull-request-approval-rule-cli"></a>

Para usar AWS CLI comandos com CodeCommit, instale AWS CLI o. Para obter mais informações, consulte [Referência da linha de comando](cmd-ref.md). 

Você pode usar o AWS CLI para editar o conteúdo de uma regra de aprovação e excluir uma regra de aprovação. 

**nota**  
Você também pode estar interessado nos seguintes comandos:  
**[update-pull-request-approval-state](how-to-review-pull-request.md#update-pull-request-approval-state)**, para aprovar ou revogar a aprovação em uma solicitação pull.
[**get-pull-request-approval-states**](how-to-view-pull-request.md#get-pull-request-approval-state), para visualizar as aprovações na solicitação pull.
[**evaluate-pull-request-approval-rules**](how-to-merge-pull-request.md#evaluate-pull-request-approval-rules), para determinar se as regras de aprovação de uma solicitação pull tiveram suas condições atendidas.

**Para usar o AWS CLI para editar ou excluir uma regra de aprovação para uma pull request em um CodeCommit repositório**<a name="update-pull-request-approval-rule-content"></a>

1. Para editar uma regra de aprovação, execute o comando **update-pull-request-approval-rule-content**, 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**).

   Este exemplo atualiza uma regra de aprovação nomeada *Require two approved approvers* para uma pull request com o ID de*27*. A regra exige a aprovação de um usuário de um grupo de aprovação que inclui qualquer usuário do IAM na conta da *123456789012* Amazon Web Services:

   ```
   aws codecommit update-pull-request-approval-rule-content --pull-request-id 27 --approval-rule-name "Require two approved approvers" --approval-rule-content "{Version: 2018-11-08, Statements: [{Type: \"Approvers\", NumberOfApprovalsNeeded: 1, ApprovalPoolMembers:[\"CodeCommitApprovers:123456789012:user/*\"]}]}}"
   ```

1. <a name="delete-pull-request-approval-rule"></a>Para excluir uma regra de aprovação, execute o comando **delete-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**).

   Por exemplo, para excluir uma regra de aprovação com o nome *My Approval Rule* de uma pull request com o ID de*15*:

   ```
   aws codecommit delete-pull-request-approval-rule --pull-request-id 15 --approval-rule-name "My Approval Rule"
   ```

# Substituir regras de aprovação em uma solicitação pull
<a name="how-to-override-approval-rules"></a>

No curso normal de desenvolvimento, convém que os usuários atendam às condições de regras de aprovação antes de mesclar solicitações pull. No entanto, pode haver momentos em que é necessário agilizar a mesclagem de uma solicitação pull. Por exemplo, é possível que você queira colocar uma correção de bug em produção, mas ninguém no grupo de aprovações esteja disponível para aprovar a solicitação pull. Em casos como esses, é possível optar por substituir as regras de aprovação em uma solicitação pull. Você pode substituir todas as regras de aprovação de uma solicitação pull, incluindo aquelas criadas especificamente para a solicitação pull e geradas a partir de um modelo de regra de aprovação. Não é possível substituir seletivamente uma regra de aprovação específica, somente todas as regras. Depois de reservar os requisitos de regra de aprovação substituindo as regras, é possível mesclar a solicitação pull com a ramificação de destino.

Ao substituir regras de aprovação em uma solicitação pull, as informações sobre o usuário que substituiu as regras são registradas na atividade da solicitação pull. Dessa forma, é possível voltar ao histórico de uma solicitação pull e examinar quem substituiu as regras. Você também poderá optar por revogar a substituição se a solicitação pull ainda estiver aberta. Depois que a solicitação pull for mesclada, você não poderá mais revogar a substituição.

**Topics**
+ [Substituir regras de aprovação (console)](#how-to-override-approval-rules-console)
+ [Substituir regras de aprovação (AWS CLI)](#how-to-override-approval-rules-cli)

## Substituir regras de aprovação (console)
<a name="how-to-override-approval-rules-console"></a>

É possível substituir os requisitos de regras de aprovação em uma solicitação pull no console, como parte da revisão de uma solicitação pull. Se você mudar de ideia, poderá revogar a substituição, e os requisitos da regra de aprovação serão reaplicados. Você só poderá substituir regras de aprovação ou revogar uma substituição se a solicitação pull ainda estiver aberta. Se ela for mesclada ou fechada, não será possível alterar seu estado de substituição.

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

1. Em **Repositories (Repositórios)**, escolha o nome do repositório. 

1. No painel de navegação, escolha **Pull Requests (Solicitações pull)**. Escolha a solicitação pull na qual deseja substituir os requisitos de regra de aprovação ou revogar uma substituição.

1. Na guia **Approvals (Aprovações)**, escolha **Override approval rules (Substituir regras de aprovação)**. Os requisitos são reservados, e o texto do botão é alterado para **Revoke override (Revogar substituição)**. Para reaplicar os requisitos da regra de aprovação, escolha **Revoke override (Revogar substituição)**.

## Substituir regras de aprovação (AWS CLI)
<a name="how-to-override-approval-rules-cli"></a>

É possível usar a AWS CLI para substituir os requisitos de regra de aprovação. Também é possível usá-la para visualizar o status de substituição de uma solicitação pull.<a name="override-approval-rules"></a>

## Como substituir requisitos de regra de aprovação em uma solicitação pull
<a name="override-approval-rules"></a>

1. Em um terminal ou uma linha de comando, execute o comando **override-pull-request-approval-rules**, especificando:
   + O ID gerado pelo sistema da solicitação pull.
   + O ID de revisão mais recente da solicitação pull. Para visualizar essas informações, use **get-pull-request**.
   + O status que você deseja para a substituição, `OVERRIDE` ou `REVOKE`. O status `REVOKE` remove o status `OVERRIDE`, mas não é salvo.

   Por exemplo, para substituir regras de aprovação em uma solicitação pull com um ID **34** e um ID de revisão **927df8d8EXAMPLE**:

   ```
   aws codecommit override-pull-request-approval-rules --pull-request-id 34 --revision-id 927df8d8dEXAMPLE --override-status OVERRIDE
   ```

1. Se houver êxito, o comando não retornará nada.

1. Para revogar a substituição em uma solicitação pull com um ID **34** e um ID de revisão **927df8d8EXAMPLE**:

   ```
   aws codecommit override-pull-request-approval-rules --pull-request-id 34 --revision-id 927df8d8dEXAMPLE --override-status REVOKE
   ```<a name="get-override-status"></a>

## Como obter informações sobre o status de substituição de uma solicitação pull
<a name="get-override-status"></a>

1. Em um terminal ou uma linha de comando, execute o comando **get-pull-request-override-state**, especificando:
   + O ID gerado pelo sistema da solicitação pull.
   + O ID de revisão mais recente da solicitação pull. Para visualizar essas informações, use **get-pull-request**.

   Por exemplo, para visualizar o estado de substituição de uma solicitação pull com um ID **34** e um ID de revisão **927df8d8EXAMPLE**:

   ```
   aws codecommit get-pull-request-override-state --pull-request-id 34 --revision-id 927df8d8dEXAMPLE
   ```

1. Se houver êxito, o comando gerará uma saída semelhante à seguinte:

   ```
   {
       "overridden": true,
       "overrider": "arn:aws:iam::123456789012:user/Mary_Major"
   }
   ```

# Mesclar uma solicitação pull em um repositório do AWS CodeCommit
<a name="how-to-merge-pull-request"></a>

Depois que seu código for revisado e todas as regras de aprovação (se houver) na solicitação pull forem atendidas, será possível mesclar uma solicitação pull de várias maneiras:
+ <a name="is-mergable"></a>É possível usar o console para mesclar a ramificação de origem com a ramificação de destino usando uma das estratégias de mesclagem disponíveis, que também fecha a solicitação pull. Também é possível resolver conflitos de mesclagem no console. O console exibe uma mensagem que indica se a solicitação pull pode ser mesclada ou se os conflitos devem ser resolvidos. Quando todos os conflitos forem resolvidos e você escolher **Merge (Mesclar)**, a mesclagem será realizada usando a estratégia de mesclagem escolhida. Avanço rápido é a estratégia de mesclagem padrão, que é a opção padrão para o Git. Dependendo do estado do código nas ramificações de origem e de destino, essa estratégia pode não estar disponível, mas outras opções podem estar, como de compressão ou três vias.
+ É possível usar a AWS CLI para tentar mesclar e fechar a solicitação pull usando a estratégia de mesclagem de avanço rápido, compressão ou três vias. 
+ <a name="why-git-merge"></a>No seu computador local, você pode usar o comando **git merge** para mesclar a ramificação de origem na ramificação de destino e, em seguida, envie seu código mesclado por push para a ramificação de destino. Essa abordagem tem desvantagens que devem ser consideradas cuidadosamente. Ela mescla a solicitação pull independentemente de os requisitos para regras de aprovação na solicitação pull serem atendidos, contornando esses controles. Mesclar e enviar a ramificação de destino também fechará a solicitação pull automaticamente se a solicitação pull for mesclada usando a estratégia de mesclagem de avanço rápido. Uma vantagem dessa abordagem é que o comando **git merge** permite escolher opções ou estratégias de mesclagem que não estão disponíveis no console do CodeCommit. Para obter mais informações sobre opções de mesclagem e **git merge**, consulte [git-merge](https://git-scm.com/docs/git-merge) ou a documentação do Git.

O CodeCommit fechará uma solicitação pull automaticamente se a ramificação de origem ou a ramificação de destino da solicitação pull for excluída.

**Topics**
+ [Mesclar uma solicitação pull (console)](#how-to-merge-pull-request-console)
+ [Mesclar uma solicitação pull (AWS CLI)](#how-to-merge-pull-request-cli)

## Mesclar uma solicitação pull (console)
<a name="how-to-merge-pull-request-console"></a>

Você pode usar o console do CodeCommit para mesclar uma solicitação pull em um repositório do CodeCommit. Depois que o status de uma solicitação pull for alterado para **Merged (Mesclada)**, ela não será mais exibida na lista de solicitações pull abertas. Uma solicitação pull mesclada é categorizada como fechada. Ela não pode ser alterada novamente para **Open (Aberta)**, mas os usuários ainda podem comentar sobre as alterações e responder aos comentários. Depois que uma solicitação pull for mesclada ou fechada, não será possível aprová-la, revogá-la ou substituir as regras de aprovação aplicadas à solicitação pull.

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

1. Em **Repositories (Repositórios)**, escolha o nome do repositório. 

1. No painel de navegação, escolha **Pull Requests (Solicitações pull)**.

1. Por padrão, é exibida uma lista de todas as solicitações de extração abertas. Escolha a solicitação pull aberta que você deseja mesclar.

1. Na solicitação pull, escolha **Approvals (Aprovações)**. Revise a lista de aprovadores e verifique se todas as regras de aprovação (se houver) tiveram suas condições atendidas. Você não poderá mesclar uma solicitação pull se uma ou mais regras de aprovação tiverem o status **Rule not satisfied (Regra não satisfeita)**. Se ninguém tiver aprovado a solicitação pull, avalie se deseja mesclá-la ou aguardar aprovações.
**nota**  
Se uma regra de aprovação tiver sido criada para uma solicitação pull, você poderá editá-la ou excluí-la para desbloquear a mesclagem. Se a regra de aprovação tiver sido criada com um modelo de regra de aprovação, você não poderá editá-la nem excluí-la. É possível optar somente por substituir os requisitos. Para obter mais informações, consulte [Substituir regras de aprovação em uma solicitação pull](how-to-override-approval-rules.md).  
![\[Uma solicitação pull mostrando uma regra de aprovação cujas condições não foram atendidas e uma lista vazia de aprovadores.\]](http://docs.aws.amazon.com/pt_br/codecommit/latest/userguide/images/codecommit-approval-rule-not-met.png)

1. Escolha **Merge (Mesclar)**.

1. Na solicitação pull, escolha entre as estratégias de mesclagem disponíveis. As estratégias de mesclagem que não puderem ser aplicadas serão exibidas esmaecidas. Se não houver estratégias de mesclagem disponíveis, você pode optar por resolver conflitos manualmente no console do CodeCommit ou resolvê-los localmente usando o cliente Git. Para obter mais informações, consulte [Resolver conflitos em uma solicitação pull em um repositório do AWS CodeCommit](how-to-resolve-conflict-pull-request.md).  
![\[Uma solicitação pull mostrando as estratégias de mesclagem disponíveis para a mesclagem no console do CodeCommit.\]](http://docs.aws.amazon.com/pt_br/codecommit/latest/userguide/images/codecommit-merge-squash.png)
   + A mesclagem de avanço rápido move a referência da ramificação de destino para a confirmação mais recente da ramificação de origem. Esse é o comportamento padrão do Git sempre que possível. Nenhuma confirmação de mesclagem é criada, mas todo o histórico de confirmações na ramificação de origem é retido como se tivesse ocorrido na ramificação de destino. As mesclagens de avanço rápido não são exibidas como uma mesclagem de ramificação na exibição do visualizador de confirmações do histórico da ramificação de destino porque nenhuma confirmação de mesclagem foi criada. A ponta da ramificação de origem é avançada rapidamente para a ponta da ramificação de destino. 
   + Uma mesclagem de compressão cria uma confirmação que contém as alterações na ramificação de origem e aplica essa única confirmação de compressão à ramificação de destino. Por padrão, a mensagem de confirmação para essa confirmação de compressão contém todas as mensagens de confirmação das alterações na ramificação de origem. Nenhuma alteração no histórico de confirmações individuais da ramificação é retida. Isso pode ajudar a simplificar o histórico do repositório e, ao mesmo tempo, manter uma representação gráfica da mesclagem na exibição do visualizador de confirmação do histórico da ramificação de destino. 
   + Uma mesclagem de três vias cria uma confirmação de mesclagem para a mesclagem na ramificação de destino, mas também retém confirmações individuais feitas na ramificação de origem como parte do histórico da ramificação de destino. Isso pode ajudar a manter um histórico completo das alterações em seu repositório.

1. Se você escolher a estratégia de mesclagem de compressão ou três vias, revise a mensagem de confirmação gerada automaticamente e modifique-a se deseja alterar as informações. Adicione seu nome e endereço de e-mail para o histórico de confirmações.

1. (Opcional) Desmarque a opção para excluir a ramificação de origem como parte da mesclagem. O padrão é excluir a ramificação de origem quando uma solicitação pull é mesclada.

1. Selecione **Merge pull request (Mesclar solicitação pull)** para concluir a mesclagem.

## Mesclar uma solicitação pull (AWS CLI)
<a name="how-to-merge-pull-request-cli"></a>

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](cmd-ref.md). 

**Para usar a AWS CLI para mesclar solicitações pull em um repositório do CodeCommit**

1. <a name="evaluate-pull-request-approval-rules"></a>Para avaliar se uma solicitação pull teve todas as regras de aprovação satisfeitas e está pronta para ser mesclada, execute o comando **evaluate-pull-request-approval-rules**, especificando:
   + O ID da solicitação pull (usando a opção **--pull-request-id**).
   + O ID de revisão da solicitação pull (usando a **--revision-id option)**. É possível obter o ID de revisão atual para uma solicitação pull usando o comando **[get-pull-request](how-to-view-pull-request.md#get-pull-request)**.

   Por exemplo, para avaliar o estado das regras de aprovação em uma solicitação pull com um ID *27* e um ID de revisão *9f29d167EXAMPLE*:

   ```
   aws codecommit evaluate-pull-request-approval-rules --pull-request-id 27 --revision-id 9f29d167EXAMPLE
   ```

   Se houver êxito, o comando gerará uma saída semelhante à seguinte:

   ```
   {
       "evaluation": {
           "approved": false,
           "approvalRulesNotSatisfied": [
               "Require two approved approvers"
           ],
           "overridden": false,
           "approvalRulesSatisfied": []
       }
   }
   ```
**nota**  
Essa saída indica que uma solicitação pull não pode ser mesclada porque os requisitos de uma regra de aprovação não foram atendidos. Para mesclar essa solicitação pull, é possível fazer com que os revisores a aprovem para atender às condições da regra. Dependendo de suas permissões e de como a regra foi criada, também será possível editar, substituir ou excluir a regra. Para ter mais informações, consulte [Revisar uma solicitação pull](how-to-review-pull-request.md), [Substituir regras de aprovação em uma solicitação pull](how-to-override-approval-rules.md) e [Editar ou excluir uma regra de aprovação de uma solicitação pull](how-to-edit-delete-pull-request-approval-rule.md). 

1. Para mesclar e fechar uma solicitação pull usando a estratégia de mesclagem de avanço rápido, execute o comando **merge-pull-request-by-fast-forward**, especificando:
   + O ID da solicitação pull (com a opção **--pull-request-id**).
   + O ID de confirmação completo da extremidade da ramificação de origem (com a opção **--source-commit-id**). 
   + O nome do repositório (com a opção **--repository-name**).

    Por exemplo, para mesclar e fechar uma solicitação pull com a ID *47* e uma ID de confirmação de origem *99132ab0EXAMPLE* em um repositório denominado *MyDemoRepo*:

   ```
   aws codecommit merge-pull-request-by-fast-forward --pull-request-id 47 --source-commit-id 99132ab0EXAMPLE --repository-name MyDemoRepo
   ```

   Se houver êxito, o comando gerará uma saída semelhante à seguinte:

   ```
   {
       "pullRequest": {
           "approvalRules": [
               {
                   "approvalRuleContent": "{\"Version\": \"2018-11-08\",\"Statements\": [{\"Type\": \"Approvers\",\"NumberOfApprovalsNeeded\": 1,\"ApprovalPoolMembers\": [\"arn:aws:sts::123456789012:assumed-role/CodeCommitReview/*\"]}]}",
                   "approvalRuleId": "dd8b17fe-EXAMPLE",
                   "approvalRuleName": "I want one approver for this pull request",
                   "creationDate": 1571356106.936,
                   "lastModifiedDate": 571356106.936,
                   "lastModifiedUser": "arn:aws:iam::123456789012:user/Mary_Major",
                   "ruleContentSha256": "4711b576EXAMPLE"
               }
           ],
           "authorArn": "arn:aws:iam::123456789012:user/Li_Juan",
           "clientRequestToken": "",
           "creationDate": 1508530823.142,
           "description": "Review the latest changes and updates to the global variables",
           "lastActivityDate": 1508887223.155,
           "pullRequestId": "47",
           "pullRequestStatus": "CLOSED",
           "pullRequestTargets": [
               {
                   "destinationCommit": "9f31c968EXAMPLE",
                   "destinationReference": "refs/heads/main",
                   "mergeMetadata": {
                       "isMerged": true,
                       "mergedBy": "arn:aws:iam::123456789012:user/Mary_Major"
                   },
                   "repositoryName": "MyDemoRepo",
                   "sourceCommit": "99132ab0EXAMPLE",
                   "sourceReference": "refs/heads/variables-branch"
               }
           ],
           "title": "Consolidation of global variables"
       }
   }
   ```

1. Para mesclar e fechar uma solicitação pull usando a estratégia de mesclagem de compressão, execute o comando **merge-pull-request-by-squash**, especificando:
   + O ID da solicitação pull (com a opção **--pull-request-id**).
   + O ID de confirmação completo da extremidade da ramificação de origem (com a opção **--source-commit-id**). 
   + O nome do repositório (com a opção **--repository-name**).
   + O nível de detalhes de conflitos que você deseja usar (com a opção **--conflict-detail-level**). Se não especificado, o **`FILE_LEVEL`** padrão será usado.
   + A estratégia de resolução de conflitos que você deseja usar (com a opção **--conflict-resolution-strategy**). Se não especificado, isso define `NONE` como padrão, e os conflitos devem ser resolvidos manualmente.
   + A mensagem de confirmação a ser incluída (com a opção **--commit-message**).
   + O nome a ser usado para a confirmação (com a opção **--author-name**).
   + O endereço de e-mail a ser usado para a confirmação (com a opção **--email**).
   + Opção de manter pastas vazias (com a opção **--keep-empty-folders**).

   O exemplo a seguir mescla e fecha uma solicitação pull com o ID *47* e um ID de confirmação de origem *99132ab0EXAMPLE* em um repositório denominado *MyDemoRepo*. Ele usa os detalhes de conflitos `LINE_LEVEL` e a estratégia de resolução de conflitos `ACCEPT_SOURCE`:

   ```
   aws codecommit merge-pull-request-by-squash --pull-request-id 47 --source-commit-id 99132ab0EXAMPLE --repository-name MyDemoRepo --conflict-detail-level LINE_LEVEL --conflict-resolution-strategy ACCEPT_SOURCE --author-name "Jorge Souza" --email "jorge_souza@example.com" --commit-message "Merging pull request 47 by squash and accepting source in merge conflicts"
   ```

   Se bem-sucedido, esse comando produz o mesmo tipo de saída que a mesclagem por avanço rápido, uma saída semelhante à seguinte:

   ```
   {
       "pullRequest": {
           "approvalRules": [
               {
                   "approvalRuleContent": "{\"Version\": \"2018-11-08\",\"DestinationReferences\": [\"refs/heads/main\"],\"Statements\": [{\"Type\": \"Approvers\",\"NumberOfApprovalsNeeded\": 2,\"ApprovalPoolMembers\": [\"arn:aws:sts::123456789012:assumed-role/CodeCommitReview/*\"]}]}",
                   "approvalRuleId": "dd8b17fe-EXAMPLE",
                   "approvalRuleName": "2-approver-rule-for-main",
                   "creationDate": 1571356106.936,
                   "lastModifiedDate": 571356106.936,
                   "lastModifiedUser": "arn:aws:iam::123456789012:user/Mary_Major",
                   "originApprovalRuleTemplate": {
                       "approvalRuleTemplateId": "dd8b17fe-EXAMPLE",
                       "approvalRuleTemplateName": "2-approver-rule-for-main"
                   },
                   "ruleContentSha256": "4711b576EXAMPLE"
               }
           ],
           "authorArn": "arn:aws:iam::123456789012:user/Li_Juan",
           "clientRequestToken": "",
           "creationDate": 1508530823.142,
           "description": "Review the latest changes and updates to the global variables",
           "lastActivityDate": 1508887223.155,
           "pullRequestId": "47",
           "pullRequestStatus": "CLOSED",
           "pullRequestTargets": [
               {
                   "destinationCommit": "9f31c968EXAMPLE",
                   "destinationReference": "refs/heads/main",
                   "mergeMetadata": {
                       "isMerged": true,
                       "mergedBy": "arn:aws:iam::123456789012:user/Mary_Major"
                   },
                   "repositoryName": "MyDemoRepo",
                   "sourceCommit": "99132ab0EXAMPLE",
                   "sourceReference": "refs/heads/variables-branch"
               }
           ],
           "title": "Consolidation of global variables"
       }
   }
   ```

1. Para mesclar e fechar uma solicitação pull usando a estratégia de mesclagem de três vias, execute o comando **merge-pull-request-by-three-way**, especificando:
   + O ID da solicitação pull (com a opção **--pull-request-id**).
   + O ID de confirmação completo da extremidade da ramificação de origem (com a opção **--source-commit-id**). 
   + O nome do repositório (com a opção **--repository-name**).
   + O nível de detalhes de conflitos que você deseja usar (com a opção **--conflict-detail-level**). Se não especificado, o **`FILE_LEVEL`** padrão será usado.
   + A estratégia de resolução de conflitos que você deseja usar (com a opção **--conflict-resolution-strategy**). Se não especificado, isso define `NONE` como padrão, e os conflitos devem ser resolvidos manualmente.
   + A mensagem de confirmação a ser incluída (com a opção **--commit-message**).
   + O nome a ser usado para a confirmação (com a opção **--author-name**).
   + O endereço de e-mail a ser usado para a confirmação (com a opção **--email**).
   + Opção de manter pastas vazias (com a opção **--keep-empty-folders**).

   O exemplo a seguir mescla e fecha uma solicitação pull com o ID *47* e um ID de confirmação de origem *99132ab0EXAMPLE* em um repositório denominado *MyDemoRepo*. Ele usa as opções padrão para detalhes de conflitos e estratégia de resolução de conflitos:

   ```
   aws codecommit merge-pull-request-by-three-way --pull-request-id 47 --source-commit-id 99132ab0EXAMPLE --repository-name MyDemoRepo --author-name "Maria Garcia" --email "maria_garcia@example.com" --commit-message "Merging pull request 47 by three-way with default options"
   ```

   Se bem-sucedido, esse comando produz o mesmo tipo de saída que a mesclagem por avanço rápido, semelhante ao seguinte:

   ```
   {
       "pullRequest": {
           "approvalRules": [
               {
                   "approvalRuleContent": "{\"Version\": \"2018-11-08\",\"DestinationReferences\": [\"refs/heads/main\"],\"Statements\": [{\"Type\": \"Approvers\",\"NumberOfApprovalsNeeded\": 2,\"ApprovalPoolMembers\": [\"arn:aws:sts::123456789012:assumed-role/CodeCommitReview/*\"]}]}",
                   "approvalRuleId": "dd8b17fe-EXAMPLE",
                   "approvalRuleName": "2-approver-rule-for-main",
                   "creationDate": 1571356106.936,
                   "lastModifiedDate": 571356106.936,
                   "lastModifiedUser": "arn:aws:iam::123456789012:user/Mary_Major",
                   "originApprovalRuleTemplate": {
                       "approvalRuleTemplateId": "dd8b17fe-EXAMPLE",
                       "approvalRuleTemplateName": "2-approver-rule-for-main"
                   },
                   "ruleContentSha256": "4711b576EXAMPLE"
               }
           ],
           "authorArn": "arn:aws:iam::123456789012:user/Li_Juan",
           "clientRequestToken": "",
           "creationDate": 1508530823.142,
           "description": "Review the latest changes and updates to the global variables",
           "lastActivityDate": 1508887223.155,
           "pullRequestId": "47",
           "pullRequestStatus": "CLOSED",
           "pullRequestTargets": [
               {
                   "destinationCommit": "9f31c968EXAMPLE",
                   "destinationReference": "refs/heads/main",
                   "mergeMetadata": {
                       "isMerged": true,
                       "mergedBy": "arn:aws:iam::123456789012:user/Mary_Major"
                   },
                   "repositoryName": "MyDemoRepo",
                   "sourceCommit": "99132ab0EXAMPLE",
                   "sourceReference": "refs/heads/variables-branch"
               }
           ],
           "title": "Consolidation of global variables"
       }
   }
   ```

# Resolver conflitos em uma solicitação pull em um repositório do AWS CodeCommit
<a name="how-to-resolve-conflict-pull-request"></a>

Se a sua solicitação pull tem conflitos e não pode ser mesclada, você pode tentar resolvê-los de várias maneiras:
+ No computador local, você pode usar o comando **git diff** para localizar os conflitos entre as duas ramificações e fazer alterações para resolvê-los. Você também pode usar uma ferramenta de diferenciação ou outros softwares para ajudar você a localizar e resolver as diferenças. Depois de resolvê-los de forma satisfatória, você pode enviar por push a ramificação de origem com as alterações que contêm os conflitos resolvidos, o que atualizará a solicitação pull. Para obter mais informações sobre **git diff** e **git difftool**, consulte a documentação do Git.
+ No console, você pode selecionar **Resolve conflicts (Resolver conflitos)**. Isso abre um editor de texto simples que mostra conflitos de maneira semelhante ao comando **git diff**. Você pode revisar os conflitos manualmente em cada arquivo que os contém, fazer as alterações e, em seguida, atualizar a solicitação pull com as alterações.
+ No AWS CLI, você pode usar a AWS CLI para obter informações sobre conflitos de mesclagem e criar uma confirmação de mesclagem sem referência para testar uma mesclagem. 

**Topics**
+ [Resolver conflitos em uma solicitação pull (console)](#how-to-resolve-conflict-pull-request-console)
+ [Resolver conflitos em uma solicitação pull (AWS CLI)](#how-to-resolve-conflict-pull-request-cli)

## Resolver conflitos em uma solicitação pull (console)
<a name="how-to-resolve-conflict-pull-request-console"></a>

Você pode usar o console do CodeCommit para resolver conflitos em 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](https://console.aws.amazon.com/codesuite/codecommit/home).

1. Em **Repositories (Repositórios)**, escolha o nome do repositório. 

1. No painel de navegação, escolha **Pull Requests (Solicitações pull)**.

1. Por padrão, é exibida uma lista de todas as solicitações de extração abertas. Escolha a solicitação pull aberta que você deseja mesclar, mas que contém conflitos.

1. Na solicitação pull, selecione **Resolve conflicts (Resolver conflitos)**. Essa opção só será exibida se houver conflitos que devem ser resolvidos para que a solicitação pull possa ser mesclada.  
![\[Uma solicitação pull mostrando que tem conflitos que devem ser resolvidos para que possa ser mesclada.\]](http://docs.aws.amazon.com/pt_br/codecommit/latest/userguide/images/codecommit-pull-request-resolve-conflicts.png)

1. Uma janela de resolução de conflitos é aberta, listando cada arquivo que tem conflitos que devem ser resolvidos. Escolha cada arquivo na lista para revisar os conflitos e faça as alterações necessárias até que todos eles sejam resolvidos.  
![\[O editor de resolução de conflitos mostrando um arquivo com conflitos que ainda não foram resolvidos.\]](http://docs.aws.amazon.com/pt_br/codecommit/latest/userguide/images/codecommit-pull-request-resolve.png)
   + Você pode optar por usar o conteúdo do arquivo de origem, o conteúdo do arquivo de destino, ou se o arquivo não é binário, para editar manualmente o conteúdo de um arquivo para que ele contenha apenas as alterações que você deseja. Os marcadores padrão git diff são usados para mostrar os conflitos entre o destino (HEAD) e as ramificações de origem no arquivo.
   + Se um arquivo é binário, um submódulo do Git, ou se há um conflito de nome de arquivo/pasta, você deve optar por usar o arquivo de origem ou de destino para resolvê-los. Você não pode visualizar ou editar arquivos binários no console do CodeCommit.
   + Se houver conflitos de modo de arquivo, você verá a opção para resolver esse conflito ao escolher entre o modo de arquivo do arquivo de origem e o modo de arquivo do arquivo de destino. 
   + Se você decidir que deseja descartar as alterações em um arquivo e restaurá-lo para o estado que gerou conflito, selecione **Reset file (Redefinir arquivo)**. Isso permite que você resolva os conflitos de forma diferente.

1. Quando você tiver certeza de suas alterações, selecione **Update pull request (Atualizar solicitação pull)**.
**nota**  
Você deve resolver todos os conflitos em todos os arquivos para atualizar com êxito a solicitação pull com as alterações. 

1. A solicitação pull será atualizada com as alterações e poderá ser mesclada. Você verá a página de mesclagem. Você pode optar por mesclar a solicitação pull neste momento ou pode retornar à lista de solicitações pull. 

## Resolver conflitos em uma solicitação pull (AWS CLI)
<a name="how-to-resolve-conflict-pull-request-cli"></a>

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](cmd-ref.md). 

Nenhum comando da AWS CLI sozinho permite que você resolva conflitos em uma solicitação pull e mescle essa solicitação. No entanto, você pode usar comandos individuais para descobrir conflitos, tentar resolvê-los e testar se uma solicitação pull pode ser mesclada. Você pode usar:
+ **get-merge-options**, para descobrir as opções de mesclagem disponíveis para uma mesclagem entre dois especificadores de confirmação.
+ **get-merge-conflicts**, para retornar uma lista de arquivos com conflitos de mesclagem em uma mesclagem entre dois especificadores de confirmação.
+ **batch-describe-merge-conflicts**, para obter informações sobre todos os conflitos de mesclagem em arquivos de uma mesclagem entre duas confirmações usando uma estratégia de mesclagem especificada. 
+ **describe-merge-conflicts**, para obter informações detalhadas sobre conflitos de mesclagem de um arquivo específico entre duas confirmações usando uma estratégia de mesclagem especificada.
+ **create-unreferenced-merge-commit**, para testar o resultado da mesclagem de dois especificadores de confirmação usando uma estratégia de mesclagem especificada.

1. <a name="get-merge-options"></a>Para descobrir as opções de mesclagem disponíveis para uma mesclagem entre dois especificadores de confirmação, execute o comando **get-merge-options**, especificando:
   + Um especificador de confirmação para a origem da mesclagem (com a opção **--source-commit-specifier**).
   + Um especificador de confirmação para o destino da mesclagem (com a opção **--destination-commit-specifier**). 
   + O nome do repositório (com a opção **--repository-name**).
   + (Opcional) Uma estratégia de resolução de conflitos a ser usada (com a opção **--conflict-resolution-strategy**).
   + (Opcional) O nível de detalhes que deseja sobre os conflitos (com a opção **--conflict-detail-level**).

    Por exemplo, para determinar as estratégias de mesclagem disponíveis para mesclar uma ramificação de origem chamada *bugfix-1234* com uma ramificação de destino denominada *principal* em um repositório denominado *MyDemoRepo*:

   ```
   aws codecommit get-merge-options --source-commit-specifier bugfix-1234 --destination-commit-specifier main --repository-name MyDemoRepo
   ```

   Se houver êxito, o comando gerará uma saída semelhante à seguinte:

   ```
   {
       "mergeOptions": [
           "FAST_FORWARD_MERGE",
           "SQUASH_MERGE",
           "THREE_WAY_MERGE"
       ],
       "sourceCommitId": "d49940adEXAMPLE",
       "destinationCommitId": "86958e0aEXAMPLE",
       "baseCommitId": "86958e0aEXAMPLE"
   }
   ```

1. <a name="get-merge-conflict"></a>Para obter uma lista de arquivos que contêm conflitos de mesclagem em uma mesclagem entre dois especificadores de confirmação, execute o comando **get-merge-conflicts**, especificando:
   + Um especificador de confirmação para a origem da mesclagem (com a opção **--source-commit-specifier**).
   + Um especificador de confirmação para o destino da mesclagem (com a opção **--destination-commit-specifier**). 
   + O nome do repositório (com a opção **--repository-name**).
   + A opção de mesclagem a ser usada (com a opção **--merge-option**).
   + (Opcional) O nível de detalhes que deseja sobre os conflitos (com a opção **--conflict-detail-level**).
   + (Opcional) Uma estratégia de resolução de conflitos a ser usada (com a opção **--conflict-resolution-strategy**).
   + (Opcional) O número máximo de arquivos com conflitos a serem retornados (com a opção **--max-conflict-files**).

   Por exemplo, para obter uma lista de arquivos que contêm conflitos em uma mesclagem entre uma ramificação de origem denominada feature-randomizationfeature e uma ramificação de destino denominada principal usando a estratégia de mesclagem de três vias em um repositório denominado MyDemoRepo:

   ```
   aws codecommit get-merge-conflicts --source-commit-specifier feature-randomizationfeature --destination-commit-specifier main --merge-option THREE_WAY_MERGE --repository-name MyDemoRepo
   ```

   Se houver êxito, o comando gerará uma saída semelhante à seguinte:

   ```
   {
       "mergeable": false,
       "destinationCommitId": "86958e0aEXAMPLE",
       "sourceCommitId": "6ccd57fdEXAMPLE",
       "baseCommitId": "767b6958EXAMPLE",
       "conflictMetadataList": [
           {
               "filePath": "readme.md",
               "fileSizes": {
                   "source": 139,
                   "destination": 230,
                   "base": 85
               },
               "fileModes": {
                   "source": "NORMAL",
                   "destination": "NORMAL",
                   "base": "NORMAL"
               },
               "objectTypes": {
                   "source": "FILE",
                   "destination": "FILE",
                   "base": "FILE"
               },
               "numberOfConflicts": 1,
               "isBinaryFile": {
                   "source": false,
                   "destination": false,
                   "base": false
               },
               "contentConflict": true,
               "fileModeConflict": false,
               "objectTypeConflict": false,
               "mergeOperations": {
                   "source": "M",
                   "destination": "M"
               }
           }
       ]
   }
   ```

1. <a name="batch-describe-merge-conflicts"></a>Para obter informações sobre conflitos de mesclagem em todos os arquivos ou um subconjunto de arquivos em uma mesclagem entre dois especificadores de confirmação, execute o comando **batch-describe-merge-conflicts**, especificando:
   + Um especificador de confirmação para a origem da mesclagem (com a opção **--source-commit-specifier**).
   + Um especificador de confirmação para o destino da mesclagem (com a opção **--destination-commit-specifier**). 
   + A opção de mesclagem a ser usada (com a opção **--merge-option**).
   + O nome do repositório (com a opção **--repository-name**).
   + (Opcional) Uma estratégia de resolução de conflitos a ser usada (com a opção **--conflict-resolution-strategy**).
   + (Opcional) O nível de detalhes que deseja sobre os conflitos (com a opção **--conflict-detail-level**).
   + (Opcional) O número máximo de blocos de mesclagem a serem retornados (com a opção **--max-merge-hunks**).
   + (Opcional) O número máximo de arquivos com conflitos a serem retornados (com a opção **--max-conflict-files**).
   + (Opcional) O caminho de arquivos de destino a ser usado para descrever os conflitos (com a opção **--file-paths**).

    Por exemplo, para determinar os conflitos de mesclagem para mesclar uma ramificação de origem denominada *feature-randomizationfeature* com uma ramificação de destino denominada *principal* usando a estratégia *THREE\$1WAY\$1MERGE* em um repositório denominado *MyDemoRepo*:

   ```
   aws codecommit batch-describe-merge-conflicts --source-commit-specifier feature-randomizationfeature --destination-commit-specifier main --merge-option THREE_WAY_MERGE --repository-name MyDemoRepo
   ```

   Se houver êxito, o comando gerará uma saída semelhante à seguinte:

   ```
   {
       "conflicts": [
           {
               "conflictMetadata": {
                   "filePath": "readme.md",
                   "fileSizes": {
                       "source": 139,
                       "destination": 230,
                       "base": 85
                   },
                   "fileModes": {
                       "source": "NORMAL",
                       "destination": "NORMAL",
                       "base": "NORMAL"
                   },
                   "objectTypes": {
                       "source": "FILE",
                       "destination": "FILE",
                       "base": "FILE"
                   },
                   "numberOfConflicts": 1,
                   "isBinaryFile": {
                       "source": false,
                       "destination": false,
                       "base": false
                   },
                   "contentConflict": true,
                   "fileModeConflict": false,
                   "objectTypeConflict": false,
                   "mergeOperations": {
                       "source": "M",
                       "destination": "M"
                   }
               },
               "mergeHunks": [
                   {
                       "isConflict": true,
                       "source": {
                           "startLine": 0,
                           "endLine": 3,
                           "hunkContent": "VGhpcyBpEXAMPLE=="
                       },
                       "destination": {
                           "startLine": 0,
                           "endLine": 1,
                           "hunkContent": "VXNlIHRoEXAMPLE="
                       }
                   }
               ]
           }
       ],
       "errors": [],
       "destinationCommitId": "86958e0aEXAMPLE",
       "sourceCommitId": "6ccd57fdEXAMPLE",
       "baseCommitId": "767b6958EXAMPLE"
   }
   ```

1. <a name="describe-merge-conflicts"></a>Para obter informações detalhadas sobre conflitos de mesclagem de um arquivo específico em uma mesclagem entre dois especificadores de confirmação, execute o comando **describe-merge-conflicts**, especificando:
   + Um especificador de confirmação para a origem da mesclagem (com a opção **--source-commit-specifier**).
   + Um especificador de confirmação para o destino da mesclagem (com a opção **--destination-commit-specifier**). 
   + A opção de mesclagem a ser usada (com a opção **--merge-option**).
   + O caminho do arquivo de destino a ser usado para descrever os conflitos (com a opção **--file-path**).
   + O nome do repositório (com a opção **--repository-name**).
   + (Opcional) Uma estratégia de resolução de conflitos a ser usada (com a opção **--conflict-resolution-strategy**).
   + (Opcional) O nível de detalhes que deseja sobre os conflitos (com a opção **--conflict-detail-level**).
   + (Opcional) O número máximo de blocos de mesclagem a serem retornados (com a opção **--max-merge-hunks**).
   + (Opcional) O número máximo de arquivos com conflitos a serem retornados (com a opção **--max-conflict-files**).

   Por exemplo, para determinar os conflitos de mesclagem em um arquivo denominado *readme.md* em uma ramificação de origem denominada *feature-randomizationfeature* com uma ramificação de destino chamada *principal* usando a estratégia *THREE\$1WAY\$1MERGE* em um repositório denominado *MyDemoRepo*:

   ```
   aws codecommit describe-merge-conflicts --source-commit-specifier feature-randomizationfeature --destination-commit-specifier main --merge-option THREE_WAY_MERGE --file-path readme.md --repository-name MyDemoRepo
   ```

   Se houver êxito, o comando gerará uma saída semelhante à seguinte:

   ```
   {
       "conflictMetadata": {
           "filePath": "readme.md",
           "fileSizes": {
               "source": 139,
               "destination": 230,
               "base": 85
           },
           "fileModes": {
               "source": "NORMAL",
               "destination": "NORMAL",
               "base": "NORMAL"
           },
           "objectTypes": {
               "source": "FILE",
               "destination": "FILE",
               "base": "FILE"
           },
           "numberOfConflicts": 1,
           "isBinaryFile": {
               "source": false,
               "destination": false,
               "base": false
           },
           "contentConflict": true,
           "fileModeConflict": false,
           "objectTypeConflict": false,
           "mergeOperations": {
               "source": "M",
               "destination": "M"
           }
       },
       "mergeHunks": [
           {
               "isConflict": true,
               "source": {
                   "startLine": 0,
                   "endLine": 3,
                   "hunkContent": "VGhpcyBpEXAMPLE=="
               },
               "destination": {
                   "startLine": 0,
                   "endLine": 1,
                   "hunkContent": "VXNlIHRoEXAMPLE="
               }
           }
       ],
       "destinationCommitId": "86958e0aEXAMPLE",
       "sourceCommitId": "6ccd57fdEXAMPLE",
       "baseCommitId": "767b69580EXAMPLE"
   }
   ```

1. <a name="create-unreferenced-merge-commit"></a>Para criar uma confirmação sem referência que representa o resultado da mesclagem de dois especificadores de confirmação, execute o comando **create-unreferenced-merge-commit**, especificando:
   + Um especificador de confirmação para a origem da mesclagem (com a opção **--source-commit-specifier**).
   + Um especificador de confirmação para o destino da mesclagem (com a opção **--destination-commit-specifier**). 
   + A opção de mesclagem a ser usada (com a opção **--merge-option**).
   + O nome do repositório (com a opção **--repository-name**).
   + (Opcional) Uma estratégia de resolução de conflitos a ser usada (com a opção **--conflict-resolution-strategy**).
   + (Opcional) O nível de detalhes que deseja sobre os conflitos (com a opção **--conflict-detail-level**).
   + (Opcional) A mensagem de confirmação a ser incluída (com a opção **--commit-message**).
   + (Opcional) O nome a ser usado para a confirmação (com a opção **--name**).
   + (Opcional) O endereço de e-mail a ser usado para a confirmação (com a opção **--email**).
   + (Opcional) Opção de manter pastas vazias (com a opção **--keep-empty-folders**).

    Por exemplo, para determinar os conflitos de mesclagem para mesclar uma ramificação de origem denominada *bugfix-1234* com uma ramificação de destino denominada *principal* usando a estratégia ACCEPT\$1SOURCE em um repositório chamado *MyDemoRepo*:

   ```
   aws codecommit create-unreferenced-merge-commit --source-commit-specifier bugfix-1234 --destination-commit-specifier main --merge-option THREE_WAY_MERGE --repository-name MyDemoRepo --name "Maria Garcia" --email "maria_garcia@example.com" --commit-message "Testing the results of this merge."
   ```

   Se houver êxito, o comando gerará uma saída semelhante à seguinte:

   ```
   {
       "commitId": "4f178133EXAMPLE",
       "treeId": "389765daEXAMPLE"
   }
   ```

# Fechar uma pull request em um AWS CodeCommit repositório
<a name="how-to-close-pull-request"></a>

Se você deseja fechar uma solicitação pull sem mesclar o código, é possível fazer isso de várias maneiras:
+ No console, você pode fechar uma solicitação de extração sem mesclar o código. Você pode querer fazer isso se quiser usar o comando **git merge** para mesclar as ramificações manualmente ou se o código na ramificação de origem da solicitação de extração não é um código que você deseja mesclar na ramificação de destino. 
+ Você pode excluir a ramificação de origem especificada na pull request. CodeCommit fecha uma pull request automaticamente se a ramificação de origem ou de destino da pull request for excluída.
+ No AWS CLI, você pode atualizar o status de uma pull request de `OPEN` para`CLOSED`. Isso fecha a solicitação pull sem mesclar o código. 

**Topics**
+ [Fechar uma solicitação pull (console)](#how-to-close-pull-request-console)
+ [Fechar uma solicitação pull (AWS CLI)](#how-to-close-pull-request-cli)

## Fechar uma solicitação pull (console)
<a name="how-to-close-pull-request-console"></a>

Você pode usar o CodeCommit console para fechar uma pull request em um CodeCommit repositório. Depois de o status de uma solicitação de extração mudar para **Closed**, ele não poderá ser alterado de volta para **Open**, mas os usuários ainda poderão comentar as alterações e responder aos comentários.

1. Abra o CodeCommit console em [https://console.aws.amazon.com/codesuite/codecommit/home](https://console.aws.amazon.com/codesuite/codecommit/home).

1. Em **Repositories (Repositórios)**, escolha o nome do repositório. 

1. No painel de navegação, escolha **Pull Requests (Solicitações pull)**.

1. Por padrão, é exibida uma lista de todas as solicitações de extração abertas. Escolha a solicitação de extração aberta que você deseja fechar.  
![\[Solicitações pull exibidas no CodeCommit console.\]](http://docs.aws.amazon.com/pt_br/codecommit/latest/userguide/images/codecommit-pull-request-view.png)

1. Na solicitação pull, selecione **Close pull request (Fechar solicitação pull)**. Essa opção fecha a solicitação de pull sem tentar mesclar a ramificação de origem com a ramificação de destino. Essa opção não fornece uma maneira para excluir a ramificação de origem como parte do fechamento da solicitação pull, mas você pode fazer isso depois de fechar a solicitação.

## Fechar uma solicitação pull (AWS CLI)
<a name="how-to-close-pull-request-cli"></a>

Para usar AWS CLI comandos com CodeCommit, instale AWS CLI o. Para obter mais informações, consulte [Referência da linha de comando](cmd-ref.md). 

**Para usar o AWS CLI para fechar pull requests em um CodeCommit repositório**
+ Para atualizar o status de uma solicitação de extração em um repositório de `OPEN` para `CLOSED`, execute o comando **update-pull-request-status**, especificando:
  + O ID da solicitação pull (com a opção **--pull-request-id**).
  + O status da solicitação de extração(com a opção **--pull-request-status**).

  Por exemplo, para atualizar o status de uma pull request com o ID de *42* para um status de *CLOSED* em um CodeCommit repositório chamado`MyDemoRepo`:

  ```
  aws codecommit update-pull-request-status --pull-request-id 42 --pull-request-status CLOSED  
  ```

  Se houver êxito, o comando gerará uma saída semelhante à seguinte:

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Action": "codecommit:GetRepository",
              "Resource": [
                  "arn:aws:codecommit:us-east-2:111122223333:MySharedDemoRepo"
              ]
          }
      ]
  }
  ```

------