Approval (aprovação) é uma confirmação no GitHub, GitLab ou Bitbucket de que um pull request passou pela revisão de código e pode ser mesclado no branch de destino. O proprietário do repositório configura o número de aprovações obrigatórias, após as quais o PR é desbloqueado para merge. De acordo com a documentação do GitHub (2026), durante a revisão o revisor pode deixar comentários, solicitar alterações (Request Changes) ou aprovar o PR (Approve). A aprovação não é apenas uma formalidade, mas também um ato jurídico: o revisor assume a responsabilidade pela qualidade do código que está sendo aceito.
Principais pontos
A aprovação é uma revisão positiva de um pull request, significando que o revisor verificou o código, não encontrou problemas críticos e considera as alterações prontas para merge. Na interface do GitHub, este é o botão verde «Approve» na página do PR. Após a aprovação, o autor (ou qualquer membro com permissão de escrita) pode realizar o merge.
O processo de aprovação faz parte das Branch Protection Rules. Os proprietários do repositório configuram os requisitos obrigatórios: número mínimo de aprovações (por exemplo, 1 ou 2), quem pode aprovar (proprietários de código, membros da equipe) e se o PR deve ser re-aprovado após alterações (Dismiss stale reviews). Sem a configuração de regras, a aprovação é opcional, mas em equipes profissionais é obrigatória.
O GitLab usa um mecanismo semelhante chamado Approval Rules. No GitLab, você pode configurar quantas aprovações são necessárias de diferentes grupos (por exemplo, 2 de desenvolvedores backend e 1 de DevOps). Após receber todas as aprovações obrigatórias, o PR é automaticamente desbloqueado para merge desde que o pipeline CI/CD esteja verde.
GitHub e GitLab têm três tipos de revisão que um revisor pode deixar em um pull request. Cada tipo tem um status e consequências diferentes para o processo de merge. Approve é verde, Request Changes é vermelho, Comment é cinza neutro. A escolha depende da qualidade do código e da prontidão das alterações para aceitação.
Approve — o revisor confirma: o código está escrito corretamente, atende aos padrões, não contém erros óbvios e pode ser mesclado. Approve não significa que o código é perfeito — apenas que é bom o suficiente para produção. Se houver comentários menores (estilo, nomenclatura), eles podem ser deixados como comentários sem bloquear o PR.
Request Changes — o revisor encontra problemas que devem ser corrigidos antes do merge: erros lógicos, vulnerabilidades, violações de arquitetura, falta de testes. Após Request Changes, o PR é bloqueado e é necessária uma nova aprovação do mesmo revisor para desbloqueá-lo (se a opção Dismiss stale reviews estiver ativada em novos commits).
As Branch Protection Rules são o mecanismo do GitHub para controlar a qualidade das mesclagens. Configurado em Settings → Branches para cada branch protegido (main, develop, release/*). Parâmetros principais: número de aprovações obrigatórias, proprietários de código (CODEOWNERS), verificação obrigatória de CI/CD e proibição de push sem PR.
O parâmetro Dismiss stale pull request approvals remove automaticamente as aprovações se um novo commit for adicionado ao PR. Isso garante que os revisores aprovem exatamente a versão do código que será mesclada. Sem essa configuração, o autor poderia adicionar novo código após a aprovação e ele chegaria ao main sem nova verificação.
CODEOWNERS — um arquivo na raiz do repositório que designa responsáveis por diferentes diretórios. Se um PR afeta arquivos pertencentes a um proprietário de código, sua aprovação se torna obrigatória. CODEOWNERS permite distribuir áreas de responsabilidade: desenvolvedores iOS são responsáveis pelos arquivos Swift, DevOps pelas configurações Docker, testadores pelos cenários de teste.
# Arquivo CODEOWNERS de exemplo na raiz do repositório
# Desenvolvedores iOS são donos do código Swift
*.swift @team/ios-developers
# DevOps é dono da configuração de CI/CD
.github/workflows/* @devops-team
# Engenheiros de QA revisam os testes
**/tests/* @qa-engineers
# Proprietários padrão para todo o resto
* @tech-leads
O code review antes da aprovação é uma verificação sistemática do código, não uma olhada rápida no diff. Uma revisão de qualidade inclui verificação de arquitetura, lógica, estilo, testes e segurança. Sem essa verificação, a aprovação se torna uma formalidade em vez de uma ferramenta de controle de qualidade.
O que é verificado primeiro: a lógica das alterações — se o código resolve a tarefa, se há efeitos colaterais, se o tratamento de casos limite está correto. Testes — se os novos testes cobrem todos os cenários, se os testes existentes passam após as alterações. Segurança — se há injeções SQL, XSS, vazamentos de dados sensíveis.
O que não deve ser objeto de revisão: estilo de formatação (para isso existem linters e formatadores), decisões arquiteturais tomadas previamente (são discutidas antes de escrever o código). Se uma revisão exceder 400 linhas ou levar mais de uma hora, é sinal de que a tarefa é muito grande e requer decomposição. Melhores práticas de revisão — porções de 200–400 linhas em até 24 horas após a criação do PR.
Um fluxo de trabalho típico com aprovação em uma equipe de 5–10 desenvolvedores é assim: um desenvolvedor cria um PR, designa revisores (geralmente 1–2 pessoas da equipe ou proprietários de código), CI/CD executa verificações automáticas. Após receber todas as aprovações obrigatórias e um CI verde, o autor realiza o merge. O tempo desde a criação do PR até o merge varia de 2 horas a 2 dias, dependendo da complexidade.
GitHub Actions permite automatizar o merge após a aprovação. Se as regras de branch estão configuradas, o GitHub bloqueia o merge até que todas as condições sejam atendidas. Algumas equipes usam bors-ng ou Mergify — bots que mesclam automaticamente os PRs após receber todas as aprovações e passar no CI. Isso acelera o processo e elimina o fator humano nas mesclagens.
Uma abordagem moderna é o trunk-based development com branches de curta duração. Neste fluxo, a aprovação deve ser obtida em poucas horas, caso contrário a tarefa é considerada obsoleta e requer ressincronização com main. Equipes com alta cultura de revisão visam um tempo de aprovação de não mais que 4 horas úteis.
O erro mais comum é a aprovação formal sem revisão real do código. Quando o PR é grande ou o prazo está próximo, o revisor pode clicar em Approve sem examinar as alterações. Isso desvaloriza todo o processo de code review. Solução: estabelecer um limite no tamanho do PR (não mais de 400 linhas) e usar ferramentas de análise de código (SonarQube, CodeClimate) para verificação automática.
O segundo erro é a aprovação excessivamente rigorosa. Esperar código perfeito bloqueia o desenvolvimento. Os revisores às vezes exigem corrigir comentários estilísticos que não afetam a qualidade. Solução: dividir claramente entre comentários obrigatórios (bloqueantes) e sugestões opcionais (comentários). O GitHub permite especificar explicitamente se um comentário é bloqueante.
O terceiro erro é a aprovação sem verificar CI/CD. Mesmo que o código pareça correto, ele pode não compilar ou falhar nos testes. As Branch Protection configuradas bloqueiam automaticamente o merge com CI vermelho, mas algumas equipes desativam essa proteção por rapidez. Solução: sempre verificar o status do CI antes de aprovar e nunca aprovar um PR com pipeline vermelho.
Perguntas frequentes
Aprovar significa dar aval a um pull request no GitHub/GitLab após code review, clicando no botão Approve. Isso indica que o código foi revisado, atende aos padrões e está pronto para merge. A aprovação é uma condição obrigatória para merge em branches protegidos com regras de Branch Protection configuradas.
Depende das regras do repositório. O padrão mínimo é 1 aprovação de um revisor que não seja o autor. Componentes críticos (módulos de pagamento, segurança) podem exigir 2–3 aprovações. O número é configurado nas Branch Protection Rules do GitHub ou Approval Rules do GitLab.
Approve — código pronto para merge, comentários opcionais. Request Changes — código contém problemas obrigatórios a corrigir, PR bloqueado até nova revisão. Com Request Changes o merge é impossível; com Approve, está disponível após passar nas verificações CI/CD.
Não, o autor não pode aprovar seu próprio PR — isso contradiz o princípio da revisão independente. O GitHub bloqueia essa possibilidade no nível da interface. Mesmo que as configurações do repositório não proíbam, a aprovação do autor não é considerada válida porque não houve revisão externa do código.
Dismiss stale review é uma opção do Branch Protection que remove automaticamente as aprovações quando novos commits são adicionados ao PR. Garante que os revisores aprovem exatamente a versão atual do código. Sem essa opção, o autor poderia alterar o código após a aprovação e as alterações chegariam ao main sem revisão adicional.
Resumo
Vamos desenvolver um aplicativo móvel chave na mão
A IT Sectr cria aplicativos para iOS e Android para startups e empresas desde 2017. Nós vamos aconselhá-lo e propor a melhor solução.
Leia também