Git Analytics

Fornece análises detalhadas e insights para repositórios Git.

Documentação

Servidor MCP Git Analytics

🚀 Um servidor abrangente do Model Context Protocol (MCP) que fornece análises e insights detalhados de repositórios Git. Perfeito para desenvolvedores que desejam entender melhor seu código através de insights baseados em dados.

📊 Recursos

Análise de Repositório

  • Estatísticas Abrangentes: Total de commits, autores, branches e alterações de código
  • Análise de Autores: Rankings de contribuidores, padrões de commit e períodos de atividade
  • Inteligência de Branches: Saúde do branch, status à frente/atrás e métricas de atividade
  • Insights de Arquivos: Arquivos mais modificados, contribuições de autores por arquivo
  • Análise Temporal: Frequência de commits, alterações de código ao longo do tempo
  • Relatórios Visuais: Saída de terminal formatada com cores e emojis

Ferramentas Disponíveis

  1. get_repository_overview - Resumo executivo com métricas-chave e principais contribuidores
  2. get_repository_stats - Estatísticas detalhadas do repositório
  3. get_author_stats - Análise completa de contribuidores
  4. get_branch_stats - Saúde do branch e métricas de comparação
  5. get_file_stats - Padrões de modificação de arquivos e pontos quentes
  6. get_commit_history - Linha do tempo detalhada de commits com filtros
  7. get_commit_frequency - Padrões diários de commits ao longo do tempo
  8. get_code_churn - Análise de linhas adicionadas/removidas

🛠 Instalação

Pré-requisitos

  • Node.js 18+
  • npm ou yarn
  • Repositório Git para analisar

Configuração Rápida

# Clone or create the project
cd ~/git-analytics-mcp-server

# Install dependencies
npm install

# Build the project
npm run build

# Test the server (optional)
npm test

Modo de Desenvolvimento

# Run in development with auto-reload
npm run dev

🚀 Uso

Como Servidor MCP

Adicione à configuração do seu cliente MCP:

{
  "mcpServers": {
    "git-analytics": {
      "command": "node",
      "args": ["/path/to/git-analytics-mcp-server/dist/index.js"]
    }
  }
}

Uso Direto via CLI

# Install globally
npm install -g .

# Use anywhere
git-analytics-mcp

📈 Exemplos de Análise

Visão Geral do Repositório

📊 REPOSITORY SUMMARY REPORT
──────────────────────────────────────────────────
Repository Statistics:
  • Total Commits: 1,247
  • Total Authors: 12
  • Active Branches: 8
  • Code Changes: +45,678 -12,345
  • Repository Age: 2023-01-15 to 2024-06-15

Top Contributors:
  🥇 John Doe - 456 commits
  🥈 Jane Smith - 234 commits
  🥉 Bob Wilson - 189 commits
  🏅 Alice Brown - 145 commits
  🏅 Mike Johnson - 123 commits

Recent Activity:
  • a1b2c3d4 Add new authentication module (John Doe)
  • e5f6g7h8 Fix critical security vulnerability (Jane Smith)
  • i9j0k1l2 Update documentation and examples (Bob Wilson)

Análise de Autores

[
  {
    "name": "John Doe",
    "email": "john@example.com",
    "commits": 456,
    "insertions": 12340,
    "deletions": 3456,
    "firstCommit": "2023-01-15T10:30:00Z",
    "lastCommit": "2024-06-15T14:22:00Z"
  }
]

Análise de Churn de Código

[
  {
    "date": "2024-06-01",
    "insertions": 234,
    "deletions": 45,
    "net": 189
  },
  {
    "date": "2024-06-02",
    "insertions": 156,
    "deletions": 89,
    "net": 67
  }
]

🔧 Configuração

Parâmetros das Ferramentas

A maioria das ferramentas aceita estes parâmetros comuns:

  • path (string): Caminho do repositório (padrão: diretório atual)
  • days (number): Intervalo de tempo para análise (padrão: 30)
  • limit (number): Máximo de resultados a retornar (padrão: 50)

Variáveis de Ambiente

# Set default repository path
export GIT_ANALYTICS_DEFAULT_PATH="/path/to/repo"

# Enable debug logging
export GIT_ANALYTICS_DEBUG=true

🧪 Testes

# Run all tests
npm test

# Run with coverage
npm run test:coverage

# Test specific functionality
npm run test -- --grep "author stats"

Configuração do Repositório de Teste

# Create test repository
mkdir test-repo && cd test-repo
git init
echo "# Test" > README.md
git add . && git commit -m "Initial commit"

# Test the server
node dist/index.js

📊 Casos de Uso

Análise para Equipes de Desenvolvimento

  • Insights de Revisão de Código: Identifique arquivos que precisam de mais atenção
  • Produtividade da Equipe: Acompanhe padrões de commit e métricas de contribuição
  • Dívida Técnica: Encontre arquivos com altas taxas de alteração
  • Onboarding: Entenda a estrutura do código e os principais contribuidores

Gerenciamento de Projetos

  • Planejamento de Releases: Analise a velocidade recente de desenvolvimento
  • Alocação de Recursos: Identifique silos de conhecimento e áreas que precisam de suporte
  • Métricas de Qualidade: Acompanhe a estabilidade do código através da análise de alterações
  • Análise de Linha do Tempo: Entenda padrões e ciclos de desenvolvimento

Saúde do Repositório

  • Gerenciamento de Branches: Identifique branches desatualizados ou problemáticos
  • Pontos Quentes de Arquivos: Encontre arquivos que podem precisar de refatoração
  • Onboarding de Contribuidores: Receba novos membros da equipe com contexto
  • Análise Histórica: Aprenda com padrões de desenvolvimento passados

🛠 Recursos Avançados

Análises Personalizadas

Estenda o servidor com análises personalizadas:

// Add to git-analytics.ts
async getCustomMetric(): Promise<CustomMetric> {
  // Your custom analysis logic
}

Exemplos de Integração

# Use with GitHub CLI
gh repo list | xargs -I {} git-analytics-mcp --path {}

# Batch analysis
find ~/projects -name ".git" -type d | \
  xargs -I {} dirname {} | \
  xargs -I {} git-analytics-mcp --path {}

🐛 Solução de Problemas

Problemas Comuns

"Repositório Git inválido"

  • Certifique-se de estar em um repositório Git ou forneça o caminho correto
  • Verifique a instalação do Git: git --version

"Permissão negada"

  • Verifique o acesso de leitura ao repositório
  • Verifique as permissões de arquivo no diretório .git

"Nenhum commit encontrado"

  • O repositório pode estar vazio ou recém-inicializado
  • Tente com um repositório que tenha commits

Modo de Depuração

# Enable verbose logging
DEBUG=git-analytics:* npm start

# Check server connectivity
echo '{}' | node dist/index.js

🤝 Contribuindo

  1. Faça um fork do repositório
  2. Crie um branch de feature: git checkout -b feature/amazing-feature
  3. Faça commit das alterações: git commit -m 'Add amazing feature'
  4. Envie para o branch: git push origin feature/amazing-feature
  5. Abra um Pull Request

Configuração de Desenvolvimento

# Install dev dependencies
npm install

# Run in watch mode
npm run dev

# Lint code
npm run lint

# Format code
npm run format

📄 Licença

Licença MIT - veja o arquivo LICENSE para detalhes.

🌟 Agradecimentos


Boa análise! 📊✨

Para perguntas, problemas ou solicitações de recursos, abra uma issue no GitHub.

MCP-Server

MCP-Server