Pipeline de revisão automatizada de PR com GitHub Actions e Claude
Tutoriais

Pipeline de revisão automatizada de PR com GitHub Actions e Claude

26 May, 2026 Lucas Cardoso 3 visualizações

TL;DR

O artigo apresenta uma arquitectura de pipeline no GitHub Actions com três camadas:

  • Gate (Claude Haiku): filtra PRs triviais (dependências, docs, formatação)
  • Reviewer (Claude Opus 4.7): análise semântica com tool use a executar php artisan test
  • Escalator: marca com label needs-human-review quando confiança < 80%

Resultado medido: "em três meses, o tempo médio até primeiro review caiu de 9h para 12 minutos."

Porque Três Camadas e Não Um Job Só

A estratégia em camadas evita desperdício de recursos. PRs de bump de dependência ou alterações no README não necessitam de revisão semântica profunda. O gate funciona como filtro económico.

Arquitectura Visual

GATE (Haiku) → decide se precisa revisão profunda
   ↓
REVIEWER (Opus 4.7) ← executa php artisan test
   ↓
ESCALATOR → confidence < 80 → label + @mention

Prompt em XML

XML em vez de Markdown evita confusão quando o código revisto contém ## ou tags. O prompt reside em vars.REVIEW_PROMPT (variável de repositório) para reutilização e versionamento limpo.

<role> — Senior reviewer PHP/Laravel, foca em correção/segurança/performance
<context> — Repo, PR number, branches
<rules severity="critical/warning/suggestion"> — SQL injection, mass assignment, testes
<workflow> — ler diff, identificar sensíveis, executar testes, cruzar achados
<output_format> — Resumo, Achados com [SEVERIDADE], Testes, Confidence 0-100

Caso Real: SQL Injection Detectado

$status = $request->query('status', 'pending');
$orders = DB::select("SELECT * FROM orders WHERE status = '$status'");

Os testes passaram (apenas o caminho feliz). O bot executou a suite, viu que passou, mas cruzou com o listing de rotas (rota pública) e o diff (concatenação) — comentou com sugestão de bindings ou query builder. O PR foi corrigido em 4 minutos.

Limitações

  • Custo escala com tamanho do diff: PR de 2k linhas custa $0,50–$2 em Opus
  • Prompt injection via código: controlar via permissions: read sem merge
  • Race conditions: fazer merge antes da revisão terminar deixa sem review

Comentários

Utilizamos cookies 🍪

Usamos cookies para melhorar a sua experiência no portal. Ao continuar, aceita a nossa política de privacidade.