{{ message }}
Repository navigation
Remove hosted/self-hosted runner restrictions - #74
Merged
Merged
Conversation
There was a problem hiding this comment.
⚠️ Human review recommended
It makes a broad behavioral change by removing runner eligibility gating across parsing/diagnosis/rendering paths, warranting a final human review to confirm no unintended workflow onboarding/pinning regressions.
Pull request overview
Removes the temporary “hosted-only” runner eligibility gate so workflows using any runs-on form (self-hosted labels, custom labels, runner groups, and expressions) can be onboarded and pinned into lockfiles like hosted-runner workflows.
Changes:
- Deletes hosted-runner allowlist logic and org hosted-runner API plumbing, along with associated findings/rendering behavior.
- Retains
--allow-runners/--allow-all-runnersflags as deprecated no-ops for backward compatibility. - Updates integration scenarios and docs to reflect that runner labels no longer block onboarding/pinning.
File summaries
Review details
- Files reviewed: 20/20 changed files
- Comments generated: 0
- Review effort level: Low
Note
Your feedback helps us improve the quality of this feature.
Please use 👍 or 👎 to tell us whether this assessment is correct.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
nodeselector
force-pushed
the
nodeselector-noop-hosted-runner-flags
branch
from
June 29, 2026 22:54
e1adaeb to
cb5511a
Compare
The hosted-only restriction was a temporary gate that is no longer needed. All runner labels (self-hosted, custom, expression, runner groups) are now accepted for lockfile onboarding. The --allow-runners and -A (--allow-all-runners) flags are retained as deprecated no-ops for backward compatibility. They will be removed in the next minor release. Removed: - Self-hosted runner detection in diagnose.go and parse.go - NonHostedRunner/NonHostedLabels fields from ParsedWorkflow - RegisterOrgHostedLabels, IsHostedRunnerLabel, NonHostedRunnerLabels, HasNonHostedRunnerLabels from workflowfile/runson.go - OrgHostedRunnerNames API client (hosted_runners.go) - renderSelfHostedGroup, extractBracketedLabels terminal rendering - SelfHostedRunner/ExpressionRunner from JSON skip filter, unfixable error checks, IsValid/IsWarning/NeedsAttention switch cases - All related tests and scenario expectations updated
nodeselector
force-pushed
the
nodeselector-noop-hosted-runner-flags
branch
from
June 29, 2026 22:56
cb5511a to
1656597
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

The hosted-only runner restriction was a temporary gate during initial rollout. That
gate has been lifted -- all runner labels (self-hosted, custom, expression-based,
runner groups) are now accepted for lockfile onboarding.
Approach
Rather than a phased deprecation, this removes all restriction logic in one pass
since no external consumers depend on the self-hosted skip behavior being present.
Kept as deprecated no-ops (removed in the next minor):
--allow-runnersflag-A/--allow-all-runnersflagRemoved:
RegisterOrgHostedLabels,IsHostedRunnerLabel,NonHostedRunnerLabels,HasNonHostedRunnerLabels)OrgHostedRunnerNames)NonHostedRunner/NonHostedLabelsfields fromParsedWorkflowSelfHostedRunner/ExpressionRunnerfindingsSelfHostedRunnerandExpressionRunnercategory enum valuesrenderSelfHostedGroup,extractBracketedLabels, remediation hints)self-hosted-runnerdefault inactions/lint/action.ymlignore-categoriesrunson.goandrunson_test.go(no remaining consumers)Updated scenarios: six runner-related scenarios now expect successful pinning
instead of skip/error.