Skip to content

🗺️ Roadmap: Features y mejoras planificadas #2

Description

@svg153

📋 Roadmap: gh-clone-org

Estado actual: Script bash funcional (v0.1.0) con ~160 líneas, 12 commits, extensión de gh CLI.
Objetivo: Convertirlo en una herramienta robusta, segura y con buena cobertura de tests.


🔴 Alta prioridad

1. Soporte de tokens seguros (breaking change de gh CLI)

  • Estado: Abierto como issue Add support for secure token storage #1 (notificación del equipo de gh CLI)
  • Problema: El script usa gh api directamente, que funciona con tokens en texto plano
  • Solución: Verificar que gh api sigue funcionando con keyring (debería, ya que shellea a gh)
  • Impacto: Si no se migra, el extension se romperá cuando keyring sea obligatorio
  • Estimación: 1-2h

2. Filtros de repositorios

  • Problema: Clonea TODOS los repos de la org, sin excepciones
  • Features:
    • --include-pattern / --exclude-pattern (glob patterns)
    • --skip-archived (saltar repos archivados)
    • --skip-forks (saltar forks)
    • --max-depth / --limit (límite de repos)
  • Estimación: 4-6h

3. Rate limiting y reintentos

  • Problema: No maneja rate limits de GitHub API ni fallos de red
  • Features:
    • Detectar 403 Too Many Requests y respetar X-RateLimit-Reset
    • Reintentos automáticos con backoff exponencial
    • Mostrar progreso con contador (X/Y repos clonados)
  • Estimación: 3-4h

🟡 Media prioridad

4. Modo dry-run

  • Mostrar qué repos se clonarían sin ejecutar git clone
  • --dry-run o -n
  • Estimación: 1-2h

5. Soporte para repos individuales (no solo orgs)

  • gh clone-org user/repo → clonar un repo específico
  • gh clone-org user → clonar todos los repos de un usuario
  • Estimación: 2-3h

6. Perfiles de configuración

  • Archivos .gh-clone-org.yaml con presets:
    profiles:
      dev:
        skip_archived: true
        skip_forks: true
        exclude: ["*.github", "docs-*"]
      full:
        # clone everything
  • Estimación: 3-4h

7. Logs y verbosidad

  • --verbose / -v para ver cada clone en tiempo real
  • --quiet para modo silencioso
  • Log a archivo opcional
  • Estimación: 1-2h

🟢 Baja prioridad

8. Tests automatizados

  • Tests para parsing de argumentos
  • Tests para filtrado de repos
  • Mock de gh api responses
  • Estimación: 4-6h

9. CI/CD

  • Workflow de GitHub Actions
  • ShellCheck en CI
  • Release automático con tags
  • Estimación: 2-3h

10. Documentación

  • README con ejemplos más detallados
  • Man page / --help mejorado
  • Screenshots/gifs de uso
  • Contributing guide
  • Estimación: 2-3h

11. Performance

  • --parallel=N para controlar concurrencia (no solo nproc)
  • --bare mode para clones ligeros
  • Cache de URLs SSH/HTTPS
  • Estimación: 3-4h

12. Migración a Go (opcional, largo plazo)

  • Mejorar rendimiento y portabilidad
  • Binarios precompilados para Linux/macOS/Windows
  • Compilar con go buildgh extension install
  • Estimación: 2-3 días

📊 Resumen

Prioridad Issues Estimación total
🔴 Alta 1, 2, 3 ~8-10h
🟡 Media 4, 5, 6, 7 ~8-11h
🟢 Baja 8, 9, 10, 11, 12 ~12-18h
Total 12 features ~28-39h

🗓️ Sugerencia de fases

Fase 1 (crítico): #1 secure tokens + #3 rate limits → 4-6h
Fase 2 (core): #2 filters + #4 dry-run + #7 verbose → 6-8h
Fase 3 (mejoras): #5 user support + #6 profiles + #8 tests → 7-10h
Fase 4 (pulido): #9 CI + #10 docs + #11 perf → 7-10h
Fase 5 (opcional): #12 Go rewrite → 2-3 días

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions