Activo 2025

GitHub Metrics Engine

Herramienta avanzada para recolección y procesamiento de estadísticas de productividad desde la API de GitHub.

GitHub Metrics Engine

Overview

CROBF Git Stats es un panel de control avanzado diseñado para visualizar y analizar el rendimiento de desarrollo dentro de la organización CROBF en GitHub. El proyecto automatiza la extracción de datos (commits, PRs, issues y ramas) mediante la API de GitHub y los transforma en una experiencia visual interactiva. El objetivo principal es ofrecer transparencia sobre la salud del código, la eficiencia del equipo y las tendencias de contribución a lo largo del tiempo.

Key Features

  • 📊 Rendimiento Individual: Métricas detalladas por colaborador, incluyendo líneas de código añadidas/eliminadas y ratio de impacto.
  • 🚀 Ciclo de Vida (PRs & Issues): Seguimiento del tiempo promedio de resolución de issues y tiempo de mezcla (merge) de Pull Requests.
  • 📈 Tendencias Temporales: Gráficos de actividad mensual que permiten observar picos de trabajo y la evolución del proyecto.
  • 🔍 Salud de Repositorios: Identificación automática de repositorios inactivos, ramas estancadas y PRs que requieren atención inmediata.
  • ⚡ Dashboard de Alto Rendimiento: Construido con Astro y Chart.js, garantizando una carga rápida y visualizaciones interactivas.

Technical Challenges

Uno de los mayores retos fue la orquestación y agregación de datos masivos desde la API de GitHub. El script de backend (github-stats.js) realiza múltiples peticiones anidadas para reconstruir la historia del proyecto sin exceder los límites de la API:

  • Agregación Eficiente: Diseñé una lógica en Node.js que procesa commits, PRs e issues de forma iterativa, normalizando la respuesta cruda de GitHub en un único archivo JSON (estadisticas_completas.json).
  • Integración Astro + Chart.js: El desafío fue renderizar gráficos complejos en un entorno que favorece el HTML estático. Lo solucioné encapsulando la lógica de los gráficos en componentes de Astro que inyectan los datos pre-procesados, manteniendo la interactividad sin sacrificar el rendimiento de carga.
  • Manejo de Errores de API: Implementé estrategias para gestionar errores comunes (como el código 409 en repositorios vacíos) y asegurar que la generación de estadísticas no se detenga ante fallos menores de red.

Lessons Learned

  • Arquitectura de Astro: Aprendí a utilizar la arquitectura de islas para delegar la interactividad de los gráficos solo donde es necesaria.
  • Normalización de Datos: Comprendí que el procesamiento previo en el backend es crítico; transformar los datos antes de que lleguen al frontend redujo drásticamente la complejidad de los componentes visuales.
  • Higiene de Git: Al visualizar la cantidad de ramas y PRs estancados, aprendí la importancia de establecer políticas claras de limpieza en los repositorios para mantener un flujo de trabajo saludable.

Results & Impact

El resultado es una herramienta que centraliza la actividad de múltiples repositorios en una sola vista profesional. Gracias a métricas como el Efficiency Chart y el Impact Ratio, el equipo ahora puede identificar cuellos de botella en las revisiones, reducir el tiempo de respuesta en los Pull Requests y tener una visión clara y objetiva del progreso del proyecto.