Forgejo Actions: localhost-runner is repo-scoped to runner-test — CI dead for every other Mark repo #78

Closed
opened 2026-08-11 05:00:32 +00:00 by Mark · 1 comment
Owner

Root cause found 2026-08-11 while bughunting Mark/kimi_agent_openscad_parametric_gui (CI had 0 completed runs in 15 attempts). The generic localhost-runner registration in the Forgejo action_runner table (id 23) is repo-scoped to Mark/runner-test (repo_id 158), not user-level. The user-level registration (id 15) was replaced ~2026-06-02, so every other Mark repo silently lost CI: kimi_agent 0/15 runs cancelled/waiting, klipper-firmware 0/131, sandboxed-sh unbuilt since May.

Fix pattern (used for kimi + nodedesk): register one repo-scoped runner per repo needing CI, named localhost--runner, with the self-hosted label. Scripts at ~/forgejo-runner-kimi/{register,start}.sh. The Mark API token lacks read:admin, so a user-level registration needs a token minted from the admin UI (/admin/actions/runners).

Root cause found 2026-08-11 while bughunting Mark/kimi_agent_openscad_parametric_gui (CI had 0 completed runs in 15 attempts). The generic `localhost-runner` registration in the Forgejo action_runner table (id 23) is repo-scoped to Mark/runner-test (repo_id 158), not user-level. The user-level registration (id 15) was replaced ~2026-06-02, so every other Mark repo silently lost CI: kimi_agent 0/15 runs cancelled/waiting, klipper-firmware 0/131, sandboxed-sh unbuilt since May. Fix pattern (used for kimi + nodedesk): register one repo-scoped runner per repo needing CI, named localhost-<repo>-runner, with the `self-hosted` label. Scripts at ~/forgejo-runner-kimi/{register,start}.sh. The `Mark` API token lacks read:admin, so a user-level registration needs a token minted from the admin UI (/admin/actions/runners).
Author
Owner

Related fix landed in commit 1ed052c (bughunt on this repo): scripts/forgejo-runner-setup.sh now documents the correct registration-token API verb. The script's help text said curl -X POST .../actions/runners/registration-token but the endpoint is GET (verified against /swagger.v1.json). Anyone following the old docs would get a 405/404 while trying to re-register a repo-scoped runner — exactly the flow this issue describes. No functional change to runner registration itself; this issue remains the tracking item for the repo-scoped-runner CI gap.

Related fix landed in commit 1ed052c (bughunt on this repo): scripts/forgejo-runner-setup.sh now documents the correct registration-token API verb. The script's help text said `curl -X POST .../actions/runners/registration-token` but the endpoint is **GET** (verified against /swagger.v1.json). Anyone following the old docs would get a 405/404 while trying to re-register a repo-scoped runner — exactly the flow this issue describes. No functional change to runner registration itself; this issue remains the tracking item for the repo-scoped-runner CI gap.
Mark 2026-08-14 00:26:22 +00:00
Sign in to join this conversation.
No description provided.