OpenClaw
Caso de UsoIniciante10 min

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

GitHub (gh)
Recomendado

Opere o GitHub via gh CLI (issues, PRs, repos).

Ver Guia
PR Reviewer
Recomendado

Revisão de código automatizada para pull requests.

Ver Guia
Conventional Commits
Recomendado

Gerar/validar mensagens de Conventional Commits.

Ver Guia

O Que Você Vai Construir

Um pipeline completo de revisão automática de PRs que:

  1. Cria PRs com descrições geradas por IA a partir do histórico de commits
  2. Revisa código com análise inteligente que detecta bugs, problemas de segurança e violações de estilo
  3. Padroniza commits usando o formato Conventional Commits
  4. 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:

bash
# 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:

bash
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ório
  • read: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:

bash
# 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:

bash
# Ver a configuração padrão
clawhub inspect pr-reviewer

Principais opções de configuração:

  • Profundidade da revisão: quick (superficial) ou thorough (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

bash
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):

javascript
// 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:

python
# 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:

javascript
// Segurança: chave de API exposta no código-fonte
const stripe = require('stripe')('sk_live_abc123secretkey');

Problema de N+1 queries:

python
# 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:

bash
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

bash
# 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:

jsx
// 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:

  1. Exporte a configuração do skill para um diretório .openclaw/ no seu repositório
  2. Faça commit no repositório
  3. 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.log esquecidos, falta de await em chamadas assíncronas, secrets hardcoded
  • Rust: flaggar .unwrap() em código de produção, sugerir tratamento correto de Result

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:

yaml
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:

yaml
on:
  pull_request:
    types: [opened, synchronize]
    paths-ignore:
      - '*.md'
      - 'docs/**'
      - '.github/**'

Ou exigir uma label antes de revisar:

yaml
- 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:

  1. Instalar clawhub e o skill pr-reviewer
  2. Configurar OPENCLAW_API_KEY como variável de ambiente secreta
  3. Passar o número do PR e o repositório para o comando de revisão
  4. 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:

bash
# macOS
brew install gh

# Linux
sudo apt install gh

# Windows
winget install GitHub.cli

"Permission denied" ao criar PR

Verifique os escopos do token:

bash
gh auth status

Confirme que o escopo repo está incluído. Reautentique se necessário:

bash
gh auth login --scopes repo

PR Reviewer não está comentando

Verifique se o skill está instalado e configurado:

bash
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