Code Review Automatizado — IA para PRs
Code Review Automatizado
Introdução
Code review é um dos processos mais importantes — e mais ignorados — do desenvolvimento de software. Pesquisas mostram que cada hora dedicada a revisão de código economiza 33 horas de retrabalho futuro. Mesmo assim, PRs ficam dias aguardando review, desenvolvedores precisam cobrar colegas manualmente, e revisões superficiais aprovam código problemático por falta de tempo.
Esta receita transforma o OpenClaw em um assistente de code review: você recebe alertas imediatos de novos PRs no WhatsApp ou Telegram, com um resumo inteligente das mudanças e pontos que merecem atenção. Para PRs que você precisa revisar, a IA faz uma primeira análise — identificando problemas de segurança, performance e boas práticas — antes de você abrir o código. Isso torna suas revisões mais rápidas e mais aprofundadas ao mesmo tempo.
O resultado: PRs que ficavam 3-4 dias aguardando review passam a ser processados em horas, com qualidade superior porque o revisor já sabe exatamente onde focar.
Veja a integração com GitHub para configurar webhooks, e explore o glossário para termos de desenvolvimento como CI/CD, PR e diff.
Como Funciona
- Webhook do GitHub: Quando um PR é aberto ou atualizado, o GitHub notifica o OpenClaw
- Análise automática: O OpenClaw usa IA para analisar as mudanças e gerar um resumo
- Notificação formatada: Você recebe no chat com contexto suficiente para tomar decisão
- Lembretes inteligentes: PRs aguardando review há mais de 24h geram cobranças automáticas
- Análise aprofundada sob demanda: Você pode pedir análise detalhada de qualquer PR
- Ação pelo chat: Aprove, comente ou solicite mudanças sem sair do WhatsApp
Configuração Passo a Passo
Passo 1: Conectar o GitHub ao OpenClaw
openclaw auth github
openclaw config set github.org "sua-org"
openclaw config set github.repos "repo1,repo2,repo3"
Passo 2: Configurar Webhooks no GitHub
No repositório GitHub, vá em Settings > Webhooks > Add webhook:
- Payload URL:
http://seu-servidor:3000/webhook/github - Content type:
application/json - Secret: copie o secret do OpenClaw
- Events: selecione
Pull requestsePull request reviews
Passo 3: Definir Regras de Notificação
Envie para o OpenClaw:
Configure alertas de code review:
Quando PR for aberto para review (e eu for reviewer):
- Notifique imediatamente com: título, autor, arquivos alterados (+/-)
- Inclua resumo das mudanças em 3 bullets
- Destaque: mudanças em arquivos críticos (auth, payments, security)
- Análise automática de segurança e boas práticas
PRs aguardando meu review:
- Lembrete às 10h se tiver PRs sem review há mais de 24h
- Escalada para minha atenção se passar de 48h
PRs que eu abri:
- Avise quando receber review, comentário ou aprovação
- Avise quando CI/CD passar ou falhar
Canal: Telegram @meuchat
Horário silencioso: 22h às 7h (só urgentes fora desse horário)
Passo 4: Configurar Análise de IA
Para análise de PRs, use este contexto:
- Linguagem principal: TypeScript/Python (ajuste para sua stack)
- Framework: React/FastAPI
- Padrões do projeto: [descreva seus padrões se quiser]
Foque em:
1. Segurança: injection, secrets expostos, auth vulnerabilities
2. Performance: N+1 queries, loops desnecessários, memory leaks
3. Boas práticas: DRY, SOLID, nomenclatura, complexidade
4. Testes: cobertura adequada para as mudanças
Personalização
Por Tamanho de PR
PR pequeno (<50 linhas):
- Notificação simples, sem análise detalhada automática
- Só alertar sobre mudanças críticas
PR médio (50-300 linhas):
- Resumo automático + pontos de atenção
PR grande (300+ linhas):
- Análise completa automática
- Sugestão de quebrar em PRs menores
- Prioridade na fila de review
Por Tipo de Mudança
Se PR contiver mudanças em:
- auth/ ou security/ → Análise de segurança obrigatória + me avise como urgente
- migrations/ → Avisar sobre impacto em produção
- package.json → Verificar vulnerabilidades nas dependências
- .env.example → Verificar se secrets reais foram expostos
Exemplos de Uso
Alerta de Novo PR
NOVO PR PARA REVIEW
#142 — Implementa autenticação OAuth com Google
Autor: @maria | Base: main
+423 linhas, -89 linhas (12 arquivos)
RESUMO:
• Adiciona login com Google e GitHub via OAuth2
• Refatora middleware de autenticação existente
• Adiciona 15 novos testes de integração (cobertura: +8%)
⚠ ATENÇÃO (análise automática):
• auth/middleware.ts alterado — arquivo crítico, revisar com cuidado
• L45: possível secret hardcoded — verificar antes de aprovar
• L78: redirect_uri não validado — risco de open redirect
• Falta teste para token expirado (edge case importante)
github.com/org/repo/pull/142
[Ver PR] [Pedir análise detalhada] [Lembrar amanhã]
Lembrete de PRs Pendentes
⏰ PRs AGUARDANDO SEU REVIEW
1. #142 — OAuth (há 26h) — @maria — 12 arquivos
2. #139 — Refactor API de pagamentos (há 3 dias!) — @pedro
3. #137 — Hotfix login mobile (há 5 dias! ) — @ana
Total: 3 PRs | Média de espera: 3.5 dias
PR #137 está crítico — hotfix aguardando há muito tempo.
Qual você revisa primeiro?
Análise Detalhada Sob Demanda
Você envia:
“Analise o PR #142 focando em segurança”
Resposta do OpenClaw:
ANÁLISE DE SEGURANÇA — PR #142
✅ PONTOS POSITIVOS
• Uso correto de PKCE no fluxo OAuth
• Tokens armazenados em httpOnly cookies (não localStorage)
• Rate limiting implementado no endpoint de callback
PROBLEMAS CRÍTICOS
L45 — auth/oauth.ts:
const JWT_SECRET = "minha-chave-super-secreta"
→ Secret hardcoded! Mover para process.env.JWT_SECRET
→ Risco: alto — comprometimento de todas as sessões se exposto
L78 — auth/callback.ts:
const redirectUrl = req.query.redirect_uri
res.redirect(redirectUrl) // Sem validação!
→ Open redirect vulnerability
→ Correção: validar contra allowlist de URLs permitidas
PROBLEMAS MÉDIOS
L102 — auth/session.ts:
→ Sessão não expira em caso de logout (token na blocklist não implementado)
→ Risco: médio — sessões "fantasma" após logout
SUGESTÕES DE MELHORIA
• Adicionar log de tentativas de auth falhas (para detecção de brute force)
• Implementar refresh token para melhor UX
• Adicionar validação de state parameter contra CSRF
Aprovar PR pelo Chat
Você envia:
“Aprove o PR #139 com comentário: LGTM! Uma sugestão menor no README mas não é blocker.”
O OpenClaw submete a aprovação no GitHub com o comentário formatado e te confirma.
Dicas Avançadas
- Crie templates de comentário: Defina padrões de comentário que você usa frequentemente — “Nitpick:”, “Sugestão:”, “Blocker:” — e o OpenClaw usa automaticamente na formatação correta do GitHub.
- Integre com CI/CD: Combine com a receita de Deploy Notify para ter visibilidade completa do ciclo: PR aberto → review → merge → deploy → resultado.
- Métricas de equipe: Toda sexta, peça ao OpenClaw: “Métricas de code review desta semana” — tempo médio de review por pessoa, PRs mergeados, autores mais ativos.
- Configure stale PR alerts: PRs sem atividade há 7 dias geram notificação automática para o autor: “Seu PR está sem atividade. Precisa de ajuda ou pode ser fechado?”
- Análise de tendências: Após 30 dias de uso, pergunte “Quais tipos de problema aparecem mais nos code reviews?” para identificar gaps de conhecimento na equipe.
FAQ
A IA pode revisar em qualquer linguagem de programação? O OpenClaw usa GPT-4 ou Claude para análise, que tem bom suporte para Python, JavaScript/TypeScript, Java, Go, Ruby, Rust, PHP e outras linguagens populares. A qualidade da análise varia — linguagens com mais representação nos dados de treinamento têm análise mais precisa.
O OpenClaw pode fazer merge automático de PRs aprovados?
Sim, com configuração explícita. Por padrão, o OpenClaw sugere o merge e aguarda confirmação para não fazer merges acidentais. Configure auto_merge: true apenas para PRs que passarem todos os checks de CI e tiverem 2+ approvals.
Como funciona com repositórios privados?
O GitHub token configurado precisa ter permissão de repo (não só public_repo) para acessar repositórios privados. Configure em GitHub > Settings > Developer settings > Personal access tokens.
Posso usar com GitLab ou Bitbucket? A integração nativa é com GitHub. Para GitLab, configure webhooks manualmente usando o endpoint genérico do OpenClaw. Suporte nativo ao GitLab está em desenvolvimento — veja o roadmap de integrações.
O que acontece quando um PR tem conflitos de merge? O OpenClaw detecta conflitos mencionados pelo GitHub na notificação e alerta o autor automaticamente: “Seu PR #142 tem conflitos com a branch main. Precisa de rebase antes do review.”
Receitas Relacionadas
- Deploy Notify — acompanhe o código após o merge chegar em produção
- Standup Diário — inclua PRs pendentes no update diário da equipe
- Integração com GitHub — configuração completa de webhooks e notificações
- Skills personalizados — crie automações específicas para seu workflow de desenvolvimento
- Guia de DevOps com IA — estratégias avançadas de automação de desenvolvimento