https://roadmap.sh/projects/github-user-activity
Una aplicación de línea de comandos (CLI) desarrollada en Python que permite obtener y mostrar la actividad reciente de un usuario de GitHub utilizando la API pública de GitHub.
Este proyecto consiste en una herramienta tipo CLI orientada a backend que permite:
- Consultar la actividad pública reciente de cualquier usuario de GitHub
- Procesar datos en formato JSON provenientes de la API
- Mostrar la información de manera legible en la terminal
Fue desarrollado como práctica para fortalecer habilidades en:
- Consumo de APIs REST
- Manejo de datos JSON
- Desarrollo de aplicaciones CLI
- Manejo de errores y robustez en backend
- 🔍 Consulta de actividad de usuarios mediante API de GitHub
- 💻 Interacción desde la línea de comandos
- 🧾 Salida formateada y fácil de leer
⚠️ Manejo adecuado de errores (usuario inválido, fallas de API, etc.)- 🚫 Implementado sin librerías externas (solo librerías estándar de Python)
- Python 3.x
urllib→ para realizar solicitudes HTTPjson→ para procesar la respuesta de la APIsys→ para manejar argumentos desde la terminal
github-user-activity/
│
├── main.py
├── README.md
├── .gitignore
└── src/
├── __init__.py
├── github_api.py
└── formatter.py
git clone https://github.com/cristotest/github-user-activity.git
cd github-user-activity
python -m venv venv
venv\Scripts\Activate
source venv/bin/activate
Ejecuta la aplicación desde la terminal:
python main.py <nombre_usuario_github>
python main.py octocat
Actividad reciente de GitHub para: octocat
- Pushed 2 commit(s) to octocat/Hello-World
- Starred octocat/Spoon-Knife
- Opened a pull request in octocat/test-repo
La aplicación contempla los siguientes escenarios:
- ❌ Usuario no existente
- 🌐 Errores de conexión con la API
- ⚡ Errores inesperados en ejecución
Ejemplo:
Error: El usuario no existe en GitHub.
- Filtrar actividad por tipo de evento (commits, issues, PRs)
- Implementar argumentos avanzados con
argparse - Agregar pruebas unitarias
- Implementar caché para optimizar rendimiento
- Soporte para paginación de resultados
- Salida con colores en terminal
Durante este proyecto se fortalecieron habilidades en:
- Desarrollo de herramientas CLI en Python
- Consumo de APIs REST
- Manejo de estructuras JSON
- Organización de código modular
- Manejo adecuado de errores en aplicaciones backend
🔗 GitHub: https://github.com/cristotest