Uma plataforma de análise de repositórios GitHub que transforma dados de desenvolvimento em métricas e insights acionáveis.
- Sobre o projeto
- Funcionalidades
- Pré-requisitos
- Configuração do banco de dados
- Como executar
- Testes
- Variáveis de ambiente
- Tecnologias
- Documentação
O Gitrics é uma plataforma desenvolvida para transformar dados de repositórios do GitHub em métricas e visualizações, permitindo acompanhar informações relevantes sobre o desenvolvimento e obter insights para melhorar o fluxo de trabalho e as entregas.
-
🔗 Integração com o GitHub
-
[] 📊 Coleta e análise de dados de repositórios
-
📈 Dashboard de métricas de desenvolvimento
-
🔀 Análise de Pull Requests
- Tempo médio até a aprovação
- Tempo médio até o merge
- Pull Requests abertos e fechados
- Taxa de aprovação
-
💻 Análise de commits
- Frequência de commits
- Distribuição de commits por período
- Contribuições por desenvolvedor
- Evolução das contribuições
-
📝 Análise de Issues
- Issues abertas e fechadas
- Tempo médio de resolução
- Evolução do backlog
- Distribuição por status
-
👥 Métricas da equipe
- Contribuições por membro
- Distribuição de trabalho
- Evolução da atividade da equipe
- Comparação de métricas ao longo do tempo
Antes de executar o projeto, certifique-se de ter instalado:
- Python >= 3.12
- Node.js >= 22
- PostgreSQL >= 18
- Git
O Gitrics utiliza PostgreSQL. Recomenda-se criar um usuário específico para a aplicação em vez de utilizar diretamente o usuário administrativo postgres.
Acesse o PostgreSQL:
psql -U postgresCrie um usuário para o Gitrics:
CREATE USER gitrics_user WITH PASSWORD 'sua_senha';Crie o banco gitrics atribuindo sua propriedade ao usuário da aplicação:
CREATE DATABASE gitrics OWNER gitrics_user;Conceda os privilégios necessários:
GRANT ALL PRIVILEGES ON DATABASE gitrics TO gitrics_user;Saia do PostgreSQL:
\qNo arquivo .env:
PSGRE_USER="gitrics_user"
PSGRE_PASSWORD="sua_senha"
PSGRE_HOST="localhost"
PSGRE_PORT=5432
PSGRE_DB="gitrics"Com o banco criado e as variáveis configuradas, execute:
alembic upgrade headO Alembic aplicará automaticamente as migrations pendentes e criará as tabelas necessárias.
💡 Recomendação: utilize um usuário específico para a aplicação e evite utilizar o usuário administrativo
postgresnas configurações do Gitrics. Isso reduz os privilégios disponíveis para a aplicação e melhora a segurança do ambiente.
git clone https://github.com/YgorPereira/Gitrics.git
cd GitricsAcesse o diretório do backend:
cd serverCrie o arquivo .env a partir do exemplo:
Copy-Item .env.example .envConfigure as variáveis necessárias no arquivo .env.
Instale o uv:
pip install uvInstale as dependências:
uv syncExecute as migrações do banco de dados:
alembic upgrade headInicie a aplicação:
uv run uvicorn app.main:app Utilize a flag --reload para rodar em modo de desenvolvimento.
Em outro terminal, acesse o diretório do frontend:
cd clientInstale as dependências:
npm installInicie a aplicação:
npm run devO backend utiliza variáveis de ambiente para configurar o banco de dados, autenticação com o GitHub e chaves de segurança.
Crie o arquivo .env a partir do .env.example e preencha os valores necessários.
O projeto utiliza Pytest para execução dos testes, separados em unitários e de integração.
Execute os comandos a partir do diretório server:
uv run pytestuv run pytest -m unituv run pytest -m integrationuv run pytest -vuv run pytest tests/auth/unit/test_auth_service.pyOs markers utilizados são:
| Marker | Descrição |
|---|---|
unit |
Testes unitários, focados em componentes isolados |
integration |
Testes de integração entre diferentes componentes da aplicação |