--- name: import-repo description: Importa repositorios existentes al sistema Dataforge desde URL remota o local disable-model-invocation: true user-invocable: true allowed-tools: Bash, Read, Write --- # import-repo Importa repositorios existentes: desde GitHub/GitLab/Gitea, o adoptando un repo local. ## Prerequisitos - Variables: `GITEA_URL` y `GITEA_TOKEN` - Feature flag `workspace_commands` habilitado ## Modos ### Desde URL remota 1. Crear repo vacío en Gitea 2. Clonar origen con `git clone --mirror` 3. Push a Gitea con `git push --mirror` 4. Clonar en `workspaces/` 5. Registrar en BD ### Adoptar repo local 1. Verificar que existe `.git` 2. Crear repo vacío en Gitea 3. Añadir remote `gitea` 4. Push de branches y tags 5. Registrar en BD ## Flujo interactivo ### 1. Solicitar fuente ``` Fuente del repositorio: - URL remota (ej: https://github.com/user/repo) - Nombre local en workspaces/ (ej: legacy-tool) ``` ### 2. Detectar modo y analizar Usa `core.DetectImportMode(source)` ### 3. Solicitar nombre de destino ``` Nombre en Gitea (Enter para usar 'nombre-sugerido'): ``` ### 4. Verificar que no existe en Gitea ### 5. Opciones adicionales ``` ¿Repositorio privado? (s/N): Descripción (opcional): ``` ### 6. Resumen y confirmación ``` Resumen: Fuente: https://... Destino: gitea.example.com/... Tipo: importar desde URL remota ¿Importar? (s/N): ``` ### 7. Ejecutar importación ### 8. Mostrar resultado ``` Repositorio importado exitosamente. Workspace: workspaces/nombre Gitea URL: https://... ``` ## Convenciones - Confirmación obligatoria - Rollback automático si falla - Historia Git siempre preservada