Skip to main content

Insightful dashboards for GitHub teams, repositories, and organizations.

Project description

📊 Reportify-IFES

Reportify-IFES é uma ferramenta Python para geração de dashboards e relatórios automatizados a partir de dados de repositórios GitHub. Com ele, você obtém insights valiosos sobre sua organização, equipe, colaboração e produtividade no GitHub.


🚀 Instalação

⚠️ Requisitos:

  • Python 3.10 obrigatoriamente.
    Outras versões podem não ser compatíveis.

💡 Caso não tenha essa versão instalada, use pyenv para configurar o Python 3.10.12 (Ubuntu/Debian)

  1. Instale as dependências do sistema:
sudo apt update
sudo apt install -y make build-essential libssl-dev zlib1g-dev \
  libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm \
  libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev \
  libffi-dev liblzma-dev git
  curl https://pyenv.run | bash
  1. Adicione o pyenv ao seu shell (.bashrc, .zshrc, etc):
# Adicione ao final do arquivo
export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
  1. Após isso, reabra o terminal ou execute:
 source ~/.bashrc
  1. Instale o Python 3.10.12 no diretório que deseja executar a ferramenta:
pyenv install 3.10.12
pyenv local 3.10.12
  1. Crie um ambiente virtual com pyenv-virtualenv:
pyenv virtualenv 3.10.12 reportify-env
pyenv activate reportify-env

Instale via pip:

pip install reportify-ifes

⚙️ Configuração Crie um arquivo .env no diretório raiz do seu projeto com as seguintes variáveis:

GITHUB_TOKEN=seu_token_github
GITHUB_REPOSITORY=usuario/repositorio

🏃‍♂️ Como utilizar Crie um arquivo Python, por exemplo gerar_relatorio.py, com o seguinte conteúdo:

from reportify import Report
relatorio = Report()
relatorio.run()

📚 Componentes do Relatório O relatório é composto por diferentes dashboards, cada um focado em uma perspectiva da organização ou projeto no GitHub:

🔹 DeveloperStats Analisa os desenvolvedores do repositório, gerando métricas como quantidade de commits, issues abertas e fechadas, pull requests e participação individual nas atividades. Relatório consolidado e individual.

🔹 OrganizationalDashboard Oferece uma visão geral da organização, consolidando dados de múltiplos repositórios e apresentando tendências, produtividade, gargalos e distribuição de tarefas.

🔹 GitHubIssueStats Gera estatísticas específicas sobre as issues, como tempo médio de resolução, tempo de abertura, gargalos e ciclos de desenvolvimento.

🔹 TeamStats Foca na dinâmica da equipe, mostrando como os membros colaboram, distribuição de tarefas, taxas de conclusão e engajamento dentro do repositório.

🔹 CollaborationGraph Cria um grafo de colaboração que representa visualmente como os membros da equipe interagem entre si por meio de revisões, commits, comentários e interações em issues.

🚀 Agendamento de Resumos Diários dos Desenvolvedores com GitHub Actions

Este repositório permite gerar os relatórios automaticamente e enviar um resumo todos os dias utilizando GitHub Actions, Gemini AI (Google) e Discord Webhooks.


📁 Etapas de configuração

1. 🔱 Fork do Repositório

Caso deseje usar esse sistema com seu próprio repositório:

  1. Clique em Fork (canto superior direito)
  2. Escolha sua conta para onde o fork será feito

2. 🔐 Configurar Secrets no repositório

Com o fork criado, acesse:

Settings > Secrets and variables > Actions > New repository secret

Adicione os seguintes 4 secrets obrigatórios:

Nome Descrição
GITHUB_REPOSITORY Nome do repositório GitHub que será analisado, exemplo: n8n-io/n8n
GITHUB_TOKEN Token de acesso pessoal (com permissão de leitura de repositório privado, se necessário)
GOOGLE_API_KEY Chave da API do Google Gemini, crie sua chave gratuita aqui.
DISCORD_WEBHOOK Webhook do canal ou servidor do Discord

3. 🕐 Ajustar horário de execução no GitHub Actions

O agendamento de execução diária é feito no arquivo:

.github/workflows/run.yml

No trecho:

on:
  schedule:
    - cron: '0 11 * * *'  # Executa todos os dias às 08h BRT (11h UTC)
  • Para alterar o horário:

A hora (11) está em formato UTC

Para rodar às 09h da manhã no Brasil (BRT) → use cron: '0 12 * * *'

Para rodar às 06h da manhã no Brasil → cron: '0 9 * * *'

É possível configurar o cron de outras formas: Saiba mais

Após essa configuração, os relatórios serão gerados e os resumos feitos por IA serão enviados automaticamente para o seu canal/servidor discord.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

reportify_ifes-1.3.1.tar.gz (48.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

reportify_ifes-1.3.1-py3-none-any.whl (50.3 kB view details)

Uploaded Python 3

File details

Details for the file reportify_ifes-1.3.1.tar.gz.

File metadata

  • Download URL: reportify_ifes-1.3.1.tar.gz
  • Upload date:
  • Size: 48.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for reportify_ifes-1.3.1.tar.gz
Algorithm Hash digest
SHA256 e9b91815520ec63905129a15da25752626863e3ce86996b4c7deb3e231a08ae1
MD5 ad650952babe9202304c4f9529bf0050
BLAKE2b-256 cc09041f9f971ec62621d2641b54872ed3d270658b544832fa9d725ee32e858d

See more details on using hashes here.

File details

Details for the file reportify_ifes-1.3.1-py3-none-any.whl.

File metadata

  • Download URL: reportify_ifes-1.3.1-py3-none-any.whl
  • Upload date:
  • Size: 50.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for reportify_ifes-1.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 06c700b05115cba4c58d7ae8f678dd60b4ce096d5a79bf69f081d17fc1106230
MD5 49d2d9749048f866ffc0678448fff591
BLAKE2b-256 7c49f3a16eb1d7061194d4c8430f556244760cdcabc9db2b4d8dc9fd0aeb380a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page