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 da solicitação pull
CodeBuild suporta políticas de criação de pull request que fornecem controle adicional sobre compilações acionadas por pull requests. Não é recomendável criar automaticamente solicitações pull de usuários desconhecidos até que as alterações possam ser revisadas. Esse recurso permite exigir que um dos membros da 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 é importante principalmente para repositórios públicos ou que aceitam contribuições de colaboradores externos.
Quando habilitado, esse recurso garante que as compilações sejam acionadas para solicitações pull somente quando:
-
A solicitação pull é criada por um colaborador confiável.
-
Um colaborador confiável aprova a solicitação pull publicando um comentário específico.
Como funciona
- Colaboradores confiáveis
-
Colaborador confiável é um usuário cujo perfil atual no sistema de controle de origem está definido na política baseada em solicitação pull como um perfil 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 cujo perfil não está definido na lista de perfis de aprovador. Quando um colaborador não confiável cria uma solicitação pull:
-
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”.
-
Um colaborador confiável deve revisar as alterações e publicar um comentário com
/codebuild_run(para acionar a compilação. Por exemplo, .<SHA_OF_THE_LATEST_COMMIT>)/codebuild_run(046e8b67481d53bdc86c3f6affdd5d1afae6d369) -
CodeBuild valida as permissões do comentarista e aciona a compilação, se aprovada.
-
Os resultados da compilação são relatados na página da solicitação pull.
-
- Sintaxe do comentário de aprovação
-
Colaboradores confiáveis podem aprovar compilações usando os seguintes formatos de comentários:
-
/codebuild_run(: aciona a compilação no SHA de commit especificado.046e8b67481d53bdc86c3f6affdd5d1afae6d369)
-
Configuração
- Comportamento padrão do
-
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 compilação de solicitação pull é configurada usando o parâmetro
PullRequestBuildPolicynas seguintes ações:-
CreateWebhook -
UpdateWebhook
-
- Estrutura de
PullRequestBuildPolicy -
{ "requiresCommentApproval": "string", "approverRoles": ["string", ...] } requiresCommentApproval-
Especifica quando a aprovação baseada em comentários é necessária antes de acionar uma compilação em solicitações pull. Essa configuração determina se as compilações devem ser executadas automaticamente ou exigir aprovação explícita por meio de comentários.
Tipo: string
Valores válidos:
-
DISABLED: as compilações são acionadas automaticamente sem exigir aprovação por comentários. -
FORK_PULL_REQUESTS: somente solicitações pull de repositórios bifurcados exigem aprovação por comentários (a menos que o colaborador seja um dos perfis de aprovador). -
ALL_PULL_REQUESTS: todas as solicitações pull exigem aprovação por comentários antes da execução das compilações (a menos que o colaborador seja um dos perfis de aprovador). Este é o valor padrão.
-
approverRoles-
Lista de perfis de repositório que têm privilégios de aprovação para compilações de solicitação pull quando a aprovação por comentários é necessária. Somente usuários com estes perfis podem conceder aprovações por comentários válidas. Se um colaborador de solicitação pull for um destes perfis, as compilações de solicitação pull 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 relator -
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 os perfis 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
- Habilitar a aprovação por comentários para todas as solicitações pull
-
Para usar o AWS CodeBuild SDK para ativar ou desativar a política de criação de pull request para um webhook, use o
pullRequestBuildPolicycampo na sintaxe da solicitação dos métodosCreateWebhookouUpdateWebhookda API. Para obter mais informações, consulte WebhookFilter na Referência de APIs do CodeBuild .Usuários com perfis de administração, 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 por 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"] } - Desabilitar aprovação por comentários
-
"pullRequestBuildPolicy": { "requiresCommentApproval": "DISABLED" }
AWS CloudFormation
Para usar um AWS CloudFormation modelo para ativar ou desativar 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. Perfis de manutenção e administração são especificados 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:
-
Para Aprovação por comentários, selecione desabilitado ou habilitado para todas as solicitações pull requests (
ALL_PULL_REQUEST) ou somente para aquelas de bifurcação (FORK_PULL_REQUEST). -
Em Perfis de aprovador, selecione perfis do repositório que tenham privilégios de aprovação para compilações de solicitação pull quando a aprovação por comentários é necessária.
Para obter mais informações, consulte Criar um projeto de compilação (console) e WebhookFilter na Referência da API do CodeBuild .