Forgejo Actions: localhost-runner is repo-scoped to runner-test — CI dead for every other Mark repo #78
Labels
No labels
blocked:gate-research
blocked:needs-decision
blocked:needs-human
blocked:no-changes
bug
documentation
enhancement
feature-request
in-progress
quickfix
research
triage-approved
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Mark/infrastructure#78
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
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-runnerregistration 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-hostedlabel. Scripts at ~/forgejo-runner-kimi/{register,start}.sh. TheMarkAPI token lacks read:admin, so a user-level registration needs a token minted from the admin UI (/admin/actions/runners).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 saidcurl -X POST .../actions/runners/registration-tokenbut 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.