Java 21 Spring Boot Spring Shell Spring WebClient (Reactive) Maven Lombok

GitHub Activity CLI

Una herramienta CLI construida con Spring Shell para consultar la actividad reciente y los repositorios de un usuario de GitHub.

CLI GitHub API Spring Boot Java WebClient
Mockup del proyecto GitHub Activity CLI

Reto

Crear una utilidad de línea de comandos (CLI) para consultar la API REST de GitHub y mostrar información relevante del perfil de un usuario, su actividad reciente y sus repositorios, todo directamente desde la terminal.

Solución Técnica

Se desarrolló una aplicación CLI usando Spring Boot y Spring Shell para definir los comandos. La comunicación con la API de GitHub se maneja de forma asíncrona utilizando `WebClient` de Spring. Implementa un sistema de caché en memoria para reducir las llamadas repetidas a la API.

Características Destacadas

Comando `user <username>`: Muestra información clave del perfil (nombre, seguidores, repos públicos). Comando `activity <username>`: Lista los eventos públicos recientes del usuario (commits, creación de repos, etc.). Comando `repos <username>`: Muestra los repositorios públicos del usuario. Manejo de errores de API y formateo de fechas para mejor legibilidad.

Impacto

Una herramienta de productividad para desarrolladores que permite obtener información rápida de GitHub sin necesidad de salir del flujo de trabajo de la terminal.

Vista ampliada