

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Trabajar con solicitudes de cambios en AWS CodeCommit repositorios
<a name="pull-requests"></a>

Una solicitud de extracción es la forma principal de que usted y otros usuarios de un repositorio puedan revisar, realizar comentarios y combinar los cambios en el código de una ramificación a otra. Puede utilizar las solicitudes de extracción para revisar de forma colaborativa los cambios en el código relacionados con pequeños cambios o correcciones, incorporación de características importantes o versiones nuevas del software publicado. A continuación se describe un posible flujo de trabajo para una solicitud de extracción:

Li Juan, un desarrollador que trabaja en un repositorio denominado MyDemoRepo, quiere trabajar en una nueva función para una próxima versión de un producto. Para mantener su trabajo separado del código listo para producción, crea una rama a partir de la rama predeterminada y le da un nombre. *feature-randomizationfeature* Escribe el código, realiza confirmaciones y envía el código de las nuevas características a esta ramificación. Quiere que otros usuarios del repositorio revisen la calidad del código antes de combinar sus cambios en la ramificación predeterminada. Para ello, crea una solicitud de extracción. La solicitud de extracción contiene la comparación entre la ramificación de trabajo y la ramificación del código donde desea combinar sus cambios (en este caso, la ramificación predeterminada). También puede crear una regla de aprobación que requiera un número específico de usuarios para aprobar su solicitud de extracción. Incluso puede especificar un grupo de usuarios de aprobación. Otros usuarios revisan el código y los cambios, y añaden comentarios y sugerencias. Podría actualizar la ramificación de trabajo varias veces con cambios en el código en respuesta a los comentarios realizados. Sus cambios se incorporan a la solicitud de cambios cada vez que los envía a esa rama. CodeCommit También podría incorporar los cambios realizados en la ramificación de destino prevista mientras esté abierta la solicitud de extracción para que los usuarios puedan estar seguros de que están revisando todos los cambios propuestos en el contexto adecuado. Cuando ella y sus revisores están satisfechos, y las condiciones para las reglas de aprobación (si las hay) se han cumplido, ella o uno de sus revisores combinan su código y cierra la solicitud de extracción. 

![\[Creación de una solicitud de extracción\]](http://docs.aws.amazon.com/es_es/codecommit/latest/userguide/images/codecommit-pull-request-create.png)


Las solicitudes de extracción requieren dos ramificaciones: una de origen, que contiene el código que se desea revisar, y otra de destino, donde se combina el código revisado. La ramificación de origen contiene la confirmación AFTER, que es la confirmación que contiene los cambios que se desean combinar en la ramificación de destino. La ramificación de destino contiene la confirmación BEFORE, que representa el estado del código antes de que la ramificación de la solicitud de extracción se combine con la ramificación de destino. La elección de la estrategia de fusión afecta a los detalles de cómo se combinan las confirmaciones entre las ramas de origen y destino en la CodeCommit consola. Para obtener más información sobre las estrategias de fusión en CodeCommit, consulte[Combinación de una solicitud de extracción (consola)](how-to-merge-pull-request.md#how-to-merge-pull-request-console).

![\[Las ramificaciones de origen y de destino de una solicitud de extracción que muestran la relación entre las confirmaciones anterior y posterior\]](http://docs.aws.amazon.com/es_es/codecommit/latest/userguide/images/codecommit-pull-request-concepts.png)


La solicitud de extracción muestra las diferencias que existen entre el extremo de la ramificación de origen y la última confirmación de la ramificación de destino cuando se va a crear la solicitud de extracción, lo que permite a los usuarios ver y realizar comentarios sobre los cambios. Puede actualizar la solicitud de extracción en respuesta a los comentarios realizados, mediante la confirmación y el envío de estos cambios a la ramificación de origen. 

![\[Añadir un comentario a una línea en una solicitud de extracción.\]](http://docs.aws.amazon.com/es_es/codecommit/latest/userguide/images/codecommit-pull-request-comment.png)


Cuando se haya revisado el código y se hayan cumplido los requisitos de la regla de aprobación (si los hay), puede cerrar la solicitud de extracción de una de las siguientes maneras: 
+ Combinando las ramificaciones localmente y enviar los cambios. Esto cierra la solicitud automáticamente si se utiliza la estrategia de fusión rápida y no hay conflictos de fusión.
+ Usa la AWS CodeCommit consola para cerrar la solicitud de extracción sin fusionar, resolver los conflictos en una fusión o, si no hay conflictos, cerrar y fusionar las ramas mediante una de las estrategias de fusión disponibles.
+ Utilice la AWS CLI.

Antes de crear una solicitud de extracción:
+ Asegúrese de que ha confirmado y enviado los cambios de código que desea revisar para una ramificación (la ramificación de origen).
+ Configure las notificaciones del repositorio para que otros usuarios puedan recibir notificaciones sobre la solicitud de extracción y los cambios que se realicen en ella. (Este paso es opcional, pero recomendable).
+ Cree y asocie plantillas de reglas de aprobación con el repositorio, de modo que las reglas de aprobación se creen automáticamente para las solicitudes de extracción con el fin de ayudar a garantizar la calidad del código. Para obtener más información, consulte [Trabajar con plantillas de reglas de aprobación](approval-rule-templates.md).

Las solicitudes de extracción son más efectivas cuando se han configurado usuarios de IAM para los usuarios del repositorio en la cuenta de Amazon Web Services. Es más fácil identificar qué usuario ha hecho cada comentario. La otra ventaja es que los usuarios de IAM pueden usar las credenciales de Git para acceder al repositorio. Para obtener más información, consulte [Paso 1: Configuración inicial para CodeCommit](setting-up-gc.md#setting-up-gc-account). Puede utilizar las solicitudes de extracción con otros tipos de usuario, incluidos los usuarios con acceso federado.

Para obtener información sobre cómo trabajar con otros aspectos del repositorio en CodeCommit[Trabajar con repositorios](repositories.md), consulte[Trabajar con plantillas de reglas de aprobación](approval-rule-templates.md),[Trabajar con archivos](files.md), [Uso de confirmaciones](commits.md)[Uso de las ramificaciones](branches.md), y[Trabajo con las preferencias del usuario](user-preferences.md). 

**Topics**
+ [Crear una solicitud de extracción](how-to-create-pull-request.md)
+ [Crear una regla de aprobación para una solicitud de extracción](how-to-create-pull-request-approval-rule.md)
+ [Ver solicitudes de cambios en un AWS CodeCommit repositorio](how-to-view-pull-request.md)
+ [Revisión de una solicitud de extracción](how-to-review-pull-request.md)
+ [Actualización de una solicitud de extracción](how-to-update-pull-request.md)
+ [Editar o eliminar una regla de aprobación para una solicitud de extracción](how-to-edit-delete-pull-request-approval-rule.md)
+ [Anular reglas de aprobación en una solicitud de extracción](how-to-override-approval-rules.md)
+ [Combinación de una solicitud de extracción en un repositorio de AWS CodeCommit](how-to-merge-pull-request.md)
+ [Resolver conflictos en una solicitud de extracción en un repositorio de AWS CodeCommit](how-to-resolve-conflict-pull-request.md)
+ [Cerrar una solicitud de extracción en un AWS CodeCommit repositorio](how-to-close-pull-request.md)

# Crear una solicitud de extracción
<a name="how-to-create-pull-request"></a>

La creación de solicitudes de extracción ayuda a otros usuarios a ver y revisar los cambios en el código antes de combinarlos en otra ramificación. Primero debe crear una ramificación para los cambios de código. Esta es la ramificación de origen de una solicitud de extracción. Después de confirmar y enviar esos cambios al repositorio, puede crear una solicitud de extracción que compare el contenido de dicha ramificación (la ramificación de origen) con la ramificación en la que desea combinar los cambios después de que la solicitud de extracción se cierre (la ramificación de destino). 

Puede utilizar la consola AWS CodeCommit o la AWS CLI para crear las solicitudes de extracción del repositorio. 

**Topics**
+ [Crear una solicitud de extracción (Consola)](#how-to-create-pull-request-console)
+ [Crear una solicitud de extracción (AWS CLI)](#how-to-create-pull-request-cli)

## Crear una solicitud de extracción (Consola)
<a name="how-to-create-pull-request-console"></a>

Puede utilizar la consola de CodeCommit para crear una solicitud de extracción en un repositorio de CodeCommit. Si el repositorio está [configurado con notificaciones](how-to-repository-email.md), los usuarios que estén suscritos recibirán un mensaje de correo electrónico cuando se cree una solicitud de extracción.

1. Abra la consola de CodeCommit en [https://console.aws.amazon.com/codesuite/codecommit/home](https://console.aws.amazon.com/codesuite/codecommit/home).

1. En **Repositories (Repositorios)**, elija el nombre del repositorio donde desea crear una solicitud de extracción. 

1. En el panel de navegación, elija **Pull Requests**.
**sugerencia**  
También puede crear solicitudes de extracción en **Branches (Ramificaciones)** y **Code (Código)**.

1. Elija **Create pull request**.   
![\[Creación de una solicitud de extracción desde la página de solicitudes de extracción en la consola de CodeCommit.\]](http://docs.aws.amazon.com/es_es/codecommit/latest/userguide/images/codecommit-pull-request-view.png)

1. En **Create pull request**, en **Source**, seleccione la ramificación que contiene los cambios que desea revisar. 

1. En **Destination (Destino)**, seleccione la ramificación en la que desea combinar los cambios de código cuando se cierre la solicitud de extracción. 

1. Elija **Compare**. Se realiza una comparación entre las dos ramificaciones y se muestran las diferencias entre ellas. También se realiza un análisis para determinar si las dos ramificaciones se pueden fusionar automáticamente cuando se cierre la solicitud de extracción.

1. Revise la información de la comparación y los cambios para asegurarse de que la solicitud de extracción contiene los cambios y las confirmaciones que desea revisar. En caso contrario, ajuste sus opciones para las ramificaciones de origen y destino y elija **Compare** de nuevo.

1. Cuando esté satisfecho con los resultados de la comparación de la solicitud de extracción, introduzca un título breve pero descriptivo para esta revisión en el campo **Title (Título)**. Este es el título que aparece en la lista de solicitudes de extracción para el repositorio. 

1. (Opcional) En **Description (Descripción)**, introduzca información sobre esta revisión y cualquier otro dato que pueda ser de utilidad a los revisores.

1. Seleccione **Crear**.  
![\[Creación de una solicitud de extracción\]](http://docs.aws.amazon.com/es_es/codecommit/latest/userguide/images/codecommit-pull-request-create.png)

Su solicitud de extracción aparece en la lista de las solicitudes de extracción del repositorio. Si ha [configurado notificaciones](how-to-repository-email.md), los suscriptores al tema de Amazon SNS recibirán un mensaje de correo electrónico para informarles de la solicitud de extracción recién creada.

## Crear una solicitud de extracción (AWS CLI)
<a name="how-to-create-pull-request-cli"></a>

Para utilizar los comandos de AWS CLI en CodeCommit, instale la AWS CLI. Para obtener más información, consulte [Referencia de la línea de comandos](cmd-ref.md). 

**Para usar la AWS CLI para crear una solicitud de extracción en un repositorio de CodeCommit**
+ Ejecute el comando **create-pull-request**, especificando:
  + El nombre de la solicitud de extracción (con la opción **--title**).
  + La descripción de la solicitud de extracción (con la opción **--description**).
  + Una lista de destinos para el comando **create-pull-request**, entre las que se incluyen:
    + El nombre del repositorio de CodeCommit en que se va a crear la solicitud de extracción (con el atributo **repositoryName**).
    + El nombre de la ramificación que contiene los cambios de código que desea revisar, también conocida como ramificación de origen (con el atributo **sourceReference**).
    + (Opcional) El nombre de la ramificación en la que desea fusionar los cambios de código, también conocida como ramificación de destino, si no desea fusionarlos en la ramificación predeterminada (con el atributo **destinationReference**).
  + Un token de idempotencia único generado por el cliente (con la opción **--client-request-token**). 

  En este ejemplo se crea una solicitud de extracción denominada *Pronunciation difficulty analyzer (Analizador de dificultades de pronunciación)* con la una descripción *Please review these changes by Tuesday (Revisar estos cambios antes del martes)*, dirigida a la ramificación de origen *jane-branch*. La solicitud de extracción se va a combinar en la ramificación predeterminada *principal* en un repositorio de CodeCommit denominado `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 
  ```

# Crear una regla de aprobación para una solicitud de extracción
<a name="how-to-create-pull-request-approval-rule"></a>

La creación de reglas de aprobación para las solicitudes de extracción ayuda a garantizar la calidad del código, porque exige a los usuarios que aprueben la solicitud de extracción antes de que el código se pueda combinar en la ramificación de destino. Puede especificar el número de usuarios que deben aprobar una solicitud de extracción. También puede especificar un grupo de usuarios de aprobación para la regla. Si lo hace, solo las aprobaciones de esos usuarios se contabilizan en el número de aprobaciones necesarias para la regla. 

**nota**  
Además, puede crear plantillas de reglas de aprobación, que pueden ayudarle a automatizar la creación de reglas de aprobación en todos los repositorios que se apliquen a cada solicitud de extracción. Para obtener más información, consulte [Trabajar con plantillas de reglas de aprobación](approval-rule-templates.md).

Puedes usar la AWS CodeCommit consola o la AWS CLI para crear reglas de aprobación para tu repositorio. 

**Topics**
+ [Crear una regla de aprobación para una solicitud de extracción (consola)](#how-to-create-pull-request-approval-rule-console)
+ [Crear una regla de aprobación para una solicitud de extracción (AWS CLI)](#how-to-create-pull-request-approval-rule-cli)

## Crear una regla de aprobación para una solicitud de extracción (consola)
<a name="how-to-create-pull-request-approval-rule-console"></a>

Puedes usar la CodeCommit consola para crear una regla de aprobación para una solicitud de extracción en un CodeCommit repositorio. 

1. Abre la CodeCommit consola en [https://console.aws.amazon.com/codesuite/codecommit/home](https://console.aws.amazon.com/codesuite/codecommit/home).

1. En **Repositories (Repositorios)**, elija el nombre del repositorio donde desea crear una regla de aprobación para una solicitud de extracción. 

1. En el panel de navegación, elija **Pull Requests**.

1. Seleccione en la lista la solicitud de extracción cuya regla de aprobación desea crear. Solo puede crear reglas de aprobación para solicitudes de extracción abiertas.  
![\[Una lista de solicitudes de cambios para un repositorio de la consola. CodeCommit\]](http://docs.aws.amazon.com/es_es/codecommit/latest/userguide/images/codecommit-pull-request-view.png)

1. En la solicitud de extracción, elija **Approvals (Aprobaciones)** y elija **Create approval rule (Crear regla de aprobación)**. 

1. En **Rule name (Nombre de regla)**, asigne a la regla un nombre descriptivo que permita saber para qué sirve. Por ejemplo, si desea requerir que dos personas aprueben una solicitud de extracción para poder combinarla, puede asignar a la regla el nombre **Require two approvals before merge**. 
**nota**  
El nombre de una regla de aprobación no se puede cambiar una vez se ha creado.

   En **Number of approvals needed (Número de aprobaciones necesarias)**, introduzca el número que desee. El valor predeterminado de es 1.   
![\[Creación de una regla de aprobación para una solicitud de extracción\]](http://docs.aws.amazon.com/es_es/codecommit/latest/userguide/images/codecommit-create-approval-rule.png)

1. (Opcional) Si desea exigir que las aprobaciones de una solicitud de extracción procedan de un grupo específico de usuarios, en **Approval rule members (Miembros de regla de aprobación)**, elija **Add (Añadir)**. En **Approver type (Tipo de aprobador)**, elija una de las opciones siguientes: 
   + **Nombre de usuario de IAM o rol asumido**: esta opción rellena previamente el ID de cuenta de AWS de la cuenta que utilizó para iniciar sesión y solo requiere un nombre. Se puede utilizar tanto para usuarios de IAM como para usuarios de acceso federado cuyo nombre coincida con el nombre proporcionado. Se trata de una opción muy potente que ofrece una gran flexibilidad. Por ejemplo, si ha iniciado sesión con la cuenta de Amazon Web Services 123456789012 y especifica esta opción, así como **Mary\$1Major**, todas las opciones siguientes se contabilizarán como aprobaciones procedentes de ese usuario:
     + Un usuario de IAM en la cuenta (`arn:aws:iam::123456789012:user/Mary_Major`)
     + Un usuario federado identificado en IAM como Mary\$1Major (`arn:aws:sts::123456789012:federated-user/Mary_Major`)

     Esta opción no reconocerá una sesión activa de alguien que asuma el rol **CodeCommitReview** con el nombre de sesión de rol Mary\$1Major (`arn:aws:sts::123456789012:assumed-role/CodeCommitReview/Mary_Major`) a menos que incluya un comodín (`*Mary_Major`). También puede especificar el nombre del rol explícitamente (`CodeCommitReview/Mary_Major`).
   + **ARN completo**: esta opción le permite especificar el nombre de recurso de Amazon (ARN) completo del usuario de IAM o rol. Esta opción también admite las funciones asumidas que utilizan otros AWS servicios, como AWS Lambda y AWS CodeBuild. Para los roles asumidos, el formato de ARN debe ser `arn:aws:sts::AccountID:assumed-role/RoleName` para los roles y `arn:aws:sts::AccountID:assumed-role/FunctionName` para las funciones.

   Si eligió el **nombre de usuario de IAM o el rol asumido** como tipo de aprobador, en **Valor**, introduzca el nombre del usuario de IAM o rol o el ARN completo del usuario o rol. Elija **Add (Agregar)** de nuevo para agregar más usuarios o roles, hasta que haya agregado todos los usuarios o roles cuyas aprobaciones se contabilizan en el número de aprobaciones necesarias. 

   Ambos tipos de aprobadores le permiten utilizar comodines (\$1) en los valores. Por ejemplo, si elige la opción de **nombre de usuario de IAM o rol asumido** y especifica **CodeCommitReview/\$1**, todos los usuarios que asumen el rol de **CodeCommitReview** se cuentan en el grupo de aprobación. Sus nombres de sesión de rol individuales se contabilizan en el número necesario de aprobadores. De esta manera, tanto Mary\$1Major como Li\$1Juan se contabilizan como aprobaciones cuando se inicia sesión y se asume el rol de `CodeCommitReview`. Para obtener más información sobre IAM ARNs, los caracteres comodín y los formatos, consulte Identificadores de [IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-arns).
**nota**  
Las reglas de aprobación no admiten aprobaciones entre cuentas.

1. Cuando haya terminado de configurar la regla de aprobación, elija **Submit (Enviar)**.

 

## Crear una regla de aprobación para una solicitud de extracción (AWS CLI)
<a name="how-to-create-pull-request-approval-rule-cli"></a>

Para usar AWS CLI comandos con CodeCommit, instale el. AWS CLI Para obtener más información, consulte [Referencia de la línea de comandos](cmd-ref.md). 

## Para crear una regla de aprobación para una solicitud de extracción en un CodeCommit repositorio

+ Ejecute el comando **create-pull-request-approval-rule**, especificando:
  + El ID de la solicitud de extracción (con la opción **--id**).
  + El nombre de la regla de aprobación (con la opción **--approval-rule-name**).
  + El contenido de la regla de aprobación (con la opción **--approval-rule-content**).

  Al crear la regla de aprobación, puede especificar a los aprobadores de un grupo de aprobación de dos maneras:
  + **CodeCommitApprovers**: Esta opción solo requiere una cuenta de Amazon Web Services y un recurso. Se puede utilizar tanto para usuarios de IAM como para usuarios de acceso federado cuyo nombre coincida con el nombre de recurso proporcionado. Se trata de una opción muy potente que ofrece una gran flexibilidad. Por ejemplo, si especifica la cuenta 123456789012 de Amazon Web Services y **Mary\$1Major**, todas las opciones siguientes se contabilizan como aprobaciones procedentes de ese usuario:
    + Un usuario de IAM en la cuenta (`arn:aws:iam::123456789012:user/Mary_Major`)
    + Un usuario federado identificado en IAM como Mary\$1Major (`arn:aws:sts::123456789012:federated-user/Mary_Major`)

    Esta opción no reconocerá una sesión activa de alguien que asuma el rol **CodeCommitReview** con el nombre de sesión de rol Mary\$1Major (`arn:aws:sts::123456789012:assumed-role/CodeCommitReview/Mary_Major`) a menos que incluya un comodín (`*Mary_Major`).
  + **ARN completo**: esta opción le permite especificar el nombre de recurso de Amazon (ARN) completo del usuario de IAM o rol. 

  Para obtener más información sobre la IAM ARNs, los caracteres comodín y los formatos, consulte Identificadores de [IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-arns).

  En el ejemplo siguiente se crea una regla de aprobación denominada `Require two approved approvers` para una solicitud de extracción con el ID `27`. La regla especifica que se requieren dos aprobaciones de un grupo de aprobación. El grupo incluye a todos los usuarios que acceden a la cuenta de `123456789012` Amazon Web Services CodeCommit y asumen su función **CodeCommitReview** en ella. También incluye un usuario de IAM o un usuario federado denominado `Nikhil_Jayashankar` en la misma cuenta de 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/*\"]}]}"
  ```

# Ver solicitudes de cambios en un AWS CodeCommit repositorio
<a name="how-to-view-pull-request"></a>

Puedes usar la AWS CodeCommit consola o la AWS CLI para ver las solicitudes de extracción de tu repositorio. De forma predeterminada, solo se ven las solicitudes de extracción abiertas, pero puede cambiar el filtro para ver todas las solicitudes de extracción, solo las solicitudes cerradas, solo las solicitudes de extracción que ha creado, etc. 

**Topics**
+ [Visualizar solicitudes de extracción (consola)](#how-to-view-pull-request-console)
+ [Visualizar solicitudes de extracción (AWS CLI)](#how-to-view-pull-request-cli)

## Visualizar solicitudes de extracción (consola)
<a name="how-to-view-pull-request-console"></a>

Puedes usar la AWS CodeCommit consola para ver una lista de solicitudes de incorporación de cambios en un CodeCommit repositorio. Al cambiar el filtro, puede cambiar la visualización de la lista para que solo muestre un conjunto determinado de solicitudes de extracción. Por ejemplo, puede ver una lista de las solicitudes de extracción que ha creado cuyo estado es **Open** o puede elegir otro filtro y ver las solicitudes de extracción que ha creado cuyo estado es **Closed**.

1. Abre la CodeCommit consola en [https://console.aws.amazon.com/codesuite/codecommit/home](https://console.aws.amazon.com/codesuite/codecommit/home).

1. En **Repositories (Repositorios)**, elija el nombre del repositorio cuyas solicitudes de extracción desea ver. 

1. En el panel de navegación, elija **Pull Requests**.

1. De forma predeterminada, se muestra una lista de todas las solicitudes de extracción abiertas.   
![\[Las solicitudes de extracción se muestran en la consola. AWS CodeCommit\]](http://docs.aws.amazon.com/es_es/codecommit/latest/userguide/images/codecommit-pull-request-view-list.png)

1. Para cambiar el filtro de visualización, elija en la lista de filtros disponibles:
   + **Open pull requests (Solicitudes de extracción abiertas)** (opción predeterminada): muestra todas las solicitudes de extracción cuyo estado es **Open (Abierto)**.
   + **All pull requests (Todas las solicitudes de extracción)**: muestra todas las solicitudes de extracción.
   + **Closed pull requests (Solicitudes de extracción cerradas)**: muestra todas las solicitudes de extracción cuyo estado es **Closed (Cerrado)**.
   + **My pull requests (Mis solicitudes de extracción)**: muestra todas las solicitudes de extracción que ha creado, sea cual sea su estado. No muestra las revisiones que ha comentado o en las que ha participado.
   + **My open pull requests (Mis solicitudes de extracción abiertas)**: muestra todas las solicitudes de extracción que ha creado cuyo estado es **Open (Abierta)**.
   + **My closed pull requests (Mis solicitudes de extracción cerradas)**: muestra todas las solicitudes de extracción que ha creado cuyo estado es **Closed (Cerrada)**.

1. Cuando encuentre una solicitud de extracción en la lista mostrada que le gustaría ver, elíjala.

## Visualizar solicitudes de extracción (AWS CLI)
<a name="how-to-view-pull-request-cli"></a>

Para usar AWS CLI comandos con CodeCommit, instale el AWS CLI. Para obtener más información, consulte [Referencia de la línea de comandos](cmd-ref.md). 

Sigue estos pasos para utilizarla AWS CLI para ver las solicitudes de incorporación de cambios en un CodeCommit repositorio.

1. Para ver una lista de las solicitudes de extracción en un repositorio, ejecute el comando **list-pull-requests**, especificando:
   + El nombre del CodeCommit repositorio en el que quieres ver las solicitudes de extracción (con la **--repository-name** opción).
   + (Opcional) El estado de la solicitud de extracción (con la opción **--pull-request-status**).
   + (Opcional) El nombre de recurso de Amazon (ARN) del usuario de IAM que ha creado la solicitud de extracción (con la opción **--author-arn**).
   + (Opcional) Un token de enumeración que se puede utilizar para devolver lotes de resultados (con la opción **--next-token**). 
   + (Opcional) Un límite en el número de resultados devueltos por solicitud (con la opción **--max-results**).

   Por ejemplo, para enumerar las solicitudes de extracción creadas por un usuario de IAM con el *arn:aws:iam::111111111111:user/Li\$1Juan* ARN y el estado *CLOSED* de en CodeCommit un repositorio denominado: `MyDemoRepo`

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

   Si se ejecuta correctamente, el resultado del comando será similar al siguiente:

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

    IDs Las solicitudes de extracción se muestran en el orden de la actividad más reciente.

1. Para ver los detalles de una solicitud de extracción, ejecute el comando **get-pull-request** con la opción **--pull-request-id**, especificando el ID de la solicitud de extracción. Por ejemplo, para ver información sobre una solicitud de extracción con el identificador de*27*:

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

   Si se ejecuta correctamente, el resultado del comando será similar al siguiente:

   ```
   {
       "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 ver las aprobaciones en una solicitud de extracción, ejecute el comando **get-pull-request-approval-state**especificando lo siguiente:
   + El ID de la solicitud de extracción (con la opción **--pull-request-id**).
   + El ID de revisión de la solicitud de extracción (mediante **--revision-id option)**). Puede obtener el ID de revisión actual de una solicitud de extracción mediante el comando [get-pull-request](#get-pull-request).

   Por ejemplo, para ver las aprobaciones de una solicitud de extracción con un ID *8* y un ID de revisión de*9f29d167EXAMPLE*:

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

   Si se ejecuta correctamente, el resultado del comando será similar al siguiente:

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

1. Para ver los eventos de una solicitud de extracción, ejecute el comando **describe-pull-request-events** con la opción **--pull-request-id**, especificando el ID de la solicitud de extracción. Por ejemplo, para ver los eventos de una solicitud de extracción con el ID de*8*:

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

   Si se ejecuta correctamente, el resultado del comando será similar al siguiente:

   ```
   {
       "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 ver si existen conflictos de combinación para una solicitud de extracción, ejecute el comando **get-merge-conflicts**, especificando:
   + El nombre del CodeCommit repositorio (con la **--repository-name** opción).
   + La ramificación, etiqueta, HEAD u otro tipo de referencia completa para el origen de los cambios que se va a utilizar en la evaluación de combinación (con la opción **--source-commit-specifier**).
   + La ramificación, etiqueta, HEAD u otro tipo de referencia completa para el destino de los cambios que se va a utilizar en la evaluación de combinación (con la opción **--destination-commit-specifier**).
   + La opción de combinación que se va a utilizar (con la opción **--merge-option**). 

   Por ejemplo, para ver si hay algún conflicto de fusión entre la punta de una rama de origen denominada *my-feature-branch* y una rama de destino denominada *main* en un repositorio denominado`MyDemoRepo`:

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

   Si se ejecuta correctamente, este comando proporciona información similar a la siguiente:

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

# Revisión de una solicitud de extracción
<a name="how-to-review-pull-request"></a>

Puedes usar la AWS CodeCommit consola para revisar los cambios incluidos en una solicitud de extracción. Puede añadir comentarios a la solicitud, a los archivos y a líneas de código individuales. También puede responder a los comentarios de otros usuarios. Si el repositorio está [configurado con notificaciones](how-to-repository-email.md), recibirá un correo electrónico cuando los usuarios respondan a sus comentarios o cuando hagan comentarios sobre una solicitud de extracción.

Puedes utilizarla AWS CLI para comentar una solicitud de cambios y responder a los comentarios. Para revisar los cambios, debes usar la CodeCommit consola, el **git diff** comando o una herramienta de diferenciación.

**Topics**
+ [Revisión de una solicitud de extracción (consola)](#how-to-review-pull-request-console)
+ [Revisar solicitudes de extracción (AWS CLI)](#how-to-review-pull-request-cli)

## Revisión de una solicitud de extracción (consola)
<a name="how-to-review-pull-request-console"></a>

Puedes usar la CodeCommit consola para revisar una solicitud de incorporación de cambios en un CodeCommit repositorio. 

1. Abre la CodeCommit consola en [https://console.aws.amazon.com/codesuite/codecommit/home](https://console.aws.amazon.com/codesuite/codecommit/home).

1. En **Repositories (Repositorios)**, seleccione el nombre del repositorio. 

1. En el panel de navegación, seleccione **Pull requests (Solicitudes de extracción)**.

1. De forma predeterminada, se muestra una lista de todas las solicitudes de extracción abiertas. Elija la solicitud de extracción abierta que desea revisar.   
![\[Abre las solicitudes de cambios que aparecen en la consola. CodeCommit\]](http://docs.aws.amazon.com/es_es/codecommit/latest/userguide/images/codecommit-pull-request-view-list.png)
**nota**  
Puede comentar una solicitud de extracción cerrada o combinada, pero no puede combinarla ni volver a abrirla.

1. En la solicitud de extracción, elija **Changes**.

1. Realice una de las siguientes acciones:
   + Para añadir un comentario general para la solicitud de extracción en su conjunto, en **Comments on changes (Comentarios de los cambios)**, bajo **New comment (Nuevo comentario)**, introduzca un comentario y, a continuación, seleccione **Save (Guardar)**. Puede utilizar [Markdown (Marcado)](https://docs.aws.amazon.com/general/latest/gr/aws-markdown.html) o introducir un comentario en texto sin formato.  
![\[Comentario general sobre los cambios en una solicitud de extracción.\]](http://docs.aws.amazon.com/es_es/codecommit/latest/userguide/images/codecommit-commenting-changecomment.png)
   + Para añadir un comentario a un archivo en la confirmación, en **Changes**, busque el nombre del archivo. Elija el icono de comentario ![\[The comment bubble icon that that indicates that you can leave a comment on that line of code.\]](http://docs.aws.amazon.com/es_es/codecommit/latest/userguide/images/codecommit-commentbubble.png) que aparece junto al nombre de archivo, introduzca un comentario y, a continuación, elija **Save (Guardar)**.   
![\[Añadir un comentario a un archivo en una solicitud de extracción.\]](http://docs.aws.amazon.com/es_es/codecommit/latest/userguide/images/codecommit-commenting-addfilecomment.png)
   + Para añadir un comentario a una línea modificada en la solicitud de extracción, en **Changes**, vaya a la línea sobre la que desea realizar un comentario. Elija el icono de comentario ![\[The comment bubble icon that that indicates that you can leave a comment on that line of code.\]](http://docs.aws.amazon.com/es_es/codecommit/latest/userguide/images/codecommit-commentbubble.png) que aparece para esa línea, introduzca un comentario y, a continuación, elija **Save (Guardar)**.   
![\[Añadir un comentario a una línea en una solicitud de extracción.\]](http://docs.aws.amazon.com/es_es/codecommit/latest/userguide/images/codecommit-pull-request-comment.png)

1. Para responder a los comentarios sobre una confirmación, en **Changes** o en **Activity**, elija **Reply**. Puede responder con texto y emojis.   
![\[Añadir respuestas y reacciones con emojis a un comentario.\]](http://docs.aws.amazon.com/es_es/codecommit/latest/userguide/images/codecommit-commenting-commenttab.png)

   Para ver los nombres de las personas que respondieron con una respuesta de reacción con emoji en particular, selecciónela. Para ver todas las reacciones con emojis e información sobre quién respondió y con qué emojis lo hizo, seleccione **Ver todas las reacciones**. Si respondió con un emoji a un comentario, su respuesta se mostrará en el icono del botón de reacción con emoji.
**nota**  
Los recuentos de reacciones que se muestran en la consola son exactos en el momento en que se cargó la página. Para obtener la información más actualizada sobre el recuento de reacciones de los emojis, actualice la página o seleccione **Ver todas las reacciones**.  
![\[Ver información sobre los usuarios que respondieron a un comentario con una reacción con emoji.\]](http://docs.aws.amazon.com/es_es/codecommit/latest/userguide/images/codecommit-comment-view-reaction.png)

1. (Opcional) Para responder a una recomendación creada por Amazon CodeGuru Reviewer, incluida la aportación de comentarios sobre la calidad de la recomendación, selecciona **Responder**. Utilice los botones de reacción para proporcionar información general acerca de si aprueba o no la recomendación. Utilice el campo de comentario para proporcionar más detalles sobre su reacción.
**nota**  
Amazon CodeGuru Reviewer es un servicio de revisión de código automatizado que utiliza el análisis de programas y el aprendizaje automático para detectar problemas comunes y recomendar soluciones en el código de Java o Python.  
Solo verás los comentarios de Amazon CodeGuru Reviewer si has asociado el repositorio a Amazon CodeGuru Reviewer, si el análisis está completo y si el código de la solicitud de extracción es código Java o Python. Para obtener más información, consulte [Asociar o desasociar un AWS CodeCommit repositorio con Amazon CodeGuru Reviewer](how-to-amazon-codeguru-reviewer.md).
Los comentarios de Amazon CodeGuru Reviewer solo aparecen en la pestaña **Cambios** si se hicieron en la revisión más reciente de la solicitud de cambios. Siempre aparecen en la pestaña **Actividad**.
Si bien puedes responder con cualquiera de las reacciones de emoji disponibles a las recomendaciones de Amazon CodeGuru Reviewer, solo se utilizan las reacciones de emoji con el pulgar hacia arriba y el pulgar hacia abajo para evaluar la utilidad de la recomendación.   
![\[Recomendación creada por Amazon CodeGuru Reviewer con un trabajo de revisión en curso.\]](http://docs.aws.amazon.com/es_es/codecommit/latest/userguide/images/codecommit-pull-request-reply-bot.png)

1. Para aprobar los cambios realizados en una solicitud de extracción, elija **Approve (Aprobar)**. 
**nota**  
No puede aprobar una solicitud de extracción que ha creado.

   Puede ver aprobaciones, reglas de aprobación para una solicitud de extracción y reglas de aprobación creadas por plantillas de reglas de aprobación en **Approvals (Aprobaciones)**. Si decide no aprobar la solicitud de extracción después de todo, puede elegir **Revoke approval (Revocar aprobación)**.
**nota**  
Solo puede aprobar o revocar la aprobación en una solicitud de extracción abierta. No se puede aprobar ni revocar la aprobación de una solicitud de extracción cuyo estado sea Merged (Combinada) o Closed (Cerrada).  
![\[Aprobaciones y reglas de aprobación en una solicitud de extracción.\]](http://docs.aws.amazon.com/es_es/codecommit/latest/userguide/images/codecommit-approval-rule-met.png)

## Revisar solicitudes de extracción (AWS CLI)
<a name="how-to-review-pull-request-cli"></a>

Para usar AWS CLI comandos con CodeCommit, instale el AWS CLI. Para obtener más información, consulte [Referencia de la línea de comandos](cmd-ref.md). 

Puedes revisar las solicitudes de cambios con los siguientes AWS CLI comandos:
+ [**post-comment-for-pull-request**](#post-comment-reply) para añadir un comentario a una solicitud de extracción
+ [**get-comments-for-pull-request**](#get-comments-for-pull-request) para ver los comentarios en una solicitud de extracción
+ [**update-pull-request-approval-state**](#update-pull-request-approval-state) para aprobar o revocar la aprobación de una solicitud de extracción
+ [**post-comment-reply**](#post-comment-reply) para responder a un comentario en una solicitud de extracción 

También puede usar emojis con comentarios en una solicitud de extracción con los siguientes comandos: 
+ Para responder a un comentario con un emoji, ejecute [**put-comment-reaction**](how-to-commit-comment.md#how-to-commit-comment-cli-commit-reply-emoji).
+ Para ver las reacciones con emojis a un comentario, ejecute [**get-comment-reactions**](how-to-commit-comment.md#how-to-commit-comment-cli-commit-emoji-view).

**Para usar el AWS CLI para revisar las solicitudes de extracción en un CodeCommit repositorio**

1. Para añadir un comentario a una solicitud de extracción, ejecute el comando **post-comment-for-pull-request**especificando lo siguiente:
   + El ID de la solicitud de extracción (con la opción **--pull-request-id**).
   + El nombre del repositorio que contiene la solicitud de extracción (con la opción **--repository-name**).
   + El ID completo de la confirmación en la ramificación de destino en la que se combina la solicitud de extracción (con la opción **--before-commit-id**).
   + El ID completo de la confirmación de la ramificación de origen que es el extremo actual de la ramificación de la solicitud de extracción en el momento en que se publica el comentario (con la opción **--after-commit-id**).
   + Un token de idempotencia único generado por el cliente (con la opción **--client-request-token**).
   + El contenido del comentario (con la opción **--content**).
   + Una lista con información de la ubicación sobre dónde se puede introducir el comentario, que incluya:
     + El nombre del archivo que se está comparando, incluida la extensión y el subdirectorio, si los hubiese (con el atributo **filePath**).
     + El número de línea del cambio del archivo comparado (con el atributo **filePosition**).
     + Si el comentario sobre el cambio se ha realizado “antes” o ”después” en la comparación entre la ramificación de origen y la de destino (con el atributo **relativeFileVersion**).

   Por ejemplo, usa este comando para añadir el comentario *"These don't appear to be used anywhere. Can we remove them?"* sobre el cambio al *ahs\$1count.py* archivo de una solicitud de extracción con el ID *47* de un repositorio denominado*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   
   ```

   Si se ejecuta correctamente, el resultado del comando será similar al siguiente.

   ```
   { 
            "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 ver los comentarios de una solicitud de extracción, ejecute el comando **get-comments-for-pull-request**especificando lo siguiente:
   + El nombre del CodeCommit repositorio (con la `--repository-name` opción).
   + El ID generado por el sistema de la solicitud de extracción (con la opción `--pull-request-id`).
   + (Opcional) Un token de enumeración para devolver el siguiente lote de resultados (con la opción `--next-token`).
   + (Opcional) Un número entero no negativo para limitar en el número de resultados devueltos (con la opción `--max-results`).

   Por ejemplo, utilice este comando para ver los comentarios de una solicitud de extracción con el ID 42.

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

   Si se ejecuta correctamente, el resultado del comando será similar al siguiente.

   ```
   {
      "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 aprobar o revocar la aprobación de una solicitud de extracción, ejecute el comando **update-pull-request-approval-state** especificando lo siguiente:
   + El ID de la solicitud de extracción (con la opción **--pull-request-id**).
   + El ID de revisión de la solicitud de extracción (mediante **--revision-id option)**). Puede obtener el ID de revisión actual de una solicitud de extracción mediante el comando [get-pull-request](how-to-view-pull-request.md#get-pull-request).
   + El estado de aprobación que desea aplicar (mediante la opción **--approval-state**). Los estados de aprobación válidos incluyen `APPROVE` y `REVOKE`.

   Por ejemplo, usa este comando para aprobar una solicitud de extracción con el identificador *27* y el identificador de revisión de*9f29d167EXAMPLE*.

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

   Si se ejecuta correctamente, este comando no devuelve nada.

1. Para publicar una respuesta a un comentario en una solicitud de extracción, ejecute el comando **post-comment-reply** especificando lo siguiente:
   + El ID generado por el sistema del comentario al que desea responder (con la opción **--in-reply-to**).
   + Un token de idempotencia único generado por el cliente (con la opción **--client-request-token**).
   + El contenido de la respuesta (con la opción **--content**). 

    Por ejemplo, usa este comando para añadir la respuesta *"Good catch. I'll remove them."* al comentario con el identificador generado por el sistema de. *abcd1234EXAMPLEb5678efgh* 

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

   Si se ejecuta correctamente, el resultado del comando será similar al siguiente.

   ```
   { 
       "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": []
       }
    }
   ```

# Actualización de una solicitud de extracción
<a name="how-to-update-pull-request"></a>

Puede actualizar una solicitud de cambios de código con más cambios de código enviando las confirmaciones a la ramificación fuente de una solicitud de extracción abierta. Para obtener más información, consulte [Crea una confirmación en AWS CodeCommit](how-to-create-commit.md).

Puede utilizar la consola AWS CodeCommit o la AWS CLI para actualizar el título o la descripción de una solicitud de extracción. Es posible que desee actualizar la solicitud de extracción porque:
+ Otros usuarios no entienden la descripción, o el título original es confuso.
+ Desea que el título o la descripción reflejen los cambios realizados en la ramificación de origen de una solicitud de extracción abierta.

## Actualizar una solicitud de extracción (consola)
<a name="how-to-update-pull-request-console"></a>

Puede utilizar la consola de CodeCommit para actualizar el título y la descripción de una solicitud de extracción en un repositorio de CodeCommit. Para actualizar el código de la solicitud de extracción, envíe las confirmaciones a la ramificación fuente de una solicitud de extracción abierta.

1. Abra la consola de CodeCommit en [https://console.aws.amazon.com/codesuite/codecommit/home](https://console.aws.amazon.com/codesuite/codecommit/home).

1. En **Repositories (Repositorios)**, elija el nombre del repositorio cuya solicitud de extracción desea actualizar. 

1. En el panel de navegación, seleccione **Pull requests (Solicitudes de extracción)**.

1. De forma predeterminada, se muestra una lista de todas las solicitudes de extracción abiertas. Elija la solicitud de extracción abierta que desea actualizar.

1. En la solicitud de extracción, elija **Details (Detalles)** y, a continuación, seleccione **Edit details (Editar detalles)** para editar el título o la descripción.
**nota**  
No puede actualizar el título o la descripción de una solicitud de extracción cerrada o combinada.

## Actualizar solicitudes de extracción (AWS CLI)
<a name="how-to-update-pull-request-cli"></a>

Para utilizar los comandos de AWS CLI en CodeCommit, instale la AWS CLI. Para obtener más información, consulte [Referencia de la línea de comandos](cmd-ref.md). 

También pueden interesarle los siguientes comandos:
+ **[update-pull-request-approval-state](how-to-review-pull-request.md#update-pull-request-approval-state)**, para aprobar o revocar la aprobación en una solicitud de extracción.
+ [**create-pull-request-approval-rule**](how-to-create-pull-request-approval-rule.md#how-to-create-pull-request-approval-rule-cli), para crear una regla de aprobación para una solicitud de extracción.
+ [**delete-pull-request-approval-rule**](how-to-edit-delete-pull-request-approval-rule.md#delete-pull-request-approval-rule), para eliminar una regla de aprobación para una solicitud de extracción.
+ [Crea una confirmación mediante el AWS CLI](how-to-create-commit.md#how-to-create-commit-cli) o [Creación de una confirmación mediante un cliente de Git](how-to-create-commit.md#how-to-create-commit-git) para crear e insertar cambios de código adicionales en la ramificación fuente de una solicitud de extracción abierta.

**Para usar la AWS CLI para actualizar solicitudes de extracción en un repositorio de CodeCommit**

1.  Para actualizar el título de una solicitud de extracción en un repositorio, ejecute el comando **update-pull-request-title**, especificando:
   + El ID de la solicitud de extracción (con la opción **--pull-request-id**).
   + El título de la solicitud de extracción (con la opción **--title**).

   Por ejemplo, para actualizar el título de una solicitud de extracción con el ID *47*:

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

1. Para actualizar la descripción de una solicitud de extracción, ejecute el comando **update-pull-request-description** especificando:
   + El ID de la solicitud de extracción (con la opción **--pull-request-id**).
   + La descripción (con la opción **--description**). 

    Por ejemplo, para actualizar la descripción de una solicitud de extracción con el ID *47* :

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

# Editar o eliminar una regla de aprobación para una solicitud de extracción
<a name="how-to-edit-delete-pull-request-approval-rule"></a>

Cuando hay una regla de aprobación en una solicitud de extracción, no se puede combinar hasta que se hayan cumplido sus condiciones. Puede cambiar las reglas de aprobación de las solicitudes de extracción para facilitar el cumplimiento de sus condiciones o para aumentar el rigor de las revisiones. Puede cambiar el número de usuarios que deben aprobar una solicitud de extracción. También puede añadir, quitar o cambiar la pertenencia a un grupo de usuarios de aprobación para la regla. Por último, si ya no desea utilizar una regla de aprobación para una solicitud de extracción, puede eliminarla.

**nota**  
También puede sustituir las reglas de aprobación para una solicitud de extracción. Para obtener más información, consulte [Anular reglas de aprobación en una solicitud de extracción](how-to-override-approval-rules.md).

Puede usar la AWS CodeCommit consola o la AWS CLI para editar y eliminar las reglas de aprobación de su repositorio. 

**Topics**
+ [Editar o eliminar una regla de aprobación para una solicitud de extracción (consola)](#how-to-edit-delete-pull-request-approval-rule-console)
+ [Editar o eliminar una regla de aprobación para una solicitud de extracción (AWS CLI)](#how-to-edit-delete-pull-request-approval-rule-cli)

## Editar o eliminar una regla de aprobación para una solicitud de extracción (consola)
<a name="how-to-edit-delete-pull-request-approval-rule-console"></a>

Puedes usar la CodeCommit consola para editar o eliminar una regla de aprobación para una solicitud de extracción en un CodeCommit repositorio. 

1. Abre la CodeCommit consola en [https://console.aws.amazon.com/codesuite/codecommit/home](https://console.aws.amazon.com/codesuite/codecommit/home).

1. En **Repositories (Repositorios)**, elija el nombre del repositorio donde desea crear o editar una regla de aprobación para una solicitud de extracción. 

1. En el panel de navegación, elija **Pull Requests**.

1. Elija la solicitud de extracción en la que desee editar o eliminar una regla de aprobación. Solo puede editar y eliminar reglas de aprobación para las solicitudes de extracción abiertas.  
![\[Una lista de solicitudes de incorporación de cambios para un repositorio de la consola. CodeCommit\]](http://docs.aws.amazon.com/es_es/codecommit/latest/userguide/images/codecommit-pull-request-view.png)

1. En la solicitud de extracción, elija **Approvals (Aprobaciones)** y, a continuación, elija la regla que desea editar o eliminar de la lista. Realice una de las siguientes acciones:
   + Si desea editar la regla, seleccione **Edit (Editar)**. 
   + Si desea eliminar la regla, elija **Delete (Eliminar)** y, a continuación, siga las instrucciones para verificar la eliminación de la regla.

1. En **Edit approval rule (Editar regla de aprobación)**, realice los cambios que desee en la regla y, a continuación, elija **Submit (Enviar)**.  
![\[Edición de una regla de aprobación\]](http://docs.aws.amazon.com/es_es/codecommit/latest/userguide/images/codecommit-pull-request-edit-rule.png)

1. Cuando haya terminado de configurar la regla de aprobación, elija **Submit (Enviar)**.

 

## Editar o eliminar una regla de aprobación para una solicitud de extracción (AWS CLI)
<a name="how-to-edit-delete-pull-request-approval-rule-cli"></a>

Para usar AWS CLI comandos con CodeCommit, instala el AWS CLI. Para obtener más información, consulte [Referencia de la línea de comandos](cmd-ref.md). 

Puede utilizar el AWS CLI para editar el contenido de una regla de aprobación y eliminar una regla de aprobación. 

**nota**  
También pueden interesarle los siguientes comandos:  
**[update-pull-request-approval-state](how-to-review-pull-request.md#update-pull-request-approval-state)**, para aprobar o revocar la aprobación en una solicitud de extracción.
[**get-pull-request-approval-states**](how-to-view-pull-request.md#get-pull-request-approval-state), para ver las aprobaciones en la solicitud de extracción.
[**evaluate-pull-request-approval-rules**](how-to-merge-pull-request.md#evaluate-pull-request-approval-rules), para determinar si se han cumplido las condiciones de las normas de aprobación para una solicitud de extracción.

**Para usar la AWS CLI para editar o eliminar una regla de aprobación para una solicitud de extracción en un CodeCommit repositorio**<a name="update-pull-request-approval-rule-content"></a>

1. Para editar una regla de aprobación, ejecute el comando **update-pull-request-approval-rule-content** especificando lo siguiente:
   + El ID de la solicitud de extracción (con la opción **--id**).
   + El nombre de la regla de aprobación (con la opción **--approval-rule-name**).
   + El contenido de la regla de aprobación (con la opción **--approval-rule-content**).

   En este ejemplo, se actualiza una regla de aprobación denominada *Require two approved approvers* para una solicitud de extracción con el ID de*27*. La regla requiere la aprobación de un usuario de un grupo de aprobaciones que incluya a todos los usuarios de IAM de la cuenta de *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 eliminar una regla de aprobación, ejecute el comando **delete-pull-request-approval-rule** especificando lo siguiente:
   + El ID de la solicitud de extracción (con la opción **--id**).
   + El nombre de la regla de aprobación (con la opción **--approval-rule-name**).

   Por ejemplo, para eliminar una regla de aprobación con el nombre de una *My Approval Rule* solicitud de extracción con el identificador de*15*:

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

# Anular reglas de aprobación en una solicitud de extracción
<a name="how-to-override-approval-rules"></a>

Durante un proceso normal de desarrollo, es conveniente que los usuarios cumplan las condiciones de las reglas de aprobación antes de combinar las solicitudes de extracción. Sin embargo, puede haber ocasiones en las que necesite acelerar la combinación de una solicitud de extracción. Por ejemplo, es posible que desee llevar al entorno de producción una corrección de errores, pero que no haya nadie disponible en el grupo de aprobación para aprobar la solicitud de extracción. En casos como estos, puede optar por anular las reglas de aprobación en una solicitud de extracción. Puede sustituir todas las reglas de aprobación de una solicitud de extracción, incluidas las creadas específicamente para la solicitud de extracción y generadas a partir de una plantilla de regla de aprobación. No puede anular selectivamente una regla de aprobación específica, sino solamente todas ellas. Una vez que haya dejado a un lado los requisitos de regla de aprobación mediante la anulación de las reglas, puede combinar la solicitud de extracción con su ramificación de destino.

Cuando se anulan las reglas de aprobación de una solicitud de extracción, la información sobre el usuario que ha anulado las reglas se registra en la actividad de la solicitud de extracción. De esta manera, puede volver al historial de una solicitud de extracción y revisar quién anuló las reglas. También puede optar por revocar la anulación si la solicitud de extracción sigue abierta. Después de haber combinado la solicitud de extracción, ya no se puede revocar su anulación.

**Topics**
+ [Anular reglas de aprobación (consola)](#how-to-override-approval-rules-console)
+ [Anular reglas de aprobación (AWS CLI)](#how-to-override-approval-rules-cli)

## Anular reglas de aprobación (consola)
<a name="how-to-override-approval-rules-console"></a>

Puede reemplazar los requisitos de las reglas de aprobación en una solicitud de extracción en la consola, dentro del proceso de revisión de una solicitud de extracción. Si cambia de opinión, puede revocar la anulación y volver a aplicar los requisitos de la regla de aprobación. Solo se pueden anular reglas de aprobación o revocar una modificación si la solicitud de extracción continúa abierta. Si se ha combinado o cerrado, no se puede cambiar su estado de anulación.

1. Abra la consola de CodeCommit en [https://console.aws.amazon.com/codesuite/codecommit/home](https://console.aws.amazon.com/codesuite/codecommit/home).

1. En **Repositories (Repositorios)**, seleccione el nombre del repositorio. 

1. En el panel de navegación, seleccione **Pull requests (Solicitudes de extracción)**. Seleccione la solicitud de extracción cuyos requisitos de regla de aprobación desee anular o cuya anulación desee revocar.

1. En la pestaña **Approvals (Aprobaciones)** elija **Override approval rules (Sustituir reglas de aprobación)**. Los requisitos se dejan de lado y el texto del botón cambia a **Revoke override (Revocar anulación)**. Para volver a aplicar los requisitos de regla de aprobación, seleccione **Revoke override (Revocar anulación)**.

## Anular reglas de aprobación (AWS CLI)
<a name="how-to-override-approval-rules-cli"></a>

Puede utilizar la AWS CLI para anular los requisitos de las reglas de aprobación. También puede usarla para ver el estado de anulación de una solicitud de extracción.<a name="override-approval-rules"></a>

## Para sustituir los requisitos de reglas de aprobación en una solicitud de extracción
<a name="override-approval-rules"></a>

1. En un terminal o en la línea de comandos, ejecute el comando **override-pull-request-approval-rules** especificando lo siguiente:
   + El ID generado por el sistema de la solicitud de extracción.
   + El ID de revisión más reciente de la solicitud de extracción. Para ver esta información, utilice **get-pull-request**.
   + El estado que desea para la anulación: `OVERRIDE` o `REVOKE`. El estado `REVOKE` elimina el estado `OVERRIDE`, pero no se guarda.

   Por ejemplo, para anular las reglas de aprobación en una solicitud de extracción con el ID **34** y el ID de revisión **927df8d8EXAMPLE**:

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

1. Si se ejecuta correctamente, este comando no devuelve nada.

1. Para revocar la anulación en una solicitud de extracción con el ID **34** y el ID de revisión **927df8d8EXAMPLE**:

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

## Para obtener información sobre el estado de anulación de una solicitud de extracción
<a name="get-override-status"></a>

1. En un terminal o en la línea de comandos, ejecute el comando **get-pull-request-override-state** especificando lo siguiente:
   + El ID generado por el sistema de la solicitud de extracción.
   + El ID de revisión más reciente de la solicitud de extracción. Para ver esta información, utilice **get-pull-request**.

   Por ejemplo, para ver el estado de anulación de una solicitud de extracción con el ID **34** y el ID de revisión **927df8d8EXAMPLE**:

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

1. Si se ejecuta correctamente, el resultado del comando será similar al siguiente:

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

# Combinación de una solicitud de extracción en un repositorio de AWS CodeCommit
<a name="how-to-merge-pull-request"></a>

Una vez que se haya revisado el código y se hayan satisfecho todas las reglas de aprobación (si las hay) de la solicitud de extracción, puede combinar una solicitud de extracción de varias maneras:
+ <a name="is-mergable"></a>Puede usar la consola para combinar automáticamente la ramificación de origen con la de destino utilizando una de las estrategias de fusión disponibles, que también cierra la solicitud de extracción. También puede resolver cualquier conflicto de combinación en la consola. La consola muestra un mensaje que indica si la solicitud de extracción se puede combinar o si se deben resolver conflictos. Cuando se resuelven todos los conflictos y se elige **Merge (Combinar)**, la combinación se realiza utilizando la estrategia de combinación que se elija. El avance rápido es la estrategia de combinación predeterminada, que es la opción predeterminada para Git. Según el estado del código en la ramificación de origen y en la de destino, esta estrategia podría no estar disponible, pero sí otras opciones, como, por ejemplo, combinación de squash o de tres modos.
+ Puede usar la AWS CLI para combinar y cerrar la solicitud de extracción mediante la estrategia de combinación de avance rápido, squash o tres modos. 
+ <a name="why-git-merge"></a>En el equipo local, puede utilizar el comando **git merge** para combinar la ramificación de origen con la de destino y, a continuación, enviar el código combinado a la ramificación de destino. Este enfoque presenta algunos inconvenientes que es importante considerar cuidadosamente. Combina la solicitud de extracción independientemente de si se han cumplido los requisitos de las normas de aprobación de la solicitud de extracción, eludiendo esos controles. La combinación y la inserción de la ramificación de destino también cierra la solicitud de extracción automáticamente si esta última se combina mediante la estrategia de combinación de avance rápido. Una ventaja de este enfoque es que el comando **git merge** le permite elegir opciones de combinación o estrategias que no están disponibles en la consola de CodeCommit. Para obtener más información acerca de **git merge** y las opciones de combinación, consulte [git-merge](https://git-scm.com/docs/git-merge) o la documentación de Git.

CodeCommit cierra automáticamente una solicitud de extracción si se elimina la ramificación de origen o de destino de la solicitud de extracción.

**Topics**
+ [Combinación de una solicitud de extracción (consola)](#how-to-merge-pull-request-console)
+ [Combinar una solicitud de extracción (AWS CLI)](#how-to-merge-pull-request-cli)

## Combinación de una solicitud de extracción (consola)
<a name="how-to-merge-pull-request-console"></a>

Puede utilizar la consola de CodeCommit para fusionar una solicitud de extracción en un repositorio de CodeCommit. Después de que el estado de una solicitud de extracción cambie a **Merged (Combinado)**, ya no aparece en la lista de las solicitudes de extracción abiertas. Una solicitud de extracción combinada se clasifica como cerrada. No se puede cambiar de nuevo a **Open (Abrir)**, aunque los usuarios pueden seguir realizando comentarios sobre los cambios y respondiendo a los comentarios. Después de combinar o cerrar una solicitud de extracción, no se puede aprobar, revocar la aprobación para ella ni sustituir las reglas de aprobación aplicadas a la solicitud de extracción.

1. Abra la consola de CodeCommit en [https://console.aws.amazon.com/codesuite/codecommit/home](https://console.aws.amazon.com/codesuite/codecommit/home).

1. En **Repositories (Repositorios)**, seleccione el nombre del repositorio. 

1. En el panel de navegación, seleccione **Pull requests (Solicitudes de extracción)**.

1. De forma predeterminada, se muestra una lista de todas las solicitudes de extracción abiertas. Elija la solicitud de extracción abierta que desea combinar.

1. En la solicitud de extracción, elija **Approvals (Aprobaciones)**. Revise la lista de aprobadores y compruebe que se cumplan las condiciones de todas las reglas de aprobación (si las hay). No se puede combinar una solicitud de extracción si una o varias reglas de aprobación tienen el estado **Rule not satisfied (Regla no cumplida)**. Si nadie ha aprobado la solicitud de extracción, considere si desea combinarla o si desea esperar las aprobaciones.
**nota**  
Si se creó una regla de aprobación para una solicitud de extracción, puede editarla o eliminarla para desbloquear la combinación. Si la regla de aprobación se creó con una plantilla de regla de aprobación, no puede editarla ni eliminarla. Solo podrá optar por anular los requisitos. Para obtener más información, consulte [Anular reglas de aprobación en una solicitud de extracción](how-to-override-approval-rules.md).  
![\[Solicitud de extracción que muestra una regla de aprobación cuyas condiciones no se han cumplido y una lista vacía de aprobadores.\]](http://docs.aws.amazon.com/es_es/codecommit/latest/userguide/images/codecommit-approval-rule-not-met.png)

1. Seleccione **Combinar**.

1. En la solicitud de extracción, elija entre las estrategias de combinación disponibles. Las estrategias de combinación que no se pueden aplicar aparecen atenuadas. Si no hay más estrategias de combinación disponibles, puede elegir resolver los conflictos manualmente en la consola de CodeCommit o puede resolverlos localmente mediante su cliente de Git. Para obtener más información, consulte [Resolver conflictos en una solicitud de extracción en un repositorio de AWS CodeCommit](how-to-resolve-conflict-pull-request.md).  
![\[Una solicitud de extracción que muestra las estrategias de combinación disponibles para la combinación en la consola de CodeCommit.\]](http://docs.aws.amazon.com/es_es/codecommit/latest/userguide/images/codecommit-merge-squash.png)
   + Una combinación de avance rápido avanza la referencia para la ramificación de destino a la confirmación más reciente de la ramificación de origen. Este es el comportamiento predeterminado de Git si es posible. No se crea ninguna confirmación de combinación, pero todo el historial de confirmaciones de la ramificación de origen se conserva como si hubiera ocurrido en la ramificación de destino. Las combinaciones de avance rápido no aparecen como una combinación de ramificaciones en la vista del visualizador de confirmaciones del historial de la ramificación de destino, porque no se crea ninguna confirmación de combinación. El extremo de la ramificación de origen se reenvía rápidamente al extremo de la ramificación de destino. 
   + Una combinación de squash crea una confirmación que contiene los cambios en la ramificación de origen y aplica dicha confirmación de squash única a la ramificación de destino. De forma predeterminada, el mensaje de confirmación de dicha confirmación de squash contiene todos los mensajes de confirmación de los cambios en la ramificación de origen. No se conserva ningún historial de confirmaciones individuales de los cambios de la ramificación. Esto puede ayudar a simplificar el historial del repositorio conservando una representación gráfica de la combinación en la vista del visualizador de confirmación del historial de la ramificación de destino. 
   + Una combinación de tres modos crea una confirmación de combinación para la combinación en la ramificación de destino, pero también conserva las confirmaciones individuales realizadas en la ramificación de origen como parte del historial de la ramificación de destino. Esto puede ayudar a mantener un historial completo de los cambios en su repositorio.

1. Si elige la estrategia de combinación de squash o tres modos, revise el mensaje de confirmación generado automáticamente y modifíquelo si desea cambiar la información. Añada el nombre y la dirección de correo electrónico para el historial de confirmaciones.

1. (Opcional) Anule la selección de la opción para eliminar la ramificación de origen como parte de la combinación. De forma predeterminada, se eliminar la ramificación de origen cuando se combina una solicitud de extracción.

1. Elija **Merge pull request (Combinar solicitud de extracción)** para completar la combinación.

## Combinar una solicitud de extracción (AWS CLI)
<a name="how-to-merge-pull-request-cli"></a>

Para utilizar los comandos de AWS CLI en CodeCommit, instale la AWS CLI. Para obtener más información, consulte [Referencia de la línea de comandos](cmd-ref.md). 

**Para usar la AWS CLI para fusionar solicitudes de extracción en un repositorio de CodeCommit**

1. <a name="evaluate-pull-request-approval-rules"></a>Para evaluar si una solicitud de extracción ha cumplido todas sus reglas de aprobación y está lista para combinarla, ejecute el comando **evaluate-pull-request-approval-rules** especificando lo siguiente:
   + El ID de la solicitud de extracción (con la opción **--pull-request-id**).
   + El ID de revisión de la solicitud de extracción (mediante ) **--revision-id option)**. Puede obtener el ID de revisión actual de una solicitud de extracción mediante el comando **[get-pull-request](how-to-view-pull-request.md#get-pull-request)**.

   Por ejemplo, para evaluar el estado de las reglas de aprobación en una solicitud de extracción con el ID *27* y el ID de revisión *9f29d167EXAMPLE*:

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

   Si se ejecuta correctamente, el resultado del comando será similar al siguiente:

   ```
   {
       "evaluation": {
           "approved": false,
           "approvalRulesNotSatisfied": [
               "Require two approved approvers"
           ],
           "overridden": false,
           "approvalRulesSatisfied": []
       }
   }
   ```
**nota**  
Este resultado indica que una solicitud de extracción no se puede combinar porque no se han cumplido los requisitos de una regla de aprobación. Para combinar esta solicitud de extracción, puede hacer que los revisores la aprueben para que cumpla las condiciones de la regla. Dependiendo de sus permisos y de cómo se creó la regla, es posible que también pueda editarla, anularla o eliminarla. Para obtener más información, consulte [Revisión de una solicitud de extracción](how-to-review-pull-request.md), [Anular reglas de aprobación en una solicitud de extracción](how-to-override-approval-rules.md) y [Editar o eliminar una regla de aprobación para una solicitud de extracción](how-to-edit-delete-pull-request-approval-rule.md). 

1. Para combinar y cerrar una solicitud de extracción utilizando la estrategia de combinación de avance rápido, ejecute el comando **merge-pull-request-by-fast-forward**, especificando:
   + El ID de la solicitud de extracción (con la opción **--pull-request-id**).
   + El ID completo de la confirmación en el extremo de la ramificación de origen (con la opción **--source-commit-id**). 
   + El nombre del repositorio (con la opción **--repository-name**).

    Por ejemplo, para combinar y cerrar una solicitud de extracción con el ID *47* y el ID de confirmación de origen *99132ab0EXAMPLE* en un repositorio llamado *MyDemoRepo*:

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

   Si se ejecuta correctamente, el resultado del comando será similar al siguiente:

   ```
   {
       "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 combinar y cerrar una solicitud de extracción mediante la estrategia de combinación de squash, ejecute el comando **merge-pull-request-by-squash**, especificando:
   + El ID de la solicitud de extracción (con la opción **--pull-request-id**).
   + El ID completo de la confirmación en el extremo de la ramificación de origen (con la opción **--source-commit-id**). 
   + El nombre del repositorio (con la opción **--repository-name**).
   + El nivel de detalle de conflictos que desea utilizar (con la opción **--conflict-detail-level**). Si no se especifica, se utiliza el **`FILE_LEVEL`** predeterminado.
   + La estrategia de resolución de conflictos que desea utilizar (con la opción **--conflict-resolution-strategy**). Si no se especifica, toma de forma predeterminada el valor `NONE` y los conflictos deben resolverse manualmente.
   + El mensaje de confirmación que incluir (con la opción **--commit-message**).
   + El nombre que se utilizará para la confirmación (con la opción **--author-name**).
   + La dirección de correo electrónico que se va a utilizar para la confirmación (con la opción **--email**).
   + Si desea mantener cualquier carpeta vacía (con la opción **--keep-empty-folders**).

   En el ejemplo siguiente se combina y cierra una solicitud de extracción con el ID *47* y el ID de confirmación de origen *99132ab0EXAMPLE* en un repositorio denominado *MyDemoRepo*. Utiliza los detalles de conflictos `LINE_LEVEL` y la estrategia de resolución de conflictos de `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"
   ```

   Si se ejecuta correctamente, este comando produce el mismo tipo de salida que la combinación de avance rápido, un resultado similar al siguiente:

   ```
   {
       "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 combinar y cerrar una solicitud de extracción mediante estrategia de combinación de tres modos, ejecute el comando **merge-pull-request-by-three-way**, especificando:
   + El ID de la solicitud de extracción (con la opción **--pull-request-id**).
   + El ID completo de la confirmación en el extremo de la ramificación de origen (con la opción **--source-commit-id**). 
   + El nombre del repositorio (con la opción **--repository-name**).
   + El nivel de detalle de conflictos que desea utilizar (con la opción **--conflict-detail-level**). Si no se especifica, se utiliza el **`FILE_LEVEL`** predeterminado.
   + La estrategia de resolución de conflictos que desea utilizar (con la opción **--conflict-resolution-strategy**). Si no se especifica, toma de forma predeterminada el valor `NONE` y los conflictos deben resolverse manualmente.
   + El mensaje de confirmación que incluir (con la opción **--commit-message**).
   + El nombre que se utilizará para la confirmación (con la opción **--author-name**).
   + La dirección de correo electrónico que se va a utilizar para la confirmación (con la opción **--email**).
   + Si desea mantener cualquier carpeta vacía (con la opción **--keep-empty-folders**).

   En el ejemplo siguiente se combina y cierra una solicitud de extracción con el ID *47* y el ID de confirmación de origen *99132ab0EXAMPLE* en un repositorio denominado *MyDemoRepo*. Utiliza las opciones predeterminadas para los detalles de conflictos y la estrategia de resolución de conflictos:

   ```
   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"
   ```

   Si se ejecuta correctamente, este comando produce el mismo tipo de salida que la combinación de avance rápido, de forma similar a como se muestra a continuación:

   ```
   {
       "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 conflictos en una solicitud de extracción en un repositorio de AWS CodeCommit
<a name="how-to-resolve-conflict-pull-request"></a>

Si su solicitud de extracción tiene conflictos y no se puede combinar, puede intentar resolver los conflictos de varias formas:
+ En el equipo local, puede utilizar el comando **git diff** para encontrar los conflictos entre las dos ramificaciones y realizar cambios para resolverlos. También puede utilizar una herramienta de diferencias u otro software que le ayudarán a encontrar y resolver las diferencias. Una vez que las haya resuelto de forma satisfactoria, puede enviar su ramificación de origen con los cambios que contienen los conflictos resueltos, lo que actualizará la solicitud de extracción. Para obtener más información sobre **git diff** y **git difftool**, consulte la documentación de Git.
+ En la consola, puede elegir **Resolve conflicts (Resolver conflictos)**. Esto abre un editor de texto sin formato que muestra los conflictos de forma similar al comando **git diff**. Puede revisar manualmente los conflictos de cada archivo que los contenga, realizar cambios y, a continuación, actualizar la solicitud de extracción con los cambios.
+ En el AWS CLI, puede utilizar la AWS CLI para obtener información sobre los conflictos de combinación y crear una confirmación de combinación sin referencias para probar una combinación. 

**Topics**
+ [Resolución de conflictos en una solicitud de extracción (consola)](#how-to-resolve-conflict-pull-request-console)
+ [Resolución de conflictos en una solicitud de extracción (AWS CLI)](#how-to-resolve-conflict-pull-request-cli)

## Resolución de conflictos en una solicitud de extracción (consola)
<a name="how-to-resolve-conflict-pull-request-console"></a>

Puede utilizar la consola de CodeCommit para resolver conflictos en una solicitud de extracción en un repositorio de CodeCommit. 

1. Abra la consola de CodeCommit en [https://console.aws.amazon.com/codesuite/codecommit/home](https://console.aws.amazon.com/codesuite/codecommit/home).

1. En **Repositories (Repositorios)**, seleccione el nombre del repositorio. 

1. En el panel de navegación, seleccione **Pull requests (Solicitudes de extracción)**.

1. De forma predeterminada, se muestra una lista de todas las solicitudes de extracción abiertas. Elija la solicitud de extracción abierta que desea combinar pero que contiene conflictos.

1. En la solicitud de extracción, elija **Resolve conflicts (Resolver conflictos)**. Esta opción solo aparece si hay conflictos que deben resolverse antes de que la solicitud de extracción se pueda combinar.  
![\[Una solicitud de extracción que muestra que tiene conflictos que deben resolverse antes de que se pueda combinar.\]](http://docs.aws.amazon.com/es_es/codecommit/latest/userguide/images/codecommit-pull-request-resolve-conflicts.png)

1. Se abre una ventana de resolución de conflictos que muestra todos los archivos que tienen conflictos que deban resolverse. Elija cada archivo de la lista para revisar los conflictos y haga los cambios necesarios hasta que se hayan resuelto todos los conflictos.  
![\[El editor de resolución de conflictos muestra un archivo con conflictos que no se han resuelto todavía.\]](http://docs.aws.amazon.com/es_es/codecommit/latest/userguide/images/codecommit-pull-request-resolve.png)
   + Puede optar por usar el contenido del archivo de origen, el contenido del archivo de destino o si el archivo no es un archivo binario, para editar manualmente el contenido de un archivo para que contenga únicamente los cambios que desee. Se utilizan marcadores de diferencia estándar de git para mostrar los marcadores de conflictos entre las ramificaciones de destino (HEAD) y de origen en el archivo.
   + Si un archivo es un archivo binario, un submódulo de Git o si hay un conflicto de nombre de archivo/carpeta, debe optar por utilizar el archivo de origen o el archivo de destino para resolver los conflictos. No puede ver o editar archivos binarios en la consola de CodeCommit.
   + Si hay conflictos de modo de archivo, verá la opción para resolver dicho conflicto eligiendo entre el modo de archivo del archivo de origen y el modo de archivo del archivo de destino. 
   + Si decide que desea descartar los cambios para un archivo y restaurarlos a su estado en conflicto, elija **Reset file (Restablecer archivo)**. Esto le permite resolver los conflictos en una manera diferente.

1. Cuando esté satisfecho con los cambios, elija **Undate pull request (Actualizar solicitud de extracción)**.
**nota**  
Debe resolver todos los conflictos de todos los archivos para que pueda actualizar correctamente la solicitud de extracción con los cambios. 

1. La solicitud de extracción se actualiza con los cambios y se puede combinar. Verá la página de combinación. Puede elegir combinar la solicitud de extracción en este momento o puede volver a la lista de solicitudes de extracción. 

## Resolución de conflictos en una solicitud de extracción (AWS CLI)
<a name="how-to-resolve-conflict-pull-request-cli"></a>

Para utilizar los comandos de AWS CLIen CodeCommit, instale la AWS CLI. Para obtener más información, consulte [Referencia de la línea de comandos](cmd-ref.md). 

Ningún comando de AWS CLI único le permitirá resolver los conflictos en una solicitud de extracción y combinar dicha solicitud. Sin embargo, puede utilizar los comandos individuales para descubrir los conflictos, intentar resolverlos y comprobar si una solicitud de extracción es combinable. Puede usar:
+ **get-merge-options**, para averiguar qué opciones de combinación están disponibles para combinar entre dos especificadores de confirmación.
+ **get-merge-conflicts**, para devolver una lista de archivos con conflictos de combinación en una combinación entre dos especificadores de confirmación.
+ **batch-describe-merge-conflicts**, para obtener información acerca de todos los conflictos de combinación en los archivos en una fusión entre dos confirmaciones mediante una estrategia de fusión especificada. 
+ **describe-merge-conflicts**, para obtener información detallada sobre conflictos de combinación para un archivo específico entre dos confirmaciones mediante una estrategia de combinación especificada.
+ **create-unreferenced-merge-commit**, para probar el resultado de combinar dos especificadores de combinación mediante una estrategia de combinación especificada.

1. <a name="get-merge-options"></a>Para descubrir qué opciones de fusión están disponibles para una combinación de dos especificadores de confirmación, ejecute el comando **get-merge-options**, especificando:
   + Un especificador de confirmación para el origen de la combinación (con la opción **--source-commit-specifier**).
   + Un especificador de confirmación para el destino para la combinación (con la opción **--destination-commit-specifier**). 
   + El nombre del repositorio (con la opción **--repository-name**).
   + (Opcional) Una estrategia de resolución de conflictos que se va a utilizar (con la opción **--conflict-resolution-strategy**).
   + (Opcional) El nivel de detalle que desea sobre los conflictos (con la opción **--conflict-detail-level**).

    Por ejemplo, para determinar las estrategias de combinación disponibles para combinar una ramificación de origen denominada *bugfix-1234* con una ramificación de destino denominada *principal* en un repositorio denominado *MyDemoRepo*:

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

   Si se ejecuta correctamente, el resultado del comando será similar al siguiente:

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

1. <a name="get-merge-conflict"></a>Para obtener una lista de los archivos que contienen conflictos de combinación en una combinación entre dos especificadores de confirmación, ejecute el comando **get-merge-conflicts**, especificando:
   + Un especificador de confirmación para el origen de la combinación (con la opción **--source-commit-specifier**).
   + Un especificador de confirmación para el destino para la combinación (con la opción **--destination-commit-specifier**). 
   + El nombre del repositorio (con la opción **--repository-name**).
   + La opción de combinación que desea utilizar (con la opción **--merge-option**).
   + (Opcional) El nivel de detalle que desea sobre los conflictos (con la opción **--conflict-detail-level**).
   + (Opcional) Una estrategia de resolución de conflictos que se va a utilizar (con la opción **--conflict-resolution-strategy**).
   + (Opcional) El número máximo de archivos con conflictos que devolver (con la opción **--max-conflict-files**).

   Por ejemplo, para obtener una lista de archivos que contienen conflictos en una combinación entre una ramificación de origen denominada feature-randomizationfeature y una ramificación de destino denominada principal con la estrategia de combinación de tres modos en un repositorio denominado MyDemoRepo:

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

   Si se ejecuta correctamente, el resultado del comando será similar al siguiente:

   ```
   {
       "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 obtener información sobre los conflictos de combinación en todos los archivos o un subconjunto de archivos en una combinación de dos especificadores de confirmación, ejecute el comando **batch-describe-merge-conflicts**, especificando:
   + Un especificador de confirmación para el origen de la combinación (con la opción **--source-commit-specifier**).
   + Un especificador de confirmación para el destino para la combinación (con la opción **--destination-commit-specifier**). 
   + La opción de combinación que desea utilizar (con la opción **--merge-option**).
   + El nombre del repositorio (con la opción **--repository-name**).
   + (Opcional) Una estrategia de resolución de conflictos que se va a utilizar (con la opción **--conflict-resolution-strategy**).
   + (Opcional) El nivel de detalle que desea sobre los conflictos (con la opción **--conflict-detail-level**).
   + (Opcional) El número máximo de fragmentos de combinación que devolver (con la opción **--max-merge-hunks**).
   + (Opcional) El número máximo de archivos con conflictos que devolver (con la opción **--max-conflict-files**).
   + (Opcional) La ruta de archivos de destino que se va a utilizar para describir los conflictos (con la opción **--file-paths**).

    Por ejemplo, para determinar los conflictos de combinación para combinar una ramificación de origen denominada *feature-randomizationfeature* con una ramificación de destino denominada *principal* utilizando la estrategia *COMBINACIÓN\$1TRES\$1MODOS* en un repositorio 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
   ```

   Si se ejecuta correctamente, el resultado del comando será similar al siguiente:

   ```
   {
       "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 obtener información detallada sobre conflictos de combinación para un archivo específico en una combinación de dos especificadores de confirmación, ejecute el comando **describe-merge-conflicts**, especificando:
   + Un especificador de confirmación para el origen de la combinación (con la opción **--source-commit-specifier**).
   + Un especificador de confirmación para el destino para la combinación (con la opción **--destination-commit-specifier**). 
   + La opción de combinación que desea utilizar (con la opción **--merge-option**).
   + La ruta del archivo de destino que se va a utilizar para describir los conflictos (con la opción **--file-path**).
   + El nombre del repositorio (con la opción **--repository-name**).
   + (Opcional) Una estrategia de resolución de conflictos que se va a utilizar (con la opción **--conflict-resolution-strategy**).
   + (Opcional) El nivel de detalle que desea sobre los conflictos (con la opción **--conflict-detail-level**).
   + (Opcional) El número máximo de fragmentos de combinación que devolver (con la opción **--max-merge-hunks**).
   + (Opcional) El número máximo de archivos con conflictos que devolver (con la opción **--max-conflict-files**).

   Por ejemplo, para determinar los conflictos de combinación para un archivo denominado *readme.md* en una ramificación de origen denominada *feature-randomizationfeature* con una ramificación de destino denominada *principal* utilizando la estrategia *COMBINACIÓN\$1TRES\$1MODOS* en un repositorio 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
   ```

   Si se ejecuta correctamente, el resultado del comando será similar al siguiente:

   ```
   {
       "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 crear una confirmación sin referencia que representa el resultado de combinar dos especificadores, ejecute el comando **create-unreferenced-merge-commit**, especificando:
   + Un especificador de confirmación para el origen de la combinación (con la opción **--source-commit-specifier**).
   + Un especificador de confirmación para el destino para la combinación (con la opción **--destination-commit-specifier**). 
   + La opción de combinación que desea utilizar (con la opción **--merge-option**).
   + El nombre del repositorio (con la opción **--repository-name**).
   + (Opcional) Una estrategia de resolución de conflictos que se va a utilizar (con la opción **--conflict-resolution-strategy**).
   + (Opcional) El nivel de detalle que desea sobre los conflictos (con la opción **--conflict-detail-level**).
   + (Opcional) El mensaje de confirmación que incluir (con la opción **--commit-message**).
   + (Opcional) El nombre que se va a utilizar para la confirmación (con la opción **--name**).
   + (Opcional) La dirección de correo electrónico para la confirmación (con la opción **--email**).
   + (Opcional) Si cualquier vacío para mantener carpetas (con la opción **--keep-empty-folders**).

    Por ejemplo, para determinar los conflictos de combinación para combinar una ramificación de origen denominada *bugfix-1234* con una ramificación de destino denominada principal utilizando la estrategia *ACEPTAR\$1ORIGEN* en un repositorio denominado *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."
   ```

   Si se ejecuta correctamente, el resultado del comando será similar al siguiente:

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

# Cerrar una solicitud de extracción en un AWS CodeCommit repositorio
<a name="how-to-close-pull-request"></a>

Si desea cerrar una solicitud de extracción sin combinar el código, puede hacerlo de varias formas:
+ En la consola, puede cerrar una solicitud de extracción sin combinar el código. Se recomienda hacerlo si desea utilizar el comando **git merge** para combinar manualmente las ramificaciones o si no desea combinar el código de la ramificación de origen de la solicitud de extracción en la ramificación de destino. 
+ Puedes eliminar la rama de origen especificada en la solicitud de extracción. CodeCommit cierra una solicitud de extracción automáticamente si se elimina la rama de origen o destino de la solicitud de extracción.
+ En el AWS CLI, puedes actualizar el estado de una solicitud de extracción de `OPEN` a`CLOSED`. Esto cierra la solicitud de extracción sin combinar el código. 

**Topics**
+ [Cierre de una solicitud de extracción (consola)](#how-to-close-pull-request-console)
+ [Cerrar una solicitud de extracción (AWS CLI)](#how-to-close-pull-request-cli)

## Cierre de una solicitud de extracción (consola)
<a name="how-to-close-pull-request-console"></a>

Puedes usar la CodeCommit consola para cerrar una solicitud de extracción en un CodeCommit repositorio. Después de que el estado de una solicitud de extracción cambie a **Closed**, ya no se puede cambiar de nuevo a **Open**, aunque los usuarios pueden seguir realizando comentarios sobre los cambios y respondiendo a los comentarios.

1. Abre la CodeCommit consola en [https://console.aws.amazon.com/codesuite/codecommit/home](https://console.aws.amazon.com/codesuite/codecommit/home).

1. En **Repositories (Repositorios)**, seleccione el nombre del repositorio. 

1. En el panel de navegación, seleccione **Pull requests (Solicitudes de extracción)**.

1. De forma predeterminada, se muestra una lista de todas las solicitudes de extracción abiertas. Elija la solicitud de extracción abierta que desea cerrar.  
![\[Las solicitudes de extracción se muestran en la consola. CodeCommit\]](http://docs.aws.amazon.com/es_es/codecommit/latest/userguide/images/codecommit-pull-request-view.png)

1. En la solicitud de extracción, elija **Close pull request (Cerrar solicitud de extracción)**. Esta opción cierra la solicitud de extracción sin intentar combinar la ramificación de origen en la de destino. Aunque esta opción no ofrece la posibilidad de eliminar la ramificación de origen como parte del proceso de cierre de la solicitud de extracción, puede hacerlo usted mismo después de que se cierre la solicitud.

## Cerrar una solicitud de extracción (AWS CLI)
<a name="how-to-close-pull-request-cli"></a>

Para usar AWS CLI comandos con CodeCommit, instale el AWS CLI. Para obtener más información, consulte [Referencia de la línea de comandos](cmd-ref.md). 

**Para usar el AWS CLI para cerrar las solicitudes de cambios en un CodeCommit repositorio**
+ Para actualizar el estado de una solicitud de extracción en un repositorio de `OPEN`a `CLOSED`, ejecute el comando **update-pull-request-status** especificando lo siguiente:
  + El ID de la solicitud de extracción (con la opción **--pull-request-id**).
  + El estado de la solicitud de extracción (con la opción **--pull-request-status**).

  Por ejemplo, para actualizar el estado de una solicitud de extracción con el ID de *42* a un estado de *CLOSED* en un CodeCommit repositorio llamado`MyDemoRepo`:

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

  Si se ejecuta correctamente, el resultado del comando será similar al siguiente:

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

****  

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

------