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
get_repository_overview- Resumo executivo com métricas-chave e principais contribuidoresget_repository_stats- Estatísticas detalhadas do repositórioget_author_stats- Análise completa de contribuidoresget_branch_stats- Saúde do branch e métricas de comparaçãoget_file_stats- Padrões de modificação de arquivos e pontos quentesget_commit_history- Linha do tempo detalhada de commits com filtrosget_commit_frequency- Padrões diários de commits ao longo do tempoget_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
- Faça um fork do repositório
- Crie um branch de feature:
git checkout -b feature/amazing-feature - Faça commit das alterações:
git commit -m 'Add amazing feature' - Envie para o branch:
git push origin feature/amazing-feature - 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
- Model Context Protocol pelo excelente framework
- simple-git para operações Git
- chalk para saída de terminal bonita
- date-fns para manipulação de datas
Boa análise! 📊✨
Para perguntas, problemas ou solicitações de recursos, abra uma issue no GitHub.