Crear una plantilla de regla de aprobación - AWS CodeCommit

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 plantilla de regla de aprobación

Puede crear una o varias plantillas de reglas de aprobación para ayudarle a personalizar los flujos de trabajo de desarrollo en los repositorios. Crear varias plantillas le permite configurar la creación automática de reglas de aprobación para que las distintas ramificaciones tengan los niveles adecuados de aprobación y control. Por ejemplo, puede crear diferentes plantillas para las ramificaciones de producción y desarrollo y aplicarlas a uno o más repositorios. Cuando los usuarios crean solicitudes de extracción en esos repositorios, la solicitud se evalúa en relación con esas plantillas. Si la solicitud coincide con las condiciones de las plantillas aplicadas, se crean reglas de aprobación para la solicitud de extracción.

Puede utilizar la consola o la AWS CLI para crear plantillas de reglas de aprobación. Para obtener más información sobre las políticas administradas y los permisos para las plantillas de reglas de aprobación, consulte Permisos para acciones en plantillas de reglas de aprobación y AWS políticas gestionadas para CodeCommit.

Crear una plantilla de regla de aprobación (consola)

Las plantillas de reglas de aprobación no están asociadas con ningún repositorio de forma predeterminada. Puede establecer una asociación entre una plantilla y uno o varios repositorios al crear la plantilla, o bien puede agregar las asociaciones más adelante.

Para crear una plantilla de regla de aprobación (consola)

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

  2. Elija Approval rule templates (Plantillas de reglas de aprobación) y, a continuación, elija Create template (Crear plantilla).

  3. En Approval rule template name (Nombre de plantilla de regla de aprobación), asigne a la plantilla un nombre descriptivo con el fin de saber para qué sirve. Por ejemplo, si desea requerir que una persona de un conjunto de desarrolladores sénior apruebe una solicitud de extracción para que se pueda combinar, puede asignar a la regla el nombre Require 1 approver from a senior developer.

  4. (Opcional) En Description (Descripción), proporcione una descripción del propósito de esta plantilla. Esto puede ayudar a otros a decidir si esta plantilla es adecuada para sus repositorios.

  5. En Number of approvals needed (Número de aprobaciones necesarias), introduzca el número que desee. El valor predeterminado es 1.

  6. (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 Amazon Web Services 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 elige esta opción, ha iniciado sesión con la cuenta de Amazon Web Services 123456789012 y especifica 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 reconoce 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 al iniciar sesión y asumir 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.

  7. (Opcional) En Branch filters (Filtros de ramificación), introduzca los nombres de ramificación de destino para filtrar la creación de reglas de aprobación. Por ejemplo, si especifica principal, se crea una regla de aprobación para las solicitudes de extracción en los repositorios asociados solamente si la ramificación de destino para la solicitud de extracción es una ramificación denominada principal. Puede utilizar comodines (*) en los nombres de ramificación para aplicar reglas de aprobación a todos los nombres de ramificación que coincidan con los casos de comodín. Sin embargo, no se puede utilizar un comodín al principio del nombre de una ramificación. Puede especificar hasta 100 nombres de ramificación. Si no especifica ningún filtro, la plantilla se aplicará a todas las ramificaciones de un repositorio asociado.

  8. (Opcional) En Repositorios asociados, en la lista Repositorios elija los repositorios de Región de AWS que desea asociar a esta regla de aprobación.

    nota

    Puede optar por asociar repositorios después de crear la plantilla. Para obtener más información, consulte Asociar una plantilla de regla de aprobación con un repositorio.

  9. Seleccione Create (Crear).

Una plantilla de regla de aprobación que requiere un aprobador de una regla de aprobación definida si se crea una solicitud de extracción en la ramificación principal, asociada a dos repositorios

Crear una plantilla de regla de aprobación (AWS CLI)

Puede utilizar la AWS CLI para crear plantillas de reglas de aprobación. Cuando se usa la AWS CLI, puede especificar referencias de destino para la plantilla, de modo que solo se aplique a las solicitudes de extracción cuyas ramificaciones de destino coincidan con las de la plantilla.

Para crear una plantilla de regla de aprobación (AWS CLI)

  1. En un terminal o en la línea de comandos, ejecute el comando create-approval-rule-template especificando lo siguiente:

    • El nombre de la plantilla de regla de aprobación. Es conveniente usar un nombre que describa su propósito.

    • Una descripción de la plantilla de regla de aprobación. Al igual que con el nombre, es conveniente proporcionar una descripción detallada.

    • La estructura JSON de la plantilla de regla de aprobación. Esta estructura puede incluir los requisitos para las referencias de destino, que son las ramificaciones de destino para las solicitudes de extracción en las que se aplica la regla de aprobación, así como miembros del grupo de aprobación, que son usuarios cuyas aprobaciones se contabilizan en el número de aprobaciones necesarias.

    Al crear el contenido de 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 AWS 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 reconoce una sesión activa de alguien que asuma el rol SeniorDevelopers con el nombre de sesión de rol Mary_Major (arn:aws:sts::123456789012:assumed-role/SeniorDevelopers/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 plantilla de regla de aprobación denominada 2-approver-rule-for-main y la descripción Requires two developers from the team to approve the pull request if the destination branch is main. La plantilla requiere que dos usuarios que asuman el rol de CodeCommitReview aprueben cualquier solicitud de extracción antes de que se pueda combinar con la ramificación main:

    aws codecommit create-approval-rule-template --approval-rule-template-name 2-approver-rule-for-main --approval-rule-template-description "Requires two developers from the team to approve the pull request if the destination branch is main" --approval-rule-template-content "{\"Version\": \"2018-11-08\",\"DestinationReferences\": [\"refs/heads/main\"],\"Statements\": [{\"Type\": \"Approvers\",\"NumberOfApprovalsNeeded\": 2,\"ApprovalPoolMembers\": [\"arn:aws:sts::123456789012:assumed-role/CodeCommitReview/*\"]}]}"
  2. Si se ejecuta correctamente, este comando proporciona información similar a la siguiente:

    { "approvalRuleTemplate": { "approvalRuleTemplateName": "2-approver-rule-for-main", "creationDate": 1571356106.936, "approvalRuleTemplateId": "dd8b17fe-EXAMPLE", "approvalRuleTemplateContent": "{\"Version\": \"2018-11-08\",\"DestinationReferences\": [\"refs/heads/main\"],\"Statements\": [{\"Type\": \"Approvers\",\"NumberOfApprovalsNeeded\": 2,\"ApprovalPoolMembers\": [\"arn:aws:sts::123456789012:assumed-role/CodeCommitReview/*\"]}]}", "lastModifiedUser": "arn:aws:iam::123456789012:user/Mary_Major", "approvalRuleTemplateDescription": "Requires two developers from the team to approve the pull request if the destination branch is main", "lastModifiedDate": 1571356106.936, "ruleContentSha256": "4711b576EXAMPLE" } }