![🦑 GitSet.dev [Astro.js - Python - React.js - AI - Node.js]](/images/assets/gitset-preview.png)
🦑 GitSet.dev [Astro.js - Python - React.js - AI - Node.js]
- Ivan Luna
- SAAS , Astro.js , Python , Node.js , Desarrollo Fullstack , IA , Fast API , Flask , GitHub API , CLI , Auth , Drizzle ORM
- 10 Jan, 2025
GitSet.dev es un conjunto integral de herramientas impulsadas por IA que mejora tu experiencia de desarrollo en GitHub. Ofrece soluciones para una gestión de repositorios más eficiente, versionado preciso y documentación clara. Construido con Astro.js/React.js e integrando 8 backends basados en Python (FastAPI y Flask), combina sugerencias impulsadas por IA con mejoras solicitadas por los usuarios, refinando continuamente los resultados para ofrecer resultados optimizados. Proporciona tanto utilidades públicas como servicios autenticados para simplificar la gestión de repositorios, documentación, control de versiones y más.
Funcionalidades Principales:
-
Herramientas Públicas (Sin Autenticación Requerida):
- Constructor de .gitignore: Genera automáticamente archivos .gitignore personalizados según lenguajes y frameworks específicos. Los usuarios seleccionan su stack tecnológico y la herramienta combina reglas relevantes para crear un archivo optimizado. Elimina la búsqueda manual de plantillas, garantizando una gestión de repositorios limpia y eficiente. Ideal para desarrolladores que trabajan con múltiples tecnologías, simplifica el mantenimiento de bases de código ordenadas.
-
Servicios con Autenticación:
-
Generador AI de README Público: Crea automáticamente archivos README.md profesionales para repositorios públicos de GitHub. Analiza el contenido del repositorio y genera documentación detallada, incluyendo características, guías de instalación, instrucciones de uso y pautas de contribución. Los usuarios pueden solicitar modificaciones al README generado, obteniendo versiones ajustadas a sus necesidades. Además, permite comparar versiones para asegurar que el README final cumpla con los estándares del proyecto.
-
Generador AI de README Personal: Similar al anterior, pero para repositorios públicos y privados propiedad del usuario autenticado. Genera README.md detallados, cubriendo todas las secciones esenciales de documentación. Los usuarios pueden refinar el resultado solicitando ajustes y comparando iteraciones para elegir la versión más adecuada.
-
Generador de Mensajes de Commit: Mejora las operaciones de Git mediante una CLI que usa IA para generar mensajes de commit precisos. Analiza cambios en el código, sugiere mensajes basados en versionamiento semántico o estilos personalizados, y se adapta a patrones existentes para mantener coherencia en equipos. Funciona de forma rápida y multiplataforma.
-
Gestor de Tags y Releases: Simplifica la gestión de releases en GitHub con una interfaz intuitiva. Incluye sugerencias de IA para notas de release que reflejan cambios en el código, permitiendo ajustes manuales. Reduce esfuerzos manuales y asegura un proceso de versionamiento consistente.
-
Descomentador de Código: Elimina comentarios innecesarios del código, mejorando su legibilidad y optimizándolo para producción. Soporta múltiples lenguajes y permite eliminar selectivamente comentarios inline, de bloque, documentación o pragmas, manteniendo la funcionalidad intacta.
-
Gestor de Dependencias: Organiza dependencias en proyectos multilingüe. Identifica dependencias externas, organiza imports según buenas prácticas y genera archivos de configuración como
requirements.txt
,pom.xml
,Cargo.toml
oCMakeLists.txt
. Ideal para repositorios con Python, Java, C/C++ o Rust. -
Evaluador de Repositorios: Analiza repositorios de GitHub para ofrecer métricas detalladas, estimación de costos y esfuerzo de desarrollo. Evalúa estructura del repositorio, historial de commits y actividad de contribuidores, proporcionando datos útiles para gestión de proyectos.
-
GitSet CLI (@gitset-dev/cli)
GitSet CLI es una herramienta robusta de línea de comandos que permite generar commit mesages impulsados por IA directamente desde el terminal.
Modo Semántico (Predeterminado):
Genera commit mesages basados en convenciones semánticas automáticamente.
$ gitset suggest
✨ feat: Agregar funcionalidad de autenticación de usuario con soporte para JWT
Modo de Estilo Personalizado:
Permite generar commit mesages en un formato personalizado, adaptado a las preferencias del usuario o su equipo.
$ gitset suggest --mode custom
✨ [Auth] Agregada autenticación de usuario con JWT 🔐
Opcional: Configurar profundidad de análisis:
Ofrece la opción de configurar el número de commits previos a analizar para obtener sugerencias más personalizadas.
$ gitset suggest --mode custom --commit-count 30
✨ [Auth] Agregada autenticación de usuario con JWT 🔐
El CLI se adapta inteligentemente a tu estilo personal de commits al analizar tus commits previos, igualando tus preferencias de formato, uso de emojis y estructura de mensajes.
Con sus capacidades adaptativas, el GitSet CLI mejora la consistencia y productividad en los commits, garantizando prácticas de control de versiones de alta calidad en los proyectos.
Arquitectura Técnica:
Basado en una arquitectura modular y orientada a servicios, emplea capas de servicio distintas para gestionar solicitudes de clientes, autenticación, procesamiento impulsado por IA, agregación de contenido y manejo de mejoras. El diseño sigue las mejores prácticas para escalabilidad, rendimiento y seguridad, garantizando una clara separación de responsabilidades entre servicios públicos y protegidos.

Ver este gráfico en un editor interactivo aquí.
Capa Frontend
- Punto de Entrada: Construido con Astro SSR y React.js, gestiona las interacciones de usuario, el renderizado de contenido y la comunicación con otros servicios.
Sistema de Autenticación
-
Puerta de Enlace de Autenticación:
- Funciona como el punto de control de seguridad, redirigiendo solicitudes según el estado de autenticación de los usuarios.
- Refuerza políticas de control de acceso y asegura el manejo seguro de solicitudes al interactuar con el servicio de autenticación.
-
Servicio de Autenticación:
- Utiliza Drizzle ORM para la interacción con la base de datos, proporcionando almacenamiento persistente de datos de usuarios.
- Integra OAuth de GitHub para la autenticación de usuarios, gestionando tokens de sesión y asegurando la identificación segura.
- El gestor de sesiones administra el ciclo de vida de las sesiones de los usuarios.
Capa de Procesamiento CLI
- GitSet CLI: Es un componente integral del ecosistema de GitSet.dev, diseñado para mejorar la automatización del flujo de trabajo de Git mediante generación de commit mesages impulsados por IA.
Capa de Servicios Protegidos
- Servicios Principales: Incluye generación de README, creación de commit mesages, control de versiones, evaluación de repositorios y eliminación de comentarios en código.
Capa de Procesamiento de IA
- Servicios de IA Paralelos: Múltiples instancias de Gemini AI manejan tareas específicas de manera eficiente, asegurando escalabilidad.
Capa de Servicios Públicos
- Herramientas Públicas: Incluye integración con la API de GitHub y el constructor de .gitignore.
Capa de Gestión de Contenido
- Agregador de Contenido: Normaliza y entrega contenido desde diversas fuentes.
- Manejador de Mejoras: Procesa retroalimentación de usuarios para refinamiento del contenido.
Procesamiento de Pagos y Limitación de Tasa:
Integración con Lemon Squeezy y Seguimiento de Solicitudes
El sistema de pagos implementa un mecanismo de control de acceso basado en niveles que opera en varias capas:
-
Procesamiento de Pagos (Capa de Lemon Squeezy):
- Gestiona suscripciones y procesamientos de pagos.
- Comunica cambios de plan a través de webhooks.
- Mantiene datos de facturación y suscripciones separados del seguimiento de uso.
-
Seguimiento de Uso (Backends Python):
- Cada backend en Python mantiene su propio contador protegido de solicitudes.
- El seguimiento de solicitudes está aislado de los datos de pago y la autenticación OAuth.
- Los contadores se almacenan de manera segura e independiente de los datos de usuario de Drizzle ORM.
- Los límites de tasa se imponen por servicio:
- Plan Básico (T1): Límites específicos por característica.
- Plan Profesional (T2): Acceso ilimitado.
-
Flujo de Solicitudes:
- El backend valida el nivel de solicitud (
basic
/pro
) mediante el token de autenticación. - El contador específico del servicio verifica la cuota restante.
- Se procesa la solicitud si la cuota lo permite.
- El contador se actualiza de forma atómica tras un procesamiento exitoso.
- El backend valida el nivel de solicitud (
Consideraciones Técnicas
- Escalabilidad: El sistema garantiza escalabilidad horizontal con unidades de procesamiento de IA independientes y manejo distribuido de capas de servicios públicos y protegidos.
- Seguridad: La puerta de enlace de Autenticaciónn sirve como el principal punto de control de seguridad. La autenticación basada en OAuth asegura la identificación de usuarios y la gestión de sesiones.
- Rendimiento: El procesamiento de IA paralelo combinado con un robusto sistema de agregación de contenido asegura una entrega eficiente de contenido.
Instalación y Configuración:
Frontend:
git clone https://github.com/imprvhub/gitset.git
cd gitset
npm install
npm run dev
CLI:
npm install -g @gitset-dev/cli
gitset suggest # Generar commit mesages
Conclusión:
GitSet.dev representa un logro significativo al crear un conjunto completo de herramientas para GitHub que combina capacidades de IA con flujos de trabajo de desarrollo prácticos. El proyecto demuestra excelencia en:
- Construcción de arquitecturas escalables y orientadas a servicios.
- Implementación de autenticación OAuth con GitHub.
- Desarrollo de herramientas CLI que se adaptan a las preferencias del usuario.
- Integración de servicios de IA para análisis de código y generación de contenido.
- Creación de interfaces fáciles de usar para operaciones complejas en Git.
La adición del CLI de GitSet, con su capacidad para analizar commits previos y generar commit mesages adaptativos, muestra un enfoque meticuloso en personalización y eficiencia, destacando aún más la destreza técnica detrás de GitSet.dev.