Automação com IA para análise de mensagens de commit em Pull Requests, garantindo que sigam boas práticas e representem corretamente as alterações feitas no código.
Desenvolvedores nem sempre escrevem mensagens de commit claras, padronizadas ou completas. Isso dificulta:
- A revisão de PRs
- O entendimento de histórico do repositório
- A rastreabilidade das mudanças
Sempre que um novo Pull Request é aberto, este agente automatizado:
- Busca os commits do PR
- Coleta os diffs (alterações) de cada commit
- Envia essas informações para um modelo GPT-4
- O modelo avalia se a mensagem segue um padrão e contempla todas as mudanças
- Cria um comentário no PR com o resultado da análise
- Webhook PR: Escuta eventos de abertura de PR (via GitHub webhook).
- If: Filtra apenas eventos de abertura ou atualização relevantes.
- Buscar Commits PR: Consulta a lista de commits do PR.
- Buscar Diff Commit: Coleta o diff (alterações reais de código) de cada commit.
- Montar Prompt: Cria um prompt estruturado, com base na mensagem do commit e no diff.
- Analisar commit com GPT-4: Usa OpenAI GPT-4 para avaliar a qualidade e completude da mensagem.
- Formatar Análise: Ajusta a resposta para legibilidade.
- Juntar Análises: Agrupa os comentários de todos os commits.
- Formatar comentário final: Prepara o conteúdo para ser publicado no PR.
- Criar comentário no PR: Publica a análise diretamente no PR do GitHub.
A mensagem de commit é avaliada com base em:
- Padrão
tipo(escopo): descrição- Se todas as alterações do diff estão representadas
- Se é uma alteração complexa, espera-se detalhes no corpo do commit
O modelo responde:
- ✅ “Mensagem adequada.” se estiver tudo certo
⚠️ Caso falte algo, sugere melhorias- ❌ Para mensagens ruins, propõe alternativas melhores
-
Clone este repositório (exemplo via HTTPS):
git clone https://github.com/leonextlevel/commit-analyzer.git cd commit-analyzer -
Inicie o ambiente local com Docker Compose:
docker-compose up -d
Isso irá subir o
n8njunto com um banco de dados PostgreSQL de suporte. -
Acesse a interface do n8n em:
http://localhost:5678 -
Importe o fluxo
commit-analyzer.jsondisponível neste repositório:- No menu lateral do n8n, clique em Import workflow
- Selecione o arquivo
commit-analyzer.json
-
Configure as credenciais necessárias:
- Vá em Credentials no n8n
- Crie:
- Uma credencial GitHub com um token pessoal que tenha permissão para ler PRs e commits
- Uma credencial OpenAI com sua chave de API válida para acesso ao modelo GPT-4
-
Ative o workflow e configure o webhook no seu repositório GitHub:
- Acesse Settings > Webhooks
- Adicione a URL gerada pelo n8n (exemplo:
https://example.domain/webhook/commit-analyzer- dica: Use o Ngrok para expor a porta 5678 local na internet e conseguir testar) - Configure para receber o evento:
pull_request
-
Teste! Ao abrir ou atualizar um Pull Request, o Commit Analyzer será acionado automaticamente. Ele irá analisar os commits e publicar um comentário no PR com as recomendações de melhoria (caso necessário).
- Suporte para outras linguagens além de português
- Integração com outros padrões de mensagens (ex: Conventional Commits configurável)
- Integração com cards das tarefas (no Jira, por exemplo) para garantir que tudo foi feito
