Aprovação de comentários do pull request - AWS CodeBuild

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Aprovação de comentários do pull request

CodeBuild suporta políticas de compilação de pull request que fornecem controle adicional sobre compilações acionadas por pull requests. Talvez você não queira criar automaticamente pull requests de usuários desconhecidos até que suas alterações possam ser revisadas. Esse recurso permite que você exija que um dos membros da sua equipe primeiro revise o código e depois execute o pipeline. Isso geralmente é usado como uma medida de segurança ao criar um código enviado por colaboradores desconhecidos.

As políticas de criação de pull request permitem que você controle quando CodeBuild aciona a criação de pull requests com base nas permissões e no status de aprovação do colaborador. Isso é particularmente importante para repositórios públicos ou repositórios que aceitam contribuições de colaboradores externos.

Quando ativado, esse recurso garante que as compilações sejam acionadas somente para pull requests quando:

  • A pull request é criada por um colaborador confiável.

  • Um colaborador confiável aprova a pull request publicando um comentário específico.

Como funciona

Colaboradores confiáveis

Colaborador confiável é um usuário cuja função atual no sistema de controle de origem está definida na política baseada em pull request como uma função de aprovador. Quando um colaborador confiável cria uma pull request, CodeBuild aciona a compilação automaticamente, mantendo o comportamento atual.

Colaboradores não confiáveis

Colaborador não confiável é um usuário cuja função não está definida na lista das funções de aprovador. Quando uma contribuição não confiável cria uma pull request:

  1. CodeBuild marca o status da compilação como “Falha” com a mensagem “É necessária a aprovação do pull request para iniciar uma compilação”.

  2. Um colaborador confiável deve revisar as alterações e publicar um comentário /codebuild_run(<SHA_OF_THE_LATEST_COMMIT>) para acionar a compilação. Por exemplo, ./codebuild_run(046e8b67481d53bdc86c3f6affdd5d1afae6d369)

  3. CodeBuild valida as permissões do comentarista e aciona a compilação, se aprovada.

  4. Os resultados da compilação são relatados na página de pull request.

Sintaxe de aprovação de comentários

Colaboradores confiáveis podem aprovar compilações usando os seguintes formatos de comentários:

  • /codebuild_run(046e8b67481d53bdc86c3f6affdd5d1afae6d369)- Os gatilhos se baseiam no commit SHA especificado.

Configuração

Comportamento padrão

A política de criação de pull request é ativada por padrão para todos os CodeBuild projetos recém-criados.

Parâmetros de API

A política de criação do pull request é configurada usando o PullRequestBuildPolicy parâmetro nas seguintes ações:

  • CreateWebhook

  • UpdateWebhook

PullRequestBuildPolicyestrutura
{ "requiresCommentApproval": "string", "approverRoles": ["string", ...] }
requiresCommentApproval

Especifica quando a aprovação baseada em comentários é necessária antes de acionar uma criação em pull requests. Essa configuração determina se as compilações são executadas automaticamente ou exigem aprovação explícita por meio de comentários.

Tipo: String

Valores válidos:

  • DISABLED- Cria gatilhos automaticamente sem exigir aprovação de comentários.

  • FORK_PULL_REQUESTS- Somente pull requests de repositórios bifurcados exigem aprovação de comentários (a menos que o colaborador seja uma das funções de aprovador).

  • ALL_PULL_REQUESTS- Todas as pull requests exigem aprovação de comentários antes da execução das compilações (a menos que o colaborador seja uma das funções de aprovador). Este é o valor padrão.

approverRoles

Lista de funções de repositório que têm privilégios de aprovação para compilações de pull request quando a aprovação de comentários é necessária. Somente usuários com essas funções podem fornecer aprovações de comentários válidas. Se um colaborador de pull request for uma dessas funções, suas compilações de pull request serão acionadas automaticamente.

Tipo: matriz de strings

Valores válidos para GitHub projetos (os valores são mapeados para as GitHub funções):

  • GITHUB_ADMIN- Administradores do repositório

  • GITHUB_MAINTAIN- Mantenedores do repositório

  • GITHUB_WRITE- Usuário com permissões de gravação

  • GITHUB_TRIAGE- Usuário com permissões de triagem

  • GITHUB_READ- Usuário com permissões de leitura

  • Padrão: ["GITHUB_ADMIN", "GITHUB_MAINTAINER", "GITHUB_WRITE"]

Valores válidos para GitLab projetos (os valores são mapeados para as GitLab funções):

  • GITLAB_OWNER- Proprietário do repositório

  • GITLAB_MAINTAINER- Mantenedor do repositório

  • GITLAB_DEVELOPER- Usuário com permissões de desenvolvedor

  • GITLAB_REPORTER- Usuário com permissões de repórter

  • GITLAB_PLANNER- Usuário com permissões de planejador

  • GITLAB_GUEST - Usuário com permissões de convidado

  • Padrão: ["GITLAB_OWNER", "GITLAB_MAINTAINER", "GITLAB_DEVELOPER"]

Valores válidos para projetos do Bitbucket (os valores são mapeados para as funções do Bitbucket):

  • BITBUCKET_ADMIN - Administrador do repositório

  • BITBUCKET_WRITE- Usuário com permissões de gravação

  • BITBUCKET_READ - Usuário com permissões de leitura

  • Padrão: ["BITBUCKET_ADMIN", "BITBUCKET_WRITE"]

Exemplos

Habilite a aprovação de comentários para todas as pull requests

Para usar o AWS CodeBuild SDK para ativar ou desativar a política de criação de pull request para um webhook, use o pullRequestBuildPolicy campo na sintaxe da solicitação dos métodos CreateWebhook ou UpdateWebhook da API. Para obter mais informações, consulte WebhookFilter na Referência de APIs do CodeBuild .

Usuários com funções de administrador, manutenção e gravação no Github serão tratados como colaboradores confiáveis.

"pullRequestBuildPolicy": { "requiresCommentApproval": "ALL_PULL_REQUESTS", "approverRoles": ["GITHUB_ADMIN", "GITHUB_MAINTAIN", "GITHUB_WRITE"] }
Habilitar aprovação de comentários somente para administradores e mantenedores do repositório

Usuários com GitHub funções de Administrador e Mantenedor serão tratados como colaboradores confiáveis.

"pullRequestBuildPolicy": { "requiresCommentApproval": "FORK_PULL_REQUESTS", "approverRoles": ["GITHUB_ADMIN", "GITHUB_MAINTAINER"] }
Desativar aprovação de comentários
"pullRequestBuildPolicy": { "requiresCommentApproval": "DISABLED" }

AWS CloudFormation

Para usar um AWS CloudFormation modelo para habilitar ou desabilitar a política de criação de pull request para uma PullRequestBuildPolicy propriedade de uso de webhook. A seguinte parte formatada em YAML de um AWS CloudFormation modelo cria um projeto com um webhook que tem a política de criação de pull request ativada para todas as pull requests. Mantenha e administre as funções conforme especificado como aprovadores.

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

Configuração do console

Para usar o AWS Management Console para filtrar eventos de webhook:

  1. Em Aprovação de comentários, selecione desativado ou ativado para todas as pull requests (ALL_PULL_REQUEST) ou somente para pull requests de forks (FORK_PULL_REQUEST).

  2. Para funções de aprovador, selecione funções de repositório que tenham privilégios de aprovação para compilações de pull request quando a aprovação de comentários for necessária.

Para obter mais informações, consulte Criar um projeto de compilação (console) e WebhookFilter na Referência da API do CodeBuild .

Console de eventos de webhook de fonte primária com aprovação de comentários.