Crear una regla de aprobación para una solicitud de extracción - AWS CodeCommit

AWS CodeCommit ya no está disponible para nuevos clientes. Los clientes actuales de AWS CodeCommit pueden seguir utilizando el servicio con normalidad. Más información»

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.

Crear una regla de aprobación para una solicitud de extracción

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.

Puede utilizar la consola de AWS CodeCommit o la AWS CLI para crear reglas de aprobación para su repositorio.

Crear una regla de aprobación para una solicitud de extracción (consola)

Puede utilizar la consola de CodeCommit para crear una regla de aprobación para 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.

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

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

  4. 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 extracción para un repositorio en la consola de CodeCommit.
  5. En la solicitud de extracción, elija Approvals (Aprobaciones) y elija Create approval rule (Crear regla de aprobación).

  6. 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 es 1.

    Creación de una regla de aprobación para una solicitud de extracción
  7. (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_Major, 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_Major (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_Major (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 roles asumidos utilizados por otros servicios de AWS, 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 (*) en los valores. Por ejemplo, si elige la opción de nombre de usuario de IAM o rol asumido y especifica CodeCommitReview/*, 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_Major como Li_Juan se contabilizan como aprobaciones cuando se inicia sesión y se asume el rol de CodeCommitReview. Para obtener más información acerca de los ARN de IAM, comodines y formatos, consulte Identificadores de IAM.

    nota

    Las reglas de aprobación no admiten aprobaciones entre cuentas.

  8. 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)

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.

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

  1. 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_Major, 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_Major (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_Major (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 acerca de los ARN de IAM, comodines y formatos, consulte Identificadores de IAM.

    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 CodeCommit y asumen el rol de CodeCommitReview en la cuenta de 123456789012 Amazon Web Services. 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/*\"]}]}"
  2. Si se ejecuta correctamente, el resultado del comando será similar al siguiente:

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