Como Automatizar Revisões de PR no GitHub com OpenClaw
Aprenda a configurar um fluxo de trabalho automatizado de revisão de PR usando skills do OpenClaw: integração com GitHub, PR Reviewer e Conventional Commits para revisões consistentes e de alta qualidade.
Última atualização: 2026-03-31
Skills Necessários
O Que Você Vai Construir
Um pipeline completo de revisão automática de PRs que:
- Cria PRs com descrições geradas por IA a partir do histórico de commits
- Revisa código com análise inteligente que detecta bugs, problemas de segurança e violações de estilo
- Padroniza commits usando o formato Conventional Commits
- Fornece feedback acionável como comentários inline no PR
Ao final deste guia, você terá um fluxo onde abrir um PR automaticamente dispara uma revisão por IA — sem intervenção manual.
Por Que Usar IA para Revisão de PRs
A revisão manual de código é essencial, mas na prática tem limitações reais que travam os times:
- Qualidade inconsistente — cada revisor foca em coisas diferentes. Um olha convenções de nomes, outro olha tratamento de erros. Quais problemas são detectados depende de "quem revisa o PR hoje"
- Fadiga do revisor — depois de revisar centenas de linhas, a atenção cai muito. Estudos mostram que a efetividade diminui após 60 minutos de revisão contínua. Bugs críticos se escondem nas partes finais de diffs grandes
- Tempo de espera — revisores estão ocupados com seu próprio trabalho. Um PR pode esperar horas ou até dias. Isso bloqueia o autor, incentiva PRs enormes e gera conflitos de merge
- Problemas de escala — conforme o time cresce, o gargalo de revisão piora. Devs seniores gastam cada vez mais tempo revisando, e membros novos podem não conhecer a codebase o suficiente
A revisão por IA não substitui revisores humanos — ela cuida das verificações sistemáticas (padrões de segurança, bugs comuns, violações de estilo) para que os humanos foquem em arquitetura, decisões de design e lógica de negócio. Pense nisso como uma primeira passada que garante a qualidade mínima antes de qualquer pessoa olhar.
Pré-requisitos
Antes de começar, certifique-se de ter:
- OpenClaw instalado e configurado (Guia de Início Rápido)
- GitHub CLI (
gh) instalado e autenticado (gh auth login) - Um repositório GitHub para testar (pode ser um projeto pessoal)
- Node.js 18+ para executar comandos do clawhub
Passo 1: Instalar os Skills Necessários
Instale os três skills na ordem:
# 1. Integração com GitHub (base) npx clawhub@latest install github # 2. PR Reviewer (análise de código) npx clawhub@latest install pr-reviewer # 3. Conventional Commits (formatação de commits) npx clawhub@latest install conventional-commits
Verifique a instalação:
clawhub list
Os três skills devem aparecer como installed.
Passo 2: Configurar Autenticação no GitHub
O skill do GitHub precisa de um personal access token com os seguintes escopos:
repo— acesso completo ao repositórioread:org— leitura de membros da organização (opcional, para repos de organizações)
Se você já se autenticou com gh auth login, o skill usará suas credenciais existentes. Caso contrário:
# Verificar status de autenticação gh auth status # Fazer login se necessário gh auth login
Passo 3: Configurar o PR Reviewer
O skill PR Reviewer funciona direto, mas você pode personalizar seu comportamento:
# Ver a configuração padrão clawhub inspect pr-reviewer
Principais opções de configuração:
- Profundidade da revisão:
quick(superficial) outhorough(análise profunda) - Áreas de foco: segurança, performance, estilo, bugs ou todas
- Comentário automático: se deve postar comentários diretamente no PR
Passo 4: Criar Sua Primeira Revisão Automática
Vamos testar o fluxo com um PR real:
4.1 Criar uma Branch de Feature
git checkout -b feature/test-ai-review
4.2 Fazer Algumas Alterações
Edite um arquivo no seu projeto. Para testar, tente introduzir problemas comuns que o revisor pode detectar:
Falta de await (bug assíncrono):
// Bug: falta await na chamada assíncrona
function getUserData(userId) {
const response = fetch(`/api/users/${userId}`); // Falta await
return response.json(); // TypeError: response.json is not a function
}
Vulnerabilidade de SQL injection:
# Segurança: input do usuário interpolado diretamente na query SQL
def get_user(user_id):
query = f"SELECT * FROM users WHERE id = '{user_id}'" # Risco de SQL injection
return db.execute(query)
Secret hardcoded:
// Segurança: chave de API exposta no código-fonte
const stripe = require('stripe')('sk_live_abc123secretkey');
Problema de N+1 queries:
# Performance: N+1 query — uma consulta por pedido
def get_orders_with_items(user_id):
orders = Order.objects.filter(user_id=user_id)
for order in orders:
order.items = OrderItem.objects.filter(order_id=order.id) # N+1!
return orders
4.3 Commit com Conventional Commits
Em vez de escrever a mensagem de commit manualmente, deixe o OpenClaw gerar:
git add . # OpenClaw gera uma mensagem de commit no padrão Conventional Commits # Ex: "feat(api): add getUserData function for user data retrieval"
4.4 Criar e Revisar o PR
# OpenClaw cria o PR com uma descrição gerada por IA # Em seguida, o PR Reviewer analisa o diff automaticamente
Em segundos, você verá:
- Uma descrição de PR bem formatada resumindo suas alterações
- Comentários de revisão apontando problemas específicos
- Um comentário resumo com avaliação geral e sugestões
Exemplo de como os comentários de revisão aparecem no PR:
🔒 Problema de Segurança (linha 14, auth.py):
Input do usuário interpolado diretamente na string SQL.
Vulnerável a ataques de SQL injection.
Correção sugerida: use queries parametrizadas.
- query = f"SELECT * FROM users WHERE id = '{user_id}'"
+ query = "SELECT * FROM users WHERE id = %s"
+ return db.execute(query, (user_id,))
⚡ Problema de Performance (linha 8, orders.py):
N+1 query detectada — OrderItem.objects.filter() é chamado
uma vez por pedido dentro de um loop. Use select_related() ou
prefetch_related() para consolidar em uma única query.
- orders = Order.objects.filter(user_id=user_id)
+ orders = Order.objects.filter(user_id=user_id).prefetch_related('items')
🐛 Bug (linha 3, api.js):
fetch() retorna uma Promise mas não foi usado await.
response.json() vai falhar porque response é uma
Promise pendente, não um objeto Response.
- const response = fetch(`/api/users/${userId}`);
+ const response = await fetch(`/api/users/${userId}`);
Passo 5: Personalizar o Fluxo de Revisão
Foco em Segurança
Para repositórios críticos em segurança, configure o PR Reviewer para priorizar verificações de segurança:
- Padrões de SQL injection
- Credenciais ou chaves de API hardcoded
- Tratamento inseguro de dados (input não validado, falta de sanitização)
- Vulnerabilidades em dependências
- Vetores de XSS no código frontend
- Padrões de deserialização insegura
Revisão Focada em Performance
Para serviços sensíveis a performance, instrua o revisor a focar em padrões de performance. Em projetos React especificamente, o revisor detecta padrões como re-renders desnecessários:
// Performance: nova referência de objeto a cada render causa re-renders no filho
function ParentComponent({ items }) {
return (
<ChildComponent
style={{ margin: 10 }} // Novo objeto a cada render
onClick={() => doSomething()} // Nova função a cada render
/>
);
}
Configuração para o Time Todo
Compartilhe a configuração com seu time:
- Exporte a configuração do skill para um diretório
.openclaw/no seu repositório - Faça commit no repositório
- Os membros do time instalam com a mesma config — os skills detectam automaticamente a configuração do projeto
Avançado: Direcionando o Foco da Revisão
Você pode direcionar o foco da revisão fornecendo instruções ao skill PR Reviewer. O skill usa IA para analisar diffs, então você pode direcionar sua atenção com linguagem natural.
Por Linguagem
Ao executar uma revisão, diga ao agente no que focar:
- Python: verificar blocos
except:sem tipo, falta de type hints, N+1 queries com Django ORM - JavaScript/TypeScript: flaggar
console.logesquecidos, falta deawaitem chamadas assíncronas, secrets hardcoded - Rust: flaggar
.unwrap()em código de produção, sugerir tratamento correto deResult
Por Diretório
Direcione o revisor a aplicar diferentes níveis de escrutínio:
- Lógica de negócio core (
src/core/) — revisão completa cobrindo segurança, bugs e performance - Arquivos de teste (
src/tests/) — verificação rápida de corretude - Documentação (
docs/) — revisão leve de estilo - Scripts (
scripts/) — foco em segurança e bugs
Padrões Customizados
Peça ao revisor para flaggar padrões específicos do projeto, como:
- Acesso direto ao banco de dados em rotas de API sem usar a camada de repository
- Componentes de página sem error boundaries
- Endpoints de API sem rate limiting
Integração com CI/CD
Para revisões totalmente automatizadas em cada PR, integre o PR Reviewer do OpenClaw ao seu pipeline de CI/CD.
GitHub Actions
Crie um arquivo de workflow em .github/workflows/ai-review.yml:
name: AI PR Review
on:
pull_request:
types: [opened, synchronize]
jobs:
ai-review:
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: write
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/setup-node@v4
with:
node-version: '20'
- name: Install OpenClaw and skills
run: |
npm install -g clawhub@latest
clawhub install pr-reviewer
- name: Run AI Review
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
OPENCLAW_API_KEY: ${{ secrets.OPENCLAW_API_KEY }}
run: |
clawhub run pr-reviewer \
--pr ${{ github.event.pull_request.number }} \
--repo ${{ github.repository }} \
--auto-comment
Controlando Quando as Revisões Rodam
Você pode limitar a revisão por IA a condições específicas para economizar custos:
on:
pull_request:
types: [opened, synchronize]
paths-ignore:
- '*.md'
- 'docs/**'
- '.github/**'
Ou exigir uma label antes de revisar:
- name: Check for review label
if: contains(github.event.pull_request.labels.*.name, 'ai-review')
run: clawhub run pr-reviewer --pr ${{ github.event.pull_request.number }}
Outras Plataformas de CI
A mesma abordagem funciona em qualquer plataforma de CI que suporte Node.js. Os passos essenciais são:
- Instalar
clawhube o skillpr-reviewer - Configurar
OPENCLAW_API_KEYcomo variável de ambiente secreta - Passar o número do PR e o repositório para o comando de revisão
- Garantir que o bot do CI tenha permissão de escrita em pull requests
Resultados Reais
Times que usam esse fluxo de trabalho normalmente observam:
- 40% mais rápido no turnaround de PRs — a IA pega problemas óbvios antes da revisão humana
- Qualidade de revisão consistente — todo PR recebe a mesma análise criteriosa
- Histórico de commits melhor — Conventional Commits tornam changelogs automáticos
- Menos bugs em produção — a IA detecta problemas que humanos podem deixar passar
Solução de Problemas
"GitHub CLI not found"
Certifique-se de que o gh está instalado e no PATH:
# macOS brew install gh # Linux sudo apt install gh # Windows winget install GitHub.cli
"Permission denied" ao criar PR
Verifique os escopos do token:
gh auth status
Confirme que o escopo repo está incluído. Reautentique se necessário:
gh auth login --scopes repo
PR Reviewer não está comentando
Verifique se o skill está instalado e configurado:
clawhub inspect pr-reviewer
Confirme que o provider de IA do OpenClaw está configurado e tem créditos disponíveis.
Perguntas Frequentes
Sim. O skill do GitHub usa o `gh` CLI, que suporta totalmente GitHub Enterprise Server e GitHub Enterprise Cloud. Configure o host da sua empresa com `gh auth login --hostname github.suaempresa.com`. Após a autenticação, todos os skills relacionados ao GitHub — incluindo o PR Reviewer — funcionam exatamente como no github.com. Nenhuma configuração adicional é necessária além do hostname.
O skill do GitHub é específico para o GitHub, mas o PR Reviewer e o Conventional Commits funcionam com qualquer plataforma git. Para GitLab, use o skill do GitLab, passando IDs de merge requests em vez de números de PR. Bitbucket funciona de forma similar com seu próprio skill de plataforma. A lógica de revisão é agnóstica de plataforma — apenas a camada de integração que posta comentários difere entre plataformas.
A revisão por IA complementa a revisão humana em vez de substituí-la. Ela se destaca em verificações sistemáticas — detectar vulnerabilidades de segurança, padrões comuns de bug, violações de estilo e anti-patterns de performance de forma consistente em todo PR, sem fadiga. Porém, ela não avalia decisões de arquitetura de alto nível, corretude da lógica de negócio ou se a abordagem geral é a correta. O melhor fluxo usa a revisão por IA como primeira passada para cuidar das verificações mecânicas, liberando revisores humanos para focar em design e intenção.
Os custos dependem do seu provider de IA e do tamanho do diff sendo revisado. Uma revisão típica de PR analisando um diff de 500 linhas custa aproximadamente $0.01-0.05 na maioria dos providers. Diffs maiores (1000+ linhas) podem custar até $0.10-0.15. Você pode controlar custos configurando profundidade `quick` para caminhos não-críticos e usando filtros de path para pular arquivos gerados, diretórios vendor e documentação.
Sim. O PR Reviewer suporta configuração flexível de padrões de arquivo. Você pode excluir arquivos por glob pattern (ex: `**/*.generated.ts`, `vendor/**`), limitar revisões a diretórios específicos ou definir profundidades diferentes por path. Configure no arquivo `.openclaw/pr-reviewer.yml`. A maioria dos times exclui arquivos auto-gerados, lock files e dependências vendorizadas para manter as revisões focadas no código que foi realmente escrito pelo time.
O PR Reviewer processa diffs grandes dividindo-os em blocos lógicos e analisando cada bloco em contexto. Para PRs com mais de 1000 linhas, ele prioriza arquivos de alto risco — arquivos que tocam autenticação, queries de banco, endpoints de API e lógica sensível à segurança recebem revisão em profundidade máxima. Arquivos de menor risco como testes e configurações recebem uma passada mais leve. Você também pode configurar um limite de linhas que dispara um aviso sugerindo que o autor divida o PR em partes menores.
Sim. O PR Reviewer suporta todas as principais linguagens incluindo JavaScript, TypeScript, Python, Go, Rust, Java, C#, Ruby, PHP e mais. Ele aplica regras específicas por linguagem automaticamente — por exemplo, verificando uso incorreto de `unwrap()` em Rust ou falta de `await` em código assíncrono JavaScript. Você também pode definir regras customizadas por linguagem no arquivo de configuração. O revisor detecta a linguagem pela extensão do arquivo e aplica o pipeline de análise apropriado sem configuração manual.
Revisão por IA e linters servem propósitos complementares e funcionam bem juntos. Linters aplicam regras determinísticas (formatação, ordem de imports, variáveis não usadas) enquanto a revisão por IA detecta problemas semânticos (bugs de lógica, padrões de segurança, problemas de performance) que ferramentas baseadas em regras não conseguem detectar. No CI, rode seu linter primeiro para pegar problemas de formatação, depois rode a revisão por IA para análise mais profunda. O PR Reviewer conhece as regras comuns de linters e evita duplicar feedback sobre o mesmo problema.
O OpenClaw rastreia métricas de revisão no seu repositório ao longo do tempo. Execute `clawhub stats pr-reviewer` para ver um resumo de problemas encontrados por categoria, quantos foram resolvidos antes do merge e padrões comuns na sua codebase. Isso ajuda a identificar problemas recorrentes — por exemplo, se avisos de SQL injection aparecem frequentemente, é sinal de que o time precisa de treinamento ou melhores abstrações de ORM. Você pode exportar essas métricas como JSON para integração com dashboards ou ferramentas de relatório do time.
Sim. Você pode definir templates de revisão que aplicam regras diferentes baseadas em labels do PR, convenções de nomeação de branches ou paths de arquivos alterados. Por exemplo, uma branch `hotfix/*` pode receber revisão focada em segurança com profundidade máxima, enquanto uma branch `docs/*` recebe apenas verificação leve de estilo. Defina templates no seu `.openclaw/pr-reviewer.yml` sob a chave `templates`, e o PR Reviewer seleciona o template correspondente automaticamente. Isso garante que mudanças críticas recebam escrutínio completo sem atrasar atualizações de baixo risco.
Casos de Uso Relacionados
Automação de Tarefas Jira
Automatize triagem de issues, atualizações de status, relatórios de sprint e integração entre Jira, Linear e GitHub.
Resumo Diário de Notícias
Monte um briefing de notícias automatizado que pesquisa seus temas, resume artigos-chave e entrega um resumo personalizado todos os dias.
Criar e Revisar Skills
Crie skills personalizados do OpenClaw, revise skills da comunidade quanto à segurança e qualidade, e decomponha tarefas complexas em cadeias de skills reutilizáveis.