Agente de análise de Pull Requests utilizando Inteligência Artificial para acelerar revisões de código e ajudar desenvolvedores a entender rapidamente o impacto de uma mudança.
O objetivo do projeto não é substituir a revisão humana, mas reduzir o tempo necessário para compreender:
- O que mudou
- Quais comportamentos podem ser afetados
- Quais riscos devem receber atenção
- O que precisa ser validado antes do merge
Grande parte das ferramentas de revisão baseadas em IA gera comentários extensos que raramente são lidos pelos desenvolvedores.
Normalmente essas ferramentas focam em:
- Sugestões de nomenclatura
- Refatorações cosméticas
- Estilo de código
- Recomendações genéricas
O PR Insights Agent segue uma abordagem diferente.
Ele busca responder rapidamente:
"O que mudou e o que eu preciso validar antes de aprovar este Pull Request?"
flowchart LR
subgraph Contexto
DIFF[Diff]
REPO[RepoMix]
META[Metadados do PR]
end
subgraph Engine
BUILDER[Prompt Builder]
end
subgraph IA
OPENAI[OpenAI]
end
subgraph Resultado
MD[Markdown]
PR[Comentário no PR]
end
DIFF --> BUILDER
REPO --> BUILDER
META --> BUILDER
BUILDER --> OPENAI
OPENAI --> MD
MD --> PR
O agente combina:
- Diff da mudança
- Contexto do repositório
- Estrutura do projeto
- Metadados do Pull Request
para produzir uma análise objetiva e contextualizada.
O principal diferencial do projeto é a construção de contexto.
Muitas soluções enviam apenas o diff para a IA.
Este projeto utiliza duas fontes principais:
Responsável por responder:
O que mudou?
Responsável por responder:
Qual o contexto da mudança?
Juntos, eles permitem que o modelo compreenda não apenas a alteração realizada, mas também o local onde ela ocorre dentro do sistema.
# 🤖 PR Insights
## 📋 Resumo da Mudança
- Nova validação adicionada ao fluxo de faturamento.
## 🔍 Mudanças Relevantes
- Regra de negócio alterada.
## 🎯 Impactos Identificados
- Processo de faturamento impactado.
## ⚠️ Possíveis Riscos
- Alteração de comportamento para pedidos cancelados.
## ✅ Checklist de Validação
- [ ] Pedido válido
- [ ] Pedido cancelado
- [ ] Pedido já faturado
## 🚦 Classificação de Risco
🟡 Médio
Mudança afeta uma regra de negócio existente.scripts/
├── builders/
│ └── prompt.ts
│
├── providers/
│ ├── git.ts
│ ├── repomix.ts
│ └── openIA.ts
│
├── templates/
│ └── prompt.md
│
└── index.ts
Responsável por:
- Obter o diff do Pull Request
- Publicar comentários no Pull Request
Responsável por:
- Gerar o contexto consolidado do projeto
Responsável por:
- Montar o contexto final enviado para a IA
Responsável por:
- Executar a análise
- Receber a resposta em streaming
- Produzir a saída em Markdown
flowchart LR
subgraph Contexto
DIFF[📄 Diff]
REPO[📚 RepoMix]
REPO_META[🏢 Metadados do Repositório]
PR_META[🔀 Metadados do Pull Request]
end
subgraph Construção
BUILDER[🧠 Prompt Builder]
end
subgraph IA
OPENAI[🤖 OpenAI Streaming]
end
subgraph Resultado
REVIEW[📝 Análise em Markdown]
COMMENT[💬 Comentário no Pull Request]
end
DIFF --> BUILDER
REPO --> BUILDER
REPO_META --> BUILDER
PR_META --> BUILDER
BUILDER --> OPENAI
OPENAI --> REVIEW
REVIEW --> COMMENT
- Análise automática de Pull Requests
- Integração com OpenAI
- Streaming de respostas
- Integração com GitHub
- Integração com RepoMix
- Classificação de risco
- Checklist de validação
- Geração de comentários em Markdown
- Análise contextualizada
- Captura de Diff
- Integração com RepoMix
- OpenAI Streaming
- Comentários automáticos
- Classificação de risco
- GitHub Actions
- Integração com GitLab
- Integração com Bitbucket
- Suporte a Claude
- Suporte a Gemini
- Suporte a modelos locais
- Métricas de utilização
- Monitoramento de custos
- Dashboard de análises
O PR Insights Agent não foi criado para encontrar problemas de estilo ou substituir revisores humanos.
Seu objetivo é acelerar a compreensão de mudanças e ajudar equipes de engenharia a concentrar seus esforços nos riscos e impactos mais importantes de um Pull Request.
Em resumo:
O Diff mostra o que mudou.
O RepoMix mostra o contexto da mudança.
O PR Insights transforma essas informações em conhecimento útil para revisão.
Sinta-se à vontade para abrir issues ou enviar pull requests. Sugestões são sempre bem-vindas!
Desenvolvido por: Ismael Alves 🤓🤓🤓