The marketplace held only MCP servers so far. These are skills for the work that keeps costing manual effort and quietly breaking: - ttg-publish-module — releasing a library, and verifying from a clean external project that the release is actually fetchable. Encodes the trap that cost the most: Gitea redirects old repo paths, but not Go module paths, so a repo can be reachable while `go get` fails. - ttg-move-repo — moving a repo and following it through every place that names it, including the ones redirects do not cover. - ttg-new-repo — creating one in the right org and registering it, so it cannot end up absent from the clone list the way batocera-store did. - ttg-ci-enroll — wiring a repo into the build, and the usual failure where the config exists but the repo was never registered. - ttg-audit-forge — the drift check between forge, clone list, wiki, catalog and CI. - ttg-update-docs — README, wiki page and the public site (Vue page plus both locale files) after a change. The rules stay in REPO_REFACT.md, WIKI_CONNECTION.md and ECOSYSTEM_PLAN.md; the skills read them instead of carrying a second copy that drifts. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
64 lines
3.9 KiB
Markdown
64 lines
3.9 KiB
Markdown
---
|
|
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/<név>` — a csomagnévtér nem költözik a repóval |
|
|
| Gem registry névtér | `api/packages/<org>/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":"<org>"}' /repos/<owner>/<repo>/transfer
|
|
```
|
|
Átnevezéshez `-X PATCH -d '{"name":"<új-név>"}' /repos/<owner>/<repo>`.
|
|
Ha a cél org még nincs: `tea api --login ttg -X POST -d '{"username":"<org>","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/<régi>/<repo> HEAD
|
|
git ls-remote ssh://git@git.teletypegames.org:2222/<új>/<repo> 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 "<régi-org>/<repo>" --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/<org>?limit=50"
|
|
```
|
|
Az `internal` org nulla repóval is él, mert nyolc builder image-et tart — a törlése minden buildet megölne.
|