Repository navigation
Run Dependabot pull requests on GitHub-hosted runners - #783
Conversation
Reviewer's GuideThe PR mechanically extends the existing fork fallback so Dependabot-authored pull requests use Sequence diagram for Dependabot runner placementsequenceDiagram
actor Dependabot
participant GitHubActions
participant RunnerSelection
participant Runner
Dependabot->>GitHubActions: Open pull request
GitHubActions->>RunnerSelection: Evaluate runs-on
alt pull_request.user.login == dependabot[bot]
RunnerSelection->>Runner: Select ubuntu-latest
else fork pull request
RunnerSelection->>Runner: Select ubuntu-latest
else push to main or other workload
RunnerSelection->>Runner: Select ubicloud-standard-2
end
Runner-->>GitHubActions: Execute workflow
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info
Summary
WalkthroughThe CI workflow now selects ChangesHosted runner selection
Priority: ⬇️ Low Change: Feature Merge Risk: ⚪ Minimal · up to
|
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|
The account paying for this security review has reached its Codex usage limits. The payer can check the Codex usage dashboard. For personal accounts, using credits requires enabling “Use credits for security reviews” in Code review settings. If you do not manage the paying account, contact this repository's admins. |
|
@coderabbitai review |
|
04d6851 to
8361012
Compare
|
Rebased onto main only because the squash merge of a branch whose workflow file diverged from main needs the |
GitHub-hosted minutes cost nothing on a public repository, so a pull request authored by dependabot[bot] now falls back to ubuntu-latest like a fork's. The expression tests pull_request.user.login rather than github.actor, which changes when someone re-runs or pushes. A push to main has no pull_request payload and stays on Ubicloud, so main still writes the cache. `runner_placement_policy.py` gains `DEPENDABOT_GUARD` and `HOSTED_GUARD`; `runner_placement_reader.py`'s `RUNNER_EXPRESSION` accepts one parenthesised guard; `ci_runner_placement_test.py` requires the guard to equal `HOSTED_GUARD`. Bespoke contract, so this PR takes the full review gate.
8361012 to
61044ff
Compare
Part of DF12-89
Rollout of the pattern in leynos/typos-config-builder#152 (reviewed and merged): Dependabot pull requests on a public repository run on GitHub-hosted runners, not Ubicloud. User decision of 19 October 2026.
Change
Every Ubicloud
runs-onthat has the fork fallback gains the Dependabot arm, in the pilot's shape:pull_request.user.login(the author), notgithub.actor, which changes on a re-run.mainhave nopull_requestpayload and stay on Ubicloud, so main's caches stay warm.runner_placement_policy.pygainsDEPENDABOT_GUARDandHOSTED_GUARD;runner_placement_reader.py'sRUNNER_EXPRESSIONaccepts one parenthesised guard;ci_runner_placement_test.pyrequires the guard to equalHOSTED_GUARD. Bespoke contract, so this PR takes the full review gate.docs/developers-guide.mdrecords the reason and the cold-cache consequence.Check script row (before)
["wireframe", "pending", "2 ubicloud jobs, 1 lacking the arm"]from~/docs/jm5-dependabot-runners/bin/check.pyonorigin/HEADbefore this change.Gates
make test-workflow-contractsequivalent (pytest tests/workflow_contracts, 253 passed),mdtablefix --checkclean.Mutation proof
ci.yml:user.loginreplaced byactor(all jobs)ci.yml: Dependabot arm removed (first job)tests/workflow_contracts/runner_placement_policy.py:s/HOSTED_GUARD: typ.Final = f"\(\{FORK_GUARD\} || \{DEPENDABOT_GUARD\}\)"/HOSTED_GUARD: typ.Final = f"({FORK_GUARD})"/Merge class
Mechanical rollout of the pilot's shape (same expression, same form of contract change, docs paragraph, mutation proof), per the lead's ruling of 19 October.
Overlapping open PRs
These open PRs touch the same kind of files; per the standing rulings they do not hold this PR and are left untouched:
Summary by Sourcery
Run Dependabot pull requests on GitHub-hosted runners while preserving Ubicloud execution for main-branch pushes.
New Features:
Enhancements:
Tests: