Saltar al contenido principal

RepoGPT: Análisis y Sumarización Inteligente de Repositorios de Código

Una herramienta CLI para analizar repositorios de software y generar sumarios detallados en Markdown o JSON.

GitHub Repository

RepoGPT: Análisis y Sumarización Inteligente de Repositorios de Código #

{/* Opcional: Un logo para RepoGPT o un diagrama simplificado de su flujo de trabajo. <img src="/ruta/a/repogpt_logo_o_diagrama.png" alt="RepoGPT: Analizando la estructura de un repositorio" style={{ maxWidth: '400px', margin: '1em 0' }} loading="lazy" /> */}

Objetivo Principal del Repositorio: RepoGPT es una herramienta de línea de comandos (CLI) que analiza exhaustivamente repositorios de software, extrayendo información estructural, metadatos y tareas pendientes. Genera sumarios detallados en Markdown o JSON, ideales para ser ingeridos por Modelos de Lenguaje Grandes (LLMs), para revisiones de código, o para entender rápidamente la arquitectura de un proyecto.

Motivación / ¿Por qué esta herramienta?: Comprender la estructura y el contenido de un repositorio puede ser una tarea ardua. Inspirado por herramientas como gpt-repository-loader, RepoGPT busca:

  • Automatizar la "lectura" de repositorios para LLMs, permitiéndoles tener un contexto más completo del código.
  • Facilitar la revisión humana al proporcionar resúmenes estructurados y bien organizados.
  • Ofrecer una visión general rápida de la salud y composición de un proyecto (dependencias, tareas pendientes, métricas de código).
  • Proporcionar una herramienta configurable y extensible para el análisis de código.

Tecnologías y Herramientas Clave (Stack):

  • Lenguaje Principal: Python (3.8+).
  • Parsing de Código:
    • Python: Módulo ast nativo.
    • JavaScript/TypeScript: pyjsparser (opcional).
    • YAML: PyYAML (opcional).
    • Otros: Parsers específicos para Markdown, HTML, Dockerfiles y un parser genérico para archivos de texto.
  • Extracción de Metadatos:
    • Integración con git CLI para información del repositorio.
    • Análisis de archivos de dependencias (requirements.txt, package.json, pyproject.toml, etc.).
  • Procesamiento y Reportes:
    • Generación de Markdown con resaltado de sintaxis.
    • Salida JSON estructurada.
  • Eficiencia: Procesamiento concurrente de archivos.
  • Manejo de Exclusiones: Integración con gitignore-parser para respetar las reglas de .gitignore.

Características Destacadas / ¿Qué puedes encontrar aquí?:

  • Análisis Estructural Detallado: Extrae jerárquicamente clases, métodos, funciones, imports, decoradores y docstrings.
  • Amplio Soporte de Lenguajes: Especializado en Python, JS/TS, Markdown, YAML, HTML, Dockerfiles, con análisis básico para otros.
  • Recopilación Exhaustiva de Metadatos: Información de Git, dependencias del proyecto, y métricas de código (líneas, tamaño, tipos de archivo).
  • Identificación de Tareas: Agrega comentarios TODO y FIXME de todo el código base.
  • Reportes Configurables:
    • Markdown: Salida por defecto, con flags (--summary, --dependencies, etc.) para controlar el nivel de detalle.
    • JSON: Vuelco completo de todos los datos extraídos para procesamiento posterior (ej. con jq).
  • Optimización: Usa concurrencia para analizar archivos en paralelo.
  • Flexibilidad: Permite especificar subdirectorios de inicio, tamaño máximo de archivo y seleccionar extractores específicos.
  • Instalación como Módulo: Fácil de instalar y usar como comando CLI (repogpt).

¿Cómo Empezar / Uso Básico:

  1. Clona el repositorio e instálalo (modo editable recomendado): pip install -e . (considera los extras como .[js,yaml,gitignore]).
  2. Navega al directorio del proyecto que quieres analizar.
  3. Ejecuta el comando:
    • repogpt (para salida Markdown a consola).
    • repogpt -o mi_reporte.md (para guardar en archivo).
    • repogpt -f json -o mi_reporte.json (para salida JSON).
    • repogpt --summary --dependencies --tasks -o reporte_detallado.md (para un reporte Markdown más completo).

Aprendizajes y Contribuciones:

  • Una herramienta poderosa para automatizar la documentación y el análisis contextual de código, crucial para la interacción con LLMs.
  • Demuestra cómo construir una CLI robusta en Python con parsing de argumentos, procesamiento modular y diferentes formatos de salida.
  • Aplicación práctica de técnicas de parsing de código y extracción de metadatos para múltiples lenguajes y formatos.
  • Un proyecto útil para desarrolladores, arquitectos de software, y cualquiera que trabaje con LLMs sobre bases de código.

Estado Actual: Funcional y con un conjunto de características sólido. Abierto a contribuciones y mejoras.

Enlaces: