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

  1. Webhook do GitHub: Quando um PR é aberto ou atualizado, o GitHub notifica o OpenClaw
  2. Análise automática: O OpenClaw usa IA para analisar as mudanças e gerar um resumo
  3. Notificação formatada: Você recebe no chat com contexto suficiente para tomar decisão
  4. Lembretes inteligentes: PRs aguardando review há mais de 24h geram cobranças automáticas
  5. Análise aprofundada sob demanda: Você pode pedir análise detalhada de qualquer PR
  6. 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 requests e Pull 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