Skip to content

leonextlevel/commit-analyzer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 

Repository files navigation

🔍 Commit Analyzer

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.


🧩 Problema que resolve

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

✅ O que o Commit Analyzer faz

Sempre que um novo Pull Request é aberto, este agente automatizado:

  1. Busca os commits do PR
  2. Coleta os diffs (alterações) de cada commit
  3. Envia essas informações para um modelo GPT-4
  4. O modelo avalia se a mensagem segue um padrão e contempla todas as mudanças
  5. Cria um comentário no PR com o resultado da análise

📦 Estrutura da Solução (n8n)

Fluxo n8n

1. NOVOS PRs

  • Webhook PR: Escuta eventos de abertura de PR (via GitHub webhook).
  • If: Filtra apenas eventos de abertura ou atualização relevantes.

2. BUSCANDO ALTERAÇÕES

  • 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.

3. AVALIAÇÃO DAS MUDANÇAS PELO GPT

  • 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.

4. FORMATAÇÃO DO RESULTADO

  • 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.

5. ENVIO DO RESULTADO

  • Criar comentário no PR: Publica a análise diretamente no PR do GitHub.

🤖 Prompt utilizado para análise

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

🚀 Como usar (localmente com Docker Compose)

  1. Clone este repositório (exemplo via HTTPS):

    git clone https://github.com/leonextlevel/commit-analyzer.git
    cd commit-analyzer
  2. Inicie o ambiente local com Docker Compose:

    docker-compose up -d

    Isso irá subir o n8n junto com um banco de dados PostgreSQL de suporte.

  3. Acesse a interface do n8n em:
    http://localhost:5678

  4. Importe o fluxo commit-analyzer.json disponível neste repositório:

    • No menu lateral do n8n, clique em Import workflow
    • Selecione o arquivo commit-analyzer.json
  5. 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
  6. 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
  7. 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).


💡 Sugestões de melhoria

  • 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

About

Commit Analyzer automatiza a revisão de mensagens de commit em Pull Requests usando IA para garantir clareza, padrão e consistência.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors