Skip to content

fix: always run public callers' jobs on GitHub-hosted runners - #93

Merged
nkg merged 3 commits into
mainfrom
fix/public-repos-hosted-runners
Oct 19, 2026
Merged

nkg merged 3 commits into
mainfrom
fix/public-repos-hosted-runners

Conversation

@nkg

@nkg nkg commented Oct 19, 2026 •

Copy link
Copy Markdown
Owner

Summary

  • secret-scan, lint-workflows, dependabot-auto-merge and claude-code-review default runs-on to the self-hosted pool (3.6.0), and their comments said no public repo consumes them. Six public nkg/* repos make ten calls to secret-scan or lint-workflows.
  • Public callers that left runs-on unset queued for 24h and were cancelled on every run. Today that's lint-workflows in nkg/gha-token-server and nkg/distrobuilder-proxmox-lxc-images; before fix(ci): keep the shared reusables on GitHub-hosted runners gha-nomad-dispatcher#32 it was also nkg/gha-nomad-dispatcher. A self-hosted pool would also run fork PRs' code on our own hosts.
  • Each job's runs-on is now fromJSON(github.event.repository.visibility == 'public' && '["ubuntu-latest"]' || inputs.runs-on) (ubuntu-24.04 for the review job). Public repos always get hosted runners, whatever input they pass. Private callers are unchanged.
  • The inaccurate comments are rewritten and there's a CHANGELOG entry under [Unreleased].

Notes

  • If an event's payload has no repository object, the job falls back to the input. Public callers should keep passing a hosted runs-on too.
  • Consumers are on the floating v3 tag, so they only pick this up when it's released and v3 is moved.

Test plan

  • actionlint passes
  • yamllint reports no new warnings (three existing line-length warnings in claude-code-review.yml)
  • Self-test passes on this PR
  • After release: the next lint-workflows run in nkg/gha-token-server starts on a hosted runner

🤖 Generated with Claude Code

https://claude.ai/code/session_01A9MVeJNZcr9jAqT62a71i6

secret-scan, lint-workflows, dependabot-auto-merge and claude-code-review
default runs-on to the self-hosted pool, and their comments said no public
repo consumes them. Nine public nkg/* repos do. The ones that left runs-on
unset, or had no self-hosted runner registered, queued for 24h and were
cancelled on every run, and a self-hosted pool would run fork PRs' code
on our own hosts.

Each job's runs-on now resolves to the hosted label whenever
github.event.repository.visibility is "public", overriding the input.
Private callers are unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01A9MVeJNZcr9jAqT62a71i6
nkg and others added 2 commits October 19, 2026 07:31
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01A9MVeJNZcr9jAqT62a71i6
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01A9MVeJNZcr9jAqT62a71i6
@nkg
nkg merged commit 41318c4 into main Oct 19, 2026
12 checks passed
@nkg
nkg deleted the fix/public-repos-hosted-runners branch October 19, 2026 06:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant