Analyze any GitHub repository using AI-powered insights and interactive conversations
GitHub Repository Analyzer es una aplicación web inteligente que usa Google Gemini AI para analizar repositorios de GitHub. Permite hacer preguntas interactivas sobre la estructura, funcionalidad y código de cualquier repo público.
Casos de uso:
- 📚 Aprender cómo están estructurados proyectos populares
- 🔍 Analizar código de competidores o inspiración
- 💬 Tener conversaciones sobre cualquier repositorio
- 📖 Generar documentación automáticamente
- 🚀 Encontrar patrones y mejores prácticas
✨ Chat Interactivo: Haz preguntas sobre cualquier repositorio de GitHub usando Google Gemini AI 📊 Análisis de Repositorio: Análisis automático de la estructura, lenguajes y archivos clave del repositorio 📖 Visualización de README: Ver y analizar archivos README de repositorios 🔍 Búsqueda de Código: Busca y visualiza archivos específicos dentro de repositorios 📝 Generación de Documentación: Genera automáticamente documentación completa para repositorios 🎨 Interfaz Moderna: Interfaz limpia y responsive construida con React y Tailwind CSS 💾 Historial Persistente: Guarda análisis y chat en SQLite con sincronización automática 🕐 Historial de Conversaciones: Accede a conversaciones anteriores desde la barra lateral 🛡️ Mejor Manejo de Errores: Error boundaries, toasts y validación robusta con Zod ⚡ API RESTful Tipada: Endpoints para guardar y recuperar análisis con TypeScript tipos seguros 🔄 Windows Compatible: Timeout y retry logic especial para SQLite en Windows
- Frontend: Next.js 16.1.6 con Turbopack, React 19 y TypeScript 5
- Backend: API Routes de Next.js con Zod validation
- Base de Datos: SQLite + Prisma ORM 5.18.0 (LTS)
- Optimizado para Windows (timeout: 10 segundos)
- Exponential backoff retry logic (100ms → 200ms → 400ms)
- Estilos: Tailwind CSS 4 + lucide-react (480+ iconos)
- IA: Google Gemini API (generative-ai)
- Integración GitHub: Octokit REST API
- Validación: Zod con type inference seguro
- Build: Turbopack para compilación ultra-rápida (3.9s)
Antes de comenzar, asegúrate de tener:
- Node.js 18+ y npm/yarn instalados
- Una clave de API de Google Gemini (obtén una en Google AI Studio)
- (Opcional) Un Token de Acceso Personal de GitHub para límites de tasa más altos
Windows:
setup.batLinux/macOS:
bash setup.sh-
Clona el repositorio
git clone https://github.com/DarnerDiaz/github-repo-analyzer.git cd github-repo-analyzer -
Instala las dependencias
npm install
-
Configura las variables de entorno
# Copia el archivo de ejemplo cp .env.example .env.local # Edita .env.local y agrega tus claves de API nano .env.local # o tu editor favorito
Variables de entorno requeridas:
NEXT_PUBLIC_GEMINI_API_KEY: Tu clave de API de Google GeminiGITHUB_TOKEN(opcional): Token de Acceso Personal de GitHubDATABASE_URL: Ruta a la base de datos SQLite (incluida por defecto)
-
Configura la base de datos
npx prisma migrate dev
Nota para Windows: La base de datos SQLite está configurada con un timeout de 10 segundos para evitar bloqueos de archivos. Las operaciones del API incluyen retry logic exponencial automático.
-
Inicia el servidor de desarrollo
npm run dev
-
Abre tu navegador Navega a http://localhost:3000
Después de iniciar el servidor, deberías ver:
- ✅ Servidor corriendo en
http://localhost:3000 ⚠️ Advertencia sobreNEXT_PUBLIC_GEMINI_API_KEY(normal, configuralo para habilitar IA)- 💾 Base de datos SQLite creada en
./dev.db
-
Ingresa un Repositorio
- Ingresa una URL de GitHub (ej:
https://github.com/facebook/react) - O simplemente usa el formato
propietario/repositorio(ej:facebook/react)
- Ingresa una URL de GitHub (ej:
-
Ver Análisis del Repositorio
- Ve las estadísticas del repositorio (estrellas, forks, lenguaje)
- Explora el archivo README
- Verifica los archivos clave identificados y lenguajes principales
-
Chatea sobre el Repositorio
- Haz preguntas sobre la estructura del código
- Solicita explicaciones de componentes
- Obtén información sobre funcionalidad y patrones de diseño
-
Genera Documentación
- Genera automáticamente documentación completa
- Obtén un análisis estructurado del repositorio
- Visita Google AI Studio
- Haz clic en "Create API Key"
- Copia la clave en tu archivo
.env.local
- Ve a GitHub Settings → Personal Access Tokens
- Haz clic en "Generate new token"
- Selecciona los permisos:
repo,read:user - Copia el token en tu archivo
.env.local
src/
├── app/
│ ├── api/ # API Routes
│ │ ├── repositories/ # Guardar análisis
│ │ ├── chat/ # Sesiones de chat y mensajes
│ │ └── history/ # Obtener historial
│ ├── layout.tsx # Layout raíz
│ ├── page.tsx # Página principal
│ └── globals.css # Estilos globales
├── components/
│ ├── Chat/ # Interfaz de chat
│ ├── RepositoryInput/ # Formulario de entrada
│ ├── CodeViewer/ # Vista previa de código
│ ├── DocumentationViewer/ # Visualizador de documentación
│ ├── HistorySidebar/ # Barra lateral de historial
│ ├── ErrorBoundary/ # Error boundary
│ ├── Toast/ # Notificaciones
│ └── Skeleton/ # Loaders de esqueleto
├── lib/
│ ├── github.ts # Integración GitHub API
│ ├── gemini.ts # Integración Gemini AI
│ ├── prisma.ts # Cliente Prisma
│ ├── env.ts # Validación de variables de entorno
│ ├── api.ts # Utilidades de API
│ ├── middleware.ts # Middleware de error handling
│ ├── hooks/ # Custom React hooks
│ │ ├── useRepositoryAnalysis.ts
│ │ ├── useChatSession.ts
│ │ ├── useChatMessages.ts
│ │ └── useHistory.ts
│ └── utils.ts # Funciones de utilidad
├── types/
│ └── index.ts # Definiciones de tipos TypeScript
└── generated/ # Generado por Prisma
└── prisma/ # Cliente de Prisma
prisma/
├── schema.prisma # Esquema de base de datos
├── dev.db # Base de datos SQLite
└── migrations/ # Historial de migraciones
Obtiene información básica del repositorio incluyendo estrellas, forks e idioma.
Realiza un análisis profundo de la estructura del repositorio, identifica archivos clave y obtiene el README.
Envía un mensaje a la API de Google Gemini con contexto del repositorio para respuestas inteligentes.
Genera automáticamente documentación completa usando IA.
Intenta preguntarle a la IA:
- "¿Qué hace este repositorio?"
- "Muéstrame el punto de entrada principal de este proyecto"
- "¿Qué lenguajes de programación se usan en este proyecto?"
- "Explica la arquitectura de este repositorio"
- "¿Cuáles son las dependencias principales?"
- "¿Cómo empiezo con este proyecto?"
- Sube tu código a GitHub
- Visita Vercel
- Importa tu repositorio
- Agrega tus variables de entorno en el panel de Vercel
- ¡Despliega!
# O despliega directamente desde la terminal
npm install -g vercel
vercelLa aplicación se puede desplegar en cualquier plataforma de hosting de Node.js:
- AWS Amplify
- Railway
- Render
- Netlify Functions
Si ves errores de timeout al guardar datos:
- ✅ Arreglado: DATABASE_URL incluye
timeout=10000automáticamente - La aplicación usa exponential backoff retry logic (3 intentos)
- No requiere configuración manual
- Esto es normal al primer inicio
- Ve a Google AI Studio y copia tu clave
- Agrégala a
.env.localy reinicia el servidor
# En Windows (PowerShell)
Stop-Process -Name node -Force
# En Linux/macOS
lsof -i :3000 | grep LISTEN | awk '{print $2}' | xargs kill# Regenera los tipos de Prisma
npx prisma generate
# Limpia el build cache
rm -rf .next
# Reinicia el build
npm run build- La API de GitHub tiene límites de tasa (60 solicitudes/hora sin autenticar, 6000 con token)
- La vista previa de archivos se limita a 5000 caracteres
- Los archivos binarios no se pueden ver
- Los repositorios grandes pueden tardar más en analizarse
¡Las contribuciones son bienvenidas! Por favor:
- Haz un fork del repositorio
- Crea una rama de características (
git checkout -b feature/caracteristica-increible) - Confirma tus cambios (
git commit -m 'Agregar característica increíble') - Sube a la rama (
git push origin feature/caracteristica-increible) - Abre un Pull Request
Este proyecto está bajo la Licencia MIT - ver el archivo LICENSE para más detalles.
Para problemas, preguntas o sugerencias:
- Consulta la página de Issues
- Crea un nuevo issue con información detallada
- Incluye los pasos para reproducir si reportas un bug
- API_SETUP.md - Guía detallada para configurar las claves de API
- DATABASE.md - Documentación de base de datos, esquema y API
- FEATURES_UPDATE.md - Guía de características nuevas e hooks personalizados
- IMPLEMENTATION_SUMMARY.md - Resumen técnico de la implementación
- QUICK_START.md - Guía de inicio rápido
- Historial persistente de conversaciones
- Base de datos SQLite con Prisma
- API RESTful para guardar y recuperar análisis
- Validación robusta de entorno con Zod
- Error boundaries y manejo de errores mejorado
- Toasts/notificaciones para feedback del usuario
- Componentes de skeleton loading
- Barra lateral de historial de chat
- Vista previa de archivos en tiempo real
- Soporte para repositorios privados
- Análisis y métricas avanzadas
- Sugerencias de revisión de código
- Soporte multidioma
- Modo oscuro mejorado
- Exportar análisis como PDF/Markdown
- Características de colaboración
- Autenticación de usuario
- Búsqueda full-text en análisis
- Tageo y organización de sesiones
Hecho con ❤️ para entusiastas y desarrolladores de GitHub