| status | active |
|---|---|
| type | project |
Script em Python que consulta a API do GitHub e gera um snapshot com métricas dos seus repositórios: linguagem, stars, forks, views e clones dos últimos 14 dias, e a última atualização de cada um. A cada execução, compara com o snapshot anterior para calcular a variação nas últimas 24h e acumula um histórico diário em CSV.
Não roda sozinho: cada execução é manual (ou agendada externamente, ex. Task Scheduler / cron).
insights-github/
├── src/insights_github/
│ ├── api.py # chamadas à API do GitHub (repos, tráfego de views/clones)
│ ├── storage.py # cálculo de delta (24h) e persistência do histórico
│ └── cli.py # ponto de entrada: orquestra api.py + storage.py
├── main.py # atalho na raiz: `python main.py` chama insights_github.cli
├── data/ # gerado localmente, não versionado (está no .gitignore)
│ ├── github_insights.csv # snapshot mais recente (sobrescrito a cada execução)
│ └── github_historical_insights.csv # série temporal (uma linha por repo por dia)
├── .env.example # modelo das variáveis de ambiente necessárias
├── .env # credenciais reais, NÃO versionado (está no .gitignore)
├── requirements.txt
└── pyproject.toml
- Python 3.11+
- Um personal access token do GitHub com escopo de leitura em repositórios (
repopara incluir privados, oupublic_repose só quiser os públicos)
git clone <url-do-repositorio>
cd insights-github
python -m venv .venv
.venv/Scripts/activate # Windows
# source .venv/bin/activate # Linux/Mac
pip install -r requirements.txt
pip install -e .Copie o modelo e preencha com suas credenciais:
cp .env.example .envGITHUB_TOKEN=seu_personal_access_token
GITHUB_USER=seu_usuario_github
BASE_URL=https://api.github.com
O .env contém segredo (o token) e nunca deve ser commitado. Já está listado no .gitignore.
python main.py
# ou
python -m insights_github.cliA cada execução, o script:
- Busca todos os repositórios da conta (
type: owner, inclui privados se o token tiver escopo) - Busca views e clones dos últimos 14 dias de cada um
- Imprime um resumo no terminal
- Atualiza
data/github_insights.csv(snapshot atual) edata/github_historical_insights.csv(histórico acumulado)
views_14d/clones_14d: total de acessos, inclui suas próprias visitas como dono do repositórioviews_unicos/clones_unicos: visitantes únicos, melhor indicador de interesse de terceiros, já que deduplicadelta_*_24h: variação desde a execução anterior (fica zerado até haver um snapshot anterior para comparar)
MIT. Veja LICENSE.