Skip to content

ci: adopt the public-repository runner posture - #202

Closed
kyle-sexton wants to merge 1 commit into
mainfrom
fix/runner-policy-public-visibility
Closed

ci: adopt the public-repository runner posture#202
kyle-sexton wants to merge 1 commit into
mainfrom
fix/runner-policy-public-visibility

Conversation

@kyle-sexton

Copy link
Copy Markdown
Contributor

Summary

The repository is now public. The runner-policy component forbids the local-runner selector on public repositories, so the Runner policy check now fails on every PR (repository visibility evidence is public, but .github/runner-policy.json declares private), blocking #196 and everything after it.

  • .github/runner-policy.json: visibility: public, selfHostedCi: false (schema-forced pair); remove the publish-packages.yml#publish publication exception — it is unconsumed once routing is disabled and trips exception-inventory-drift
  • All selector-consuming workflows (ci, claude-review, do-not-merge, link-check, pr-issue-linkage, pr-title, sync): remove the select-runner jobs and route every lane to GitHub-hosted ubuntu-24.04 (free on public repositories); reviewed reusables keep an explicit runner: input per the policy's runner-target contract
  • Drop now-dead selector guard conditions and prerequisite plumbing

Verified locally: npm run lint:runner-policy (with CI_REPOSITORY_VISIBILITY=public), npm run test:runner-policy, and actionlint all pass.

Security posture: fork PRs can no longer reach self-hosted workers by construction (no selector in any workflow); org fork-PR approval policy is all_external_contributors.

No linked issue

Related

🤖 Generated with Claude Code

The repository went public, and the runner policy component forbids the
local-runner selector on public repositories (fork-PR exposure: workflow
code from forks must never route to self-hosted workers). Declare
visibility public with selfHostedCi false in .github/runner-policy.json,
drop the now-unused publication exception (unconsumed once routing is
disabled), remove every select-runner call, and pin all lanes to
GitHub-hosted ubuntu-24.04 (free on public repositories).

Co-authored-by: Claude Fable 5 (1M context) <noreply@anthropic.com>
@kyle-sexton

Copy link
Copy Markdown
Contributor Author

Closing as already-landed: standards adopted the public hosted-runner posture in #200 (merged c1f8c34, includes all seven workflows + declaration) with the standards-sync contract follow-up in #201 (merged). Main already carries everything this PR proposes — a re-apply would conflict. If anything here is NOT in main (spotted a gap), please reopen scoped to just the delta.

@kyle-sexton
kyle-sexton deleted the fix/runner-policy-public-visibility branch July 18, 2026 20:53
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