Un push, tres plataformes
Mantenir un repositori a més d'una plataforma sol ser una tasca feta d'àlies de shell: un remot per host, un bucle que empeny a cadascun, i una nota mental…
Mantenir un repositori a més d'una plataforma sol ser una tasca feta d'àlies de shell: un remot per host, un bucle que empeny a cadascun, i una nota mental sobre quin vigila de debò la CI. torii ho modela.
Primari i rèpliques
torii mirror add gitlab user paskidev gitorii --primary
torii mirror add github user paskidev gitorii
torii mirror add codeberg user paskidev gitorii
torii mirror syncUn d'ells és el primari. No és una etiqueta: decideix amb quina plataforma parlen torii pipeline, torii issue i torii release quan no ho dius tu. Les rèpliques són còpies de la història i res més. torii mirror promote github user intercanvia quin és quin, per al dia que el primari cau o canvies de casa.
Cada remot conserva les seves credencials
Un mirror no replica els teus tokens. Cada host té la seva entrada a auth.toml, els seus permisos i la seva caducitat. Importa més del que sembla: un token que pot empènyer a la teva rèplica no necessàriament pot obrir una pull request al teu primari, i torii et diu quin falta en comptes de fallar amb un 403 sense context.
Què passa quan un rebutja
mirror sync empeny a cada remot per torns. Una rèplica que rebutja —una branca protegida, un token caducat, un host caügut— no desfà els pushes que ja han anat bé. Aquí no hi ha transacció distribuïda, i fingir que n'hi ha seria pitjor: tindries un «ha fallat» que amaga que dos dels teus tres remots ja van al davant.
La sortida anomena cada remot i què li ha passat. Arregla el que ha fallat i torna a llançar-ho; els que han anat bé no fan res la segona vegada.
Autofetch
torii mirror autofetch --enable --interval 30m
torii mirror autofetch --statusPorta del primari en segon pla perquè torii status et digui la veritat sobre quant vas endarrerit sense haver d'anar a preguntar primer.
Quan usar-ho i quan no
Els mirrors són per al mateix repositori vivint a diversos llocs: un projecte lliure que vol presència a Codeberg, una empresa que es muda de plataforma durant sis mesos, un projecte que vol una còpia fora d'una jurisdicció. No substitueixen una còpia de seguretat —tres còpies d'un force-push són tres històries trencades— i no serveixen per repartir feina entre plataformes, perquè hi ha exactament una història i tots els remots se l'emporten sencera.