ESPAÇO PUBLICITÁRIO DISPONÍVEL · FALE CONOSCO

Como Configurar o Qodo Merge no GitHub Actions para Automatizar a Revisão de PRs e Garantir Padrões de Código

365Finds Editorial
11.430 artigos Wiki catalogados

Use o 365 Wiki com sua IA

Copie o prompt abaixo, cole na IA que você já usa e faça sua pergunta.

Baixar o Skill completo

Experimente primeiro com o prompt. Se você usa o 365 Wiki com frequência, instale o Skill completo do 365Wiki para não precisar colá-lo novamente. Se não usa uma IA específica, as versões web do Gemini ou Microsoft Copilot também servem.

Em equipes de engenharia de software em crescimento, o processo de revisão de código (Code Review) costuma se tornar um dos principais gargalos de produtividade. Desenvolvedores sêniores frequentemente perdem tempo decifrando descrições vagas de Pull Requests (PRs), cobrando testes unitários ausentes e apontando incoerências de estilo. Enquanto isso, quem submeteu o código aguarda horas ou dias por um primeiro retorno, sofrendo com trocas frequentes de contexto e ciclos de entrega prolongados.

O Qodo Merge (anteriormente conhecido como o projeto open source PR-Agent) resolve esse problema ao integrar um agente autônomo de análise de código diretamente ao fluxo do Git. Executado como uma GitHub Action, o Qodo Merge avalia os diffs assim que um PR é aberto ou atualizado, gera descrições contextuais, identifica vulnerabilidades e regressões em potencial e propõe sugestões de código prontas para aceite com um clique.

Este guia orienta líderes técnicos e engenheiros DevOps na configuração completa do Qodo Merge no GitHub Actions, abordando a criação do arquivo de workflow, gestão de credenciais e permissões, salvaguardas contra loops de execução, personalização de diretrizes com .pr_agent.toml e governança centralizada entre repositórios.


Arquitetura: Como o Qodo Merge Opera no GitHub Actions

Ao contrário de arquiteturas dependentes de Webhooks que exigem servidores dedicados e monitoramento de infraestrutura, a execução do Qodo Merge no GitHub Actions é totalmente serverless. O agente roda diretamente em containers temporários (Runners) do GitHub sempre que os eventos do PR são disparados.

       Desenvolvedor abre PR / envia commits / comenta
                              │
                              ▼
                Gatilho do GitHub Actions
             (.github/workflows/pr-agent.yml)
                              │
                 Verificação antiloop de bots
              (github.event.sender.type != 'Bot')
                              │
                              ▼
             Passo no container: the-pr-agent/pr-agent
                              │
              ┌───────────────┴───────────────┐
              ▼                               ▼
       Contexto e regras locais            Chamada à API do LLM
     (.pr_agent.toml / AGENTS.md)       (OpenAI / Anthropic / Azure)
              │                               │
              └───────────────┬───────────────┘
                              │
                              ▼
                  GitHub REST & GraphQL API
       (Comentários inline, resumo de revisão, descrição do PR)

Eventos de Disparo e Escopo de Permissões

Para atender tanto às revisões automáticas no ciclo de vida do PR quanto aos comandos manuais em discussões, o fluxo de trabalho escuta dois eventos essenciais:

  1. pull_request: Disparado nas alterações de estado do PR, incluindo opened, reopened, ready_for_review e synchronize (envio de novos commits).
  2. issue_comment: Disparado no evento created, permitindo que os desenvolvedores executem comandos de barra como /review ou /improve.

O token padrão do repositório (GITHUB_TOKEN) necessita das seguintes permissões mínimas:


Passo a Passo de Implementação

Passo 1: Cadastro dos Segredos de API

O Qodo Merge utiliza modelos de linguagem para compreender as alterações de código. Ele oferece suporte nativo a OpenAI (gpt-4o), Anthropic Claude, Azure OpenAI e provedores compatíveis com LiteLLM.

  1. Acesse seu repositório no GitHub.
  2. Navegue até Settings > Secrets and variables > Actions.
  3. Clique em New repository secret.
  4. Configure o nome do segredo conforme o provedor escolhido:
    • Para OpenAI: OPENAI_KEY
    • Para Anthropic: ANTHROPIC_KEY
  5. Cole a chave de API correspondente e salve.

(Nota: O segredo GITHUB_TOKEN é gerado automaticamente pelo GitHub durante a execução do workflow, não sendo necessário criar tokens de acesso pessoal adicionais).


Passo 2: Criação do Workflow .github/workflows/pr-agent.yml

Adicione o arquivo a seguir na branch padrão do repositório, no caminho .github/workflows/pr-agent.yml:

name: Qodo Merge Automation

on:
  pull_request:
    types: [opened, reopened, ready_for_review, synchronize]
  issue_comment:
    types: [created]

concurrency:
  group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.event.issue.number }}
  cancel-in-progress: true

jobs:
  pr_agent_job:
    # Salvaguarda fundamental: impede loops infinitos gerados pelas mensagens do bot
    if: ${{ github.event.sender.type != 'Bot' }}
    runs-on: ubuntu-latest
    permissions:
      contents: read
      issues: write
      pull-requests: write

    steps:
      - name: Run Qodo Merge
        id: pr-agent
        uses: the-pr-agent/pr-agent@main
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          OPENAI_KEY: ${{ secrets.OPENAI_KEY }}
          # Caso prefira utilizar Anthropic Claude:
          # ANTHROPIC_KEY: ${{ secrets.ANTHROPIC_KEY }}

Salvaguardas Críticas de Operação


Padronização de Engenharia com .pr_agent.toml

Embora os padrões iniciais já entreguem valor, adequar o comportamento do revisor às práticas específicas da sua organização exige a definição de um arquivo .pr_agent.toml na raiz do repositório.

[config]
# Modelo principal e alternativa de fallback
model = "gpt-4o"
fallback_models = ["claude-3-5-sonnet"]

# Configurações de relatório
output_relevant_configurations = false
output_run_details = true
output_run_cost = false

# Injeção de documentação de contexto do projeto
repo_context_files = ["CONTRIBUTING.md", "docs/architecture.md"]

[pr_reviewer]
# Verificações obrigatórias
require_tests_review = true
require_security_review = true
require_can_be_split_review = true

# Nível mínimo de severidade para comentários inline:
# 1 = Informativo, 2 = Correção recomendada, 3 = Crítico / Ação mandatória
inline_comments_severity_threshold = 2

# Diretrizes técnicas personalizadas da equipe
extra_instructions = """
Você deve validar rigorosamente as seguintes diretrizes de engenharia:
1. Toda consulta a banco de dados deve utilizar prepared statements ou ORM; é proibida concatenação direta de strings em SQL.
2. Endpoints de API públicos devem conter tratamento estruturado de erros e retornar payloads JSON padronizados.
3. Funções assíncronas e chamadas de rede externas devem exigir contexto com cancelamento ou timeouts explícitos.
4. Se o PR introduzir nova regra de negócio, certifique-se de que testes unitários ou de integração correspondentes acompanhem o diff.
"""

[pr_description]
# Enriquecimento automático do PR
publish_labels = true
publish_description_as_comment = false
add_pr_commands = true
include_generated_by_header = false
use_description_markers = true

[pr_code_suggestions]
# Sugestões de código acionáveis
num_code_suggestions_per_chunk = 4
committable_code_suggestions = true
extend_ignoring_files = [
    "package-lock.json",
    "yarn.lock",
    "pnpm-lock.yaml",
    "go.sum",
    "dist/**",
    "*.min.js"
]

Parâmetros Principais e Benefícios Práticos

SeçãoParâmetroPadrãoUtilidade para a Equipe
[config]repo_context_files["AGENTS.md"]Carrega guias de arquitetura no prompt para contextualizar a análise do modelo.
[pr_reviewer]inline_comments_severity_threshold2Suprime ruídos de formatação (nível 1), mantendo o foco em riscos e vulnerabilidades (níveis 2 e 3).
[pr_reviewer]extra_instructions""Insere normas técnicas internas diretamente nas diretrizes de revisão.
[pr_code_suggestions]extend_ignoring_files[]Descarta arquivos de lock e artefatos de build para otimizar tokens e reduzir ruído.
[pr_description]publish_labelstrueClassifica o PR automaticamente com rótulos semânticos (ex.: bug, refactor, security).

Comandos Interativos de Barra no Pull Request

Após a integração, o Qodo Merge funciona como um assistente ativo na conversa do PR. Desenvolvedores e revisores podem solicitar tarefas pontuais digitando comandos no campo de comentários:

       /describe               /review                /improve                 /ask
          │                       │                      │                      │
          ▼                       ▼                      ▼                      ▼
  Cria resumo estruturado,  Avalia segurança,     Gera blocos de código   Esclarece dúvidas sobre
  componentes alterados e   testes e regras da    prontos para aceite     impacto e compatibilidade
  diagramas de sequência    equipe de engenharia  direto na interface     no contexto do PR

1. /describe

Examina os diffs e reformula a descrição inicial do PR, estruturando o objetivo das alterações, a lista de módulos modificados e, quando aplicável, gerando diagramas de fluxo em formato Mermaid.

2. /review

Realiza uma inspeção abrangente:

3. /improve

Identifica oportunidades de refatoração ou correção e apresenta blocos no formato GitHub Suggestion. O desenvolvedor pode clicar diretamente em Commit suggestion na interface web para aceitar a mudança sem precisar abrir o terminal local.

4. /ask <pergunta>

Permite questionar a IA sobre o impacto específico do código:

/ask Essa alteração afeta a compatibilidade retroativa com clientes da API v1?

O agente analisa contratos de interfaces e chamadas para explicar eventuais incompatibilidades.


Governança Centralizada em Múltiplos Repositórios

Para organizações que gerenciam dezenas de microsserviços, replicar o arquivo .pr_agent.toml manualmente em cada repositório eleva o risco de divergência de padrões.

O Qodo Merge oferece um modelo de herança organizacional:

  1. Crie um repositório interno ou público na organização chamado pr-agent-settings.
  2. Adicione um arquivo .pr_agent.toml central na branch principal com as diretrizes da empresa.
  3. Todos os repositórios da organização que executarem o Qodo Merge herdarão automaticamente essas configurações base.
  4. Repositórios individuais só precisam declarar um .pr_agent.toml local se precisarem sobrescrever exceções específicas de sua stack.

Melhores Práticas e Recomendações de Produção

1. Otimização de Custos de API e Minutos de CI

2. Privacidade e Conformidade de Dados

3. A Cultura de Revisão em Duas Camadas

A revisão por IA atua com máxima eficácia como um filtro de Nível 1:


Checklist de Implantação

EtapaAçãoCritério de Sucesso
WorkflowCriar .github/workflows/pr-agent.ymlAction é executada na abertura do PR e em comentários.
PermissõesConfigurar pull-requests: write e issues: writeBot posta comentários e rótulos sem erros 403.
Prevenção de LoopIncluir github.event.sender.type != 'Bot'Respostas do bot não geram novos disparos do workflow.
Regras da EquipeDefinir extra_instructions em .pr_agent.tomlRelatórios de revisão avaliam os critérios customizados.
InteraçãoExecutar /review e /improve em um PRSurgem relatórios detalhados e sugestões prontas para commit.

Ao conectar o Qodo Merge ao GitHub Actions, as equipes aceleram o ciclo de revisão, mantendo um padrão de engenharia consistente e protegido contra falhas operacionais.


Referências