--- name: gitea_init_app kind: pipeline lang: bash domain: pipelines version: "1.0.0" purity: impure signature: "gitea_init_app(directory: string, owner: string, name: string, private: string) -> string" description: "Pipeline que crea un repositorio en Gitea, sube el directorio local y añade a egutierrez como colaborador admin. Compone gitea_create_repo → gitea_push_directory → gitea_add_collaborator." tags: [gitea, git, pipeline, repo, create, push, launcher, infra] uses_functions: - gitea_create_repo_bash_infra - gitea_push_directory_bash_infra - gitea_add_collaborator_bash_infra uses_types: [] returns: [] returns_optional: false error_type: "error_go_core" imports: [] params: - name: directory desc: "ruta al directorio local a subir como repositorio" - name: owner desc: "usuario u organización en Gitea que será propietaria del repo" - name: name desc: "nombre del repositorio (opcional: se infiere del basename del directorio)" - name: private desc: "si el repo debe ser privado, 'true' o 'false' (default: false)" output: "URL del repositorio creado en Gitea" tested: false tests: [] test_file_path: "" file_path: "bash/functions/pipelines/gitea_init_app.sh" --- ## Ejemplo ```bash export GITEA_URL="$(pass agentes/gitea-url)" export GITEA_TOKEN="$(pass agentes/dataforge-token)" # Crear repo con nombre inferido del directorio bash bash/functions/pipelines/gitea_init_app.sh /home/lucas/myapp myorg # Nombre explícito y repo privado bash bash/functions/pipelines/gitea_init_app.sh /home/lucas/myapp myorg my-custom-name true # Con flags bash bash/functions/pipelines/gitea_init_app.sh \ --directory /home/lucas/myapp \ --owner myorg \ --name my-app \ --private true ``` ## Pasos del pipeline 1. `gitea_create_repo owner name private` — crea el repo (idempotente si ya existe) 2. `gitea_push_directory directory owner repo` — inicializa git y hace push del directorio 3. `gitea_add_collaborator owner repo egutierrez admin` — añade colaborador con permisos admin ## Notas - Requiere `GITEA_URL` y `GITEA_TOKEN` seteadas. - Si el repo ya existe (409), el pipeline continúa con el push y añade el colaborador. - El colaborador `egutierrez` es fijo en el pipeline — para variarlo usar las funciones individuales. - La URL del repo se imprime a stdout al finalizar.