¿Qué hace github-traffic?
Obtén, almacena y visualiza datos de tráfico de repositorios de GitHub (visitas, clones, referentes, estrellas) con gráficos de tendencias. Requiere acceso de push al repositorio.
Características
- Obtener datos de tráfico: Recupera visitas, clones y referentes de la API de GitHub.
- Almacenar datos: Guarda los datos en archivos CSV para análisis histórico.
- Visualizar tendencias: Genera gráficos de tendencias (líneas) para visitas, clones y estrellas.
- Resumen automático: Crea un informe de tráfico resumido en el README del repositorio (opcional).
Requisitos
- Token de acceso personal de GitHub con permisos
repo(incluyendorepo:statusypublic_repopara repositorios públicos). - Acceso de push al repositorio.
- Python 3.8+ con las bibliotecas
requests,matplotlibycsv.
Instalación
- Clona el repositorio donde deseas almacenar los datos.
- Configura la variable de entorno
GITHUB_TOKENcon tu token de acceso. - Instala las dependencias:
pip install requests matplotlib
Uso
Como script independiente
python traffic.py --owner <nombre_usuario> --repo <nombre_repo>
Como módulo importable
from traffic import fetch_traffic_data, generate_charts
# Obtener datos
data = fetch_traffic_data("nombre_usuario", "nombre_repo")
# Generar gráficos
generate_charts(data, output_dir="graficos/")
Parámetros
| Parámetro | Descripción |
|---|---|
--owner | Nombre del usuario u organización propietaria del repositorio |
--repo | Nombre del repositorio |
--token | Token de acceso de GitHub (opcional, por defecto usa GITHUB_TOKEN) |
--output | Directorio de salida para gráficos y CSVs (por defecto ./datos_trafico/) |
Salida
- CSVs:
datos_trafico/visitas.csv,datos_trafico/clones.csv,datos_trafico/referentes.csv - Gráficos:
datos_trafico/grafico_visitas.png,datos_trafico/grafico_clones.png - Resumen (opcional): Actualización del README.md con una tabla de tráfico.
API de GitHub utilizada
GET /repos/{owner}/{repo}/traffic/viewsGET /repos/{owner}/{repo}/traffic/clonesGET /repos/{owner}/{repo}/traffic/popular/referrers
Licencia
MIT