--- name: ttg-move-repo description: Move or rename a repo on the TTG forge and follow the change through everywhere it is referenced — clone list, local remotes, wiki links, Go module paths, Gemfiles, CI config and the docs. Knows what Gitea's redirect covers and what it silently does not. Use when a repo changes org or name ("tedd át a X orgba", "nevezd át", "move repo", "rename repo"). allowed-tools: Bash, Read, Edit, Write, Grep, Glob --- # ttg-move-repo Egy repo áthelyezése vagy átnevezése a forge-on, és — ami a munka nagyobbik fele — az utókövetés. ## Mit fed az átirányítás és mit nem A Gitea az átnevezés/áthelyezés után is kiszolgálja a régi `owner/repo` utat (`repo_redirect`), ugyanarra a SHA-ra. **Ezért túléli:** a meglévő klónok `pull`/`push`-a, a wiki szövegbeli linkjei, a `repos.list` régi URL-jei, a HTTPS böngészőlinkek (301). **Amit nem fed — ezeket kézzel kell:** | Mi | Hol keresd | |---|---| | Go modulnév | `go.mod` első sora + minden belső import + a fogyasztók `require`/`replace` sorai | | Konténer-csomag útvonalak | `git.teletypegames.org/internal/` — a csomagnévtér nem költözik a repóval | | Gem registry névtér | `api/packages//rubygems` a gemspecben és a pipeline-ban | | CI push URL | a mirror/publikáló pipeline `git push` sora | | Woodpecker repo-kötés | az új tulajdonos alatt újra kell regisztrálni | ## Lépések 1. **Cél eldöntése.** Az org a repo *rendeltetését* jelöli, nem a titkosságát (azt a repo `private` kapcsolója). A besorolási szabályok és a mai kiosztás a workspace gyökér `REPO_REFACT.md`-jében. Ha a besorolás nem egyértelmű, kérdezz, ne tippelj. 2. **Áthelyezés.** ```sh tea api --login ttg -X POST -d '{"new_owner":""}' /repos///transfer ``` Átnevezéshez `-X PATCH -d '{"name":"<új-név>"}' /repos//`. Ha a cél org még nincs: `tea api --login ttg -X POST -d '{"username":"","visibility":"public"}' /orgs` — és **utána add meg neki a nevet és a `Teletypers` csapatot** a `games` mintájára (lásd `ttg-new-repo`). 3. **Átirányítás ellenőrzése**, mielőtt bármi másba kezdesz: ```sh git ls-remote ssh://git@git.teletypegames.org:2222// HEAD git ls-remote ssh://git@git.teletypegames.org:2222/<új>/ HEAD ``` Azonos SHA = működik. 4. **`devarea/scripts/repos.list`** — írd át az érintett sor URL-jét, majd `devarea/scripts/check-repos.sh`. A szkript org-agnosztikus (`tea repo list`-ből olvas `owner/name`-et), nem kell hozzányúlni. Zöld futás = a lista és a szerver fedik egymást. 5. **Lokális remote-ok.** A workspace-checkoutok `origin`-ja a régi URL-en marad. Állítsd át `git remote set-url origin <új URL>`. Söpörd végig a többi repót is elfekvő remote-ért (`git remote` ≠ csak `origin`, vagy az upstream nem `origin/...`) — volt már régi hosztra mutató alias, amire egy sima `git push` ment volna. 6. **Hivatkozások.** Keress a `wiki-pages` és a `teletypegames` repóban, meg a workspace többi részében: ```sh grep -rn "/" --exclude-dir=.git ``` Ne feledd a **linkszövegeket** sem (`` `internal/wiki-pages` ``), ne csak az URL-eket. Óvatosan az általános szabályokkal: a `bbs/session.rb` alakú backtickes hivatkozások forrásfájlok, nem org-utak. 7. **Dokumentáció.** Futtasd a `ttg-update-docs` skillt — az intézi a README-t, a wikit és a publikus oldalt. A `devarea/WIKI_CONNECTION.md` `Org` oszlopát is frissíteni kell. 8. **Ellenőrzés.** Az átírt URL-eket kérd le élesben (HTTP HEAD). A 404 nem mindig hiba: privát repo névtelenül 404, és a placeholder URL-ek (`games/example`) szándékosak. ## Ha org szűnne meg Mielőtt kiürült orgot törölnél, **nézd meg a csomagjait**: ```sh tea api --login ttg "/packages/?limit=50" ``` Az `internal` org nulla repóval is él, mert nyolc builder image-et tart — a törlése minden buildet megölne.