Docs

Plataformas y mirrors

torii habla con nueve hosts a través de siete clientes. La plataforma se detecta desde la URL del remoto, y se usa el cliente correcto sin que tú lo nombres.

working tree one .git, one history torii mirror sync gitlab primary · CI runs here github replica · own token codeberg replica · own token one push · one set of refs · a replica that rejects does not roll back the others

Los hosts

ClienteHostsNotas
githubGitHubbase de API configurable, para Enterprise
gitlabGitLabincluido el autoalojado
giteaGitea, Codeberg, Forgejoun cliente, API idéntica
bitbucketBitbucket Cloudun token con : se trata como user:app_password
sourcehutSourcehutincidencias y builds; las PR son flujo de parches por correo
radicleRadicleenvuelve el binario rad; incidencias y patches
azureAzure DevOpsrutas de tres niveles org/proyecto/repo

No todos los hosts exponen todos los conceptos. Bitbucket Cloud no tiene objeto de release ni registro de paquetes; Radicle no tiene CI. Esos subcomandos devuelven un error explícito de «no es nativo en esta plataforma» en vez de fingir que funcionan.

Mirrors

Un árbol de trabajo, varios remotos, un comando:

torii mirror add gitlab user <username> <repo> --primary
torii mirror add github user <username> <repo>
torii mirror add codeberg user <username> <repo>
torii mirror sync
torii mirror list
torii mirror promote gitlab user
torii mirror autofetch --enable --interval 30m

El primario es donde corre la CI y donde lees las incidencias; las réplicas son copias. Cada una lleva su propio token, y una réplica que rechace un push no deshace las que salieron bien.

Crear repositorios

torii remote create github <repo> --private --description "…"
torii remote create github,gitlab,codeberg <name> --public --push
torii remote visibility github <owner> <repo> --public
torii remote configure github <owner> <repo> --default-branch main
torii remote info github <owner> <repo>

Las plataformas separadas por comas crean el repositorio en cada una con una sola invocación. visibility cubre hoy GitHub y GitLab.

Elegir con qué remoto habla un comando

En un repositorio replicado, cada backend tiene sus pipelines, sus paquetes y sus releases. --remote elige uno:

torii pipeline list --remote github-paskidev
torii release edit v0.13.0 --notes new.md --remote github-paskidev

La opción es global dentro del comando, así que torii pipeline --remote NAME list y torii pipeline list --remote NAME son lo mismo. Sin ella, la plataforma se detecta desde origin.

Autoalojado

~/.config/torii/platforms.toml declara tus propios hosts —GitLab, Gitea, Forgejo, GitHub Enterprise o Bitbucket Data Center autoalojados— para que la detección por URL los envíe al cliente correcto en vez de no reconocer el dominio.