Files
fn_registry/bash/functions/infra/ensure_repo_synced.md
T
egutierrez 424e913566 feat(cpp,bash): app_about + Settings submenu, ensure_repo_synced pipeline
cpp/core: nuevo modulo app_about — ventana About con project/version/desc,
componible via about_window_set_info() en el init de la app y rendererizada
automaticamente por fn::run_app al final de cada frame.

app_menubar: el item top-level "Settings..." pasa a ser un BeginMenu
"Settings" con dos subitems: "Settings..." (existente) y "About..." (nuevo).

bash/infra: nueva pipeline ensure_repo_synced que compone gitea_create_repo
y gitea_push_directory para garantizar repo Gitea existente + sync de un
directorio local en una sola llamada idempotente.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-28 22:05:31 +02:00

2.2 KiB

name, kind, lang, domain, version, purity, signature, description, tags, uses_functions, uses_types, returns, returns_optional, error_type, imports, params, output, tested, tests, test_file_path, file_path
name kind lang domain version purity signature description tags uses_functions uses_types returns returns_optional error_type imports params output tested tests test_file_path file_path
ensure_repo_synced pipeline bash infra 1.0.0 impure ensure_repo_synced(directory: string, owner?: string, repo_name?: string, branch?: string, commit_msg?: string) -> void Garantiza que un directorio tenga repo Gitea y este sincronizado. Crea el repo remoto si no existe, inicializa .git si falta, commitea cambios pendientes y pushea a origin. Idempotente.
gitea
git
sync
repo
pipeline
infra
gitea_create_repo_bash_infra
gitea_push_directory_bash_infra
false error_go_core
name desc
directory ruta del directorio local que se quiere sincronizar
name desc
owner owner Gitea (org o user); default 'dataforge'
name desc
repo_name nombre del repo Gitea; default basename del directorio
name desc
branch rama destino del push; default 'master'
name desc
commit_msg mensaje de commit usado si hay cambios pendientes; default 'chore: sync from fn_registry'
vacio — efectos en Gitea: repo creado (si no existia) y rama push-eada con los contenidos del directorio false
bash/functions/infra/ensure_repo_synced.sh

ensure_repo_synced

Pipeline bash que compone gitea_create_repo + gitea_push_directory para garantizar que un directorio local este sincronizado con un repo Gitea, creando el repo si no existe.

Cuando usarlo

Cuando se quiere sincronizar a Gitea un directorio que podria no tener todavia repo remoto creado, sin tener que comprobarlo manualmente. Idempotente: se puede llamar repetidamente sin romper nada.

Variables de entorno requeridas

  • GITEA_URL — base URL del Gitea (ej. https://gitea.example.com)
  • GITEA_TOKEN — token de API con permisos de creacion de repos y push

Ejemplo

source bash/functions/infra/ensure_repo_synced.sh

# Sincronizar app local a dataforge/<basename>
ensure_repo_synced apps/mi_app

# Sincronizar con owner/repo custom y rama main
ensure_repo_synced apps/mi_app dataforge mi_app main "feat: initial sync"