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.
Aprobación de comentarios de solicitudes de extracción
CodeBuild admite políticas de creación de solicitudes de extracción que proporcionan un control adicional sobre las compilaciones activadas por las solicitudes de extracción. No conviene compilar automáticamente solicitudes de extracción de usuarios desconocidos hasta que se puedan revisar sus cambios. Esta característica permite solicitar a uno de los miembros del equipo que primero revise el código y, a continuación, ejecute la canalización. Esta medida se suele utilizar por seguridad cuando se compila un código enviado por colaboradores desconocidos.
Las políticas de creación de solicitudes de extracción te permiten controlar cuándo se CodeBuild activan las compilaciones de las solicitudes de extracción en función de los permisos y el estado de aprobación del colaborador. Esto es algo particularmente importante en los repositorios públicos o los repositorios que aceptan contribuciones de colaboradores externos.
Cuando está habilitada, esta característica garantiza que las compilaciones solo se desencadenen para solicitudes de extracción cuando:
-
La solicitud de extracción la crea un colaborador de confianza.
-
Un colaborador de confianza aprueba la solicitud de extracción publicando un comentario específico.
Funcionamiento
- Colaboradores de confianza
-
El colaborador de confianza es un usuario cuyo rol actual en el sistema de control de código fuente está establecido en la política basada en solicitudes de extracción como roles de aprobador. Cuando un colaborador de confianza crea una solicitud de cambios, CodeBuild activa la compilación automáticamente, manteniendo el comportamiento actual.
- Colaboradores que no son de confianza
-
Un colaborador que no es de confianza es un usuario cuyo rol no está establecido en la lista de roles de aprobador. Cuando un colaborador que no es de confianza crea una solicitud de extracción:
-
CodeBuild marca el estado de la compilación como «Fallido» con el mensaje «Se requiere la aprobación de la solicitud de extracción para iniciar una compilación».
-
Un colaborador de confianza debe revisar los cambios y publicar un comentario con
/codebuild_run(para desencadenar la compilación. Por ejemplo,<SHA_OF_THE_LATEST_COMMIT>)/codebuild_run(.046e8b67481d53bdc86c3f6affdd5d1afae6d369) -
CodeBuild valida los permisos del comentarista y activa la compilación si se aprueba.
-
Los resultados de la compilación se devuelven a la página de solicitudes de extracción.
-
- Sintaxis de aprobación de comentarios
-
Los colaboradores de confianza pueden aprobar compilaciones mediante los siguientes formatos de comentario:
-
/codebuild_run(: desencadena la compilación en el SHA de confirmación especificado.046e8b67481d53bdc86c3f6affdd5d1afae6d369)
-
Configuración
- Comportamiento predeterminado
-
La política de creación de solicitudes de extracción está habilitada de forma predeterminada para todos los proyectos recién creados CodeBuild .
- Parámetros de la API
-
La política de compilación de solicitudes de extracción se configura mediante el parámetro
PullRequestBuildPolicyen las siguientes acciones:-
CreateWebhook -
UpdateWebhook
-
- Estructura de
PullRequestBuildPolicy -
{ "requiresCommentApproval": "string", "approverRoles": ["string", ...] } requiresCommentApproval-
Especifica cuándo se requiere aprobación basada en comentarios antes de desencadenar una compilación a partir de solicitudes de extracción. Esta configuración determina si las compilaciones se ejecutan automáticamente o si requieren una aprobación explícita mediante comentarios.
Tipo: cadena
Valores válidos:
-
DISABLED: las compilaciones se desencadenan automáticamente sin requerir aprobación de comentarios. -
FORK_PULL_REQUESTS: solo las solicitudes de extracción de repositorios bifurcados requieren aprobación de comentarios (a menos que colaborador sea uno de los roles de aprobador). -
ALL_PULL_REQUESTS: todas las solicitudes de extracción requieren aprobación de comentarios antes de ejecutar compilaciones (a menos que colaborador sea uno de los roles de aprobador). Este es el valor predeterminado.
-
approverRoles-
Lista de roles de repositorio que tienen privilegios de aprobación para compilaciones de solicitudes de extracción cuando se requiere aprobación de comentarios. Solo los usuarios con estos roles pueden proporcionar aprobaciones de comentarios válidas. Si un colaborador de solicitudes de extracción tiene uno de estos roles, las compilaciones de solicitudes de extracción se desencadenarán automáticamente.
Tipo: matriz de cadenas
Valores válidos para los GitHub proyectos (los valores se asignan a las GitHub funciones):
-
GITHUB_ADMIN: administradores del repositorio -
GITHUB_MAINTAIN: mantenedores del repositorio -
GITHUB_WRITE: usuario con permisos de escritura -
GITHUB_TRIAGE: usuario con permisos de clasificación -
GITHUB_READ: usuario con permisos de lectura -
Valor predeterminado:
["GITHUB_ADMIN", "GITHUB_MAINTAINER", "GITHUB_WRITE"]
Valores válidos para los GitLab proyectos (los valores se asignan a los GitLab roles):
-
GITLAB_OWNER: propietario del repositorio -
GITLAB_MAINTAINER: mantenedor del repositorio -
GITLAB_DEVELOPER: usuario con permisos de desarrollador -
GITLAB_REPORTER: usuario con permisos de informador -
GITLAB_PLANNER: usuario con permisos de planificador -
GITLAB_GUEST: usuario con permisos de invitado -
Valor predeterminado:
["GITLAB_OWNER", "GITLAB_MAINTAINER", "GITLAB_DEVELOPER"]
Valores válidos para proyectos de Bitbucket (los valores se asignan a roles de Bitbucket):
-
BITBUCKET_ADMIN: administrador del repositorio -
BITBUCKET_WRITE: usuario con permisos de escritura -
BITBUCKET_READ: usuario con permisos de lectura -
Valor predeterminado:
["BITBUCKET_ADMIN", "BITBUCKET_WRITE"]
-
Ejemplos
- Habilitación de aprobación de comentarios para todas las solicitudes de extracción
-
Si quieres usar el AWS CodeBuild SDK para habilitar o deshabilitar la política de creación de solicitudes de cambios para un webhook, usa el
pullRequestBuildPolicycampo de la sintaxis de solicitud de los métodosCreateWebhooko de laUpdateWebhookAPI. Para obtener más información, consulta WebhookFilter en la CodeBuild Referencia de la API de .Los usuarios con roles de administrador, mantenimiento y escritura de Github serán considerados colaboradores de confianza.
"pullRequestBuildPolicy": { "requiresCommentApproval": "ALL_PULL_REQUESTS", "approverRoles": ["GITHUB_ADMIN", "GITHUB_MAINTAIN", "GITHUB_WRITE"] } - Habilitación de la aprobación de comentarios solo para administradores y mantenedores de repositorios
-
Los usuarios con GitHub funciones de administrador y mantenimiento serán tratados como colaboradores de confianza.
"pullRequestBuildPolicy": { "requiresCommentApproval": "FORK_PULL_REQUESTS", "approverRoles": ["GITHUB_ADMIN", "GITHUB_MAINTAINER"] } - Deshabilitación de la aprobación de comentarios
-
"pullRequestBuildPolicy": { "requiresCommentApproval": "DISABLED" }
AWS CloudFormation
Para usar una AWS CloudFormation plantilla que habilite o deshabilite la política de creación de solicitudes de extracción para un webhook, usa la PullRequestBuildPolicy propiedad. La siguiente parte de una AWS CloudFormation plantilla con formato YAML crea un proyecto con un webhook que tiene habilitada la política de creación de solicitudes de extracción para todas las solicitudes de incorporación de cambios. Roles de mantenimiento y administración especificados como aprobadores.
CodeBuildProject: Type: AWS::CodeBuild::Project Properties: Name: MyProject ServiceRole: service-role Artifacts: Type: NO_ARTIFACTS Environment: Type: LINUX_CONTAINER ComputeType: BUILD_GENERAL1_SMALL Image: aws/codebuild/standard:5.0 Source: Type: BITBUCKET Location: source-location Triggers: Webhook: true FilterGroups: - - Type: EVENT Pattern: PULL_REQUEST_CREATED,PULL_REQUEST_UPDATED - Type: BASE_REF Pattern: ^refs/heads/main$ ExcludeMatchedPattern: false PullRequestBuildPolicy: RequiresCommentApproval: ALL_PULL_REQUESTS ApproverRoles: - GITHUB_MAINTAIN - GITHUB_ADMIN
Configuración de la consola
Para usar la consola de AWS administración para filtrar los eventos de los webhooks:
-
En Aprobación de comentarios, seleccione deshabilitado o habilitado para todas las solicitudes de extracción (
ALL_PULL_REQUEST) o solo para las solicitudes de extracción de bifurcaciones (FORK_PULL_REQUEST). -
En Roles de aprobador, seleccione los roles de repositorio que tengan privilegios de aprobación para compilaciones de solicitudes de extracción cuando se requiera aprobación de comentarios.
Para obtener más información consulte Creación de un proyecto de compilación (consola) y WebhookFilter en la Referencia de la API de CodeBuild .