diff --git a/plugins/ttg-ops/skills/ttg-publish-module/SKILL.md b/plugins/ttg-ops/skills/ttg-publish-module/SKILL.md index 2351e89..7e7b7b8 100644 --- a/plugins/ttg-ops/skills/ttg-publish-module/SKILL.md +++ b/plugins/ttg-ops/skills/ttg-publish-module/SKILL.md @@ -39,8 +39,22 @@ A Go-nál **nincs csomagtár**: a repo maga a terjesztés, a git tag a verzió. 2. **`allowed_push_host`.** Pontosan egyezzen a `gem push --host` értékével. A forge orgonként külön registryt szolgál ki: `https://git.teletypegames.org/api/packages//rubygems` Ha csak a hosztnév van benne, a push visszautasításra kerül. -3. **Van-e már pipeline.** Nézd meg a repo `.woodpecker.yaml`-ját: lehet, hogy a publikálás már meg van írva és csak sosem futott. Ilyenkor **ne kézzel pusholj** — javítsd a pipeline-t (org-hivatkozások!) és tedd ki a tagot, amire figyel (a `warp_engine`-nél `warp_engine-v*`, nem `v*`). -4. **Ellenőrzés.** `tea api --login ttg "/packages/?limit=20"`. Ha üres marad, a Woodpecker naplója kell: indít-e buildet a tag-esemény, és van-e a CI tokennek `package:write` joga. +3. **A credentials kulcs neve.** A RubyGems **normalizálja** a `~/.gem/credentials` kulcsait — a pontokból `__` lesz, és záró perjelet kap —, ezért egy hoszt-URL alakú kulcs **soha nem egyezik** a `--host` értékével. Ilyenkor a `gem push` bejelentkezni próbál a RubyGems `sign_in` végpontján, amit a Gitea nem ismer, és a hibaüzenet félrevezetően `404 page not found`. Használj **nevesített kulcsot**: + ``` + --- + :gitea: Bearer + ``` + ```sh + gem push --key gitea --host https://git.teletypegames.org/api/packages//rubygems -.gem + ``` + Kétség esetén ellenőrizd: `ruby -e 'require "rubygems/config_file"; p Gem::ConfigFile.new([]).api_keys.keys'`. +4. **Van-e már pipeline.** Nézd meg a repo `.woodpecker.yaml`-ját: lehet, hogy a publikálás már meg van írva és csak sosem futott. Ilyenkor **ne kézzel pusholj** — javítsd a pipeline-t (org-hivatkozások!) és tedd ki a tagot, amire figyel (a `warp_engine`-nél `warp_engine-v*`, nem `v*`). + **Ha a pipeline-t javítod, a tagot is újra kell húzni:** a Woodpecker a tag commitjából olvassa a konfigot, tehát a javítás előtti tagra futtatott újrapróba is a régi configot használná. Kiadatlan verziónál a tag törlése és újratűzése tiszta megoldás. +5. **Ellenőrzés.** `tea api --login ttg "/packages/?limit=20"`, majd valódi fogyasztással: + ```sh + bundle lock # Gemfile: source "" do gem "" end + ``` + A Gitea a **compact indexet** szolgálja ki (`/versions`, `/info/`); a RubyGems.org-féle `/api/v1/versions/.json` nála 404, ez nem hiba. **Korlát:** a `tea api` csak JSON törzset küld, bináris feltöltésre nem alkalmas — kézi `gem push`-hoz nyers token kell, amit a `tea` titkosítva tárol, tehát a felhasználónak kell megadnia.