Skip to content

security(ci): restrict trusted mbx runs to jdx - #1254

Merged
jdx merged 1 commit into
mainfrom
security/restrict-mbx-trust-to-jdx
Aug 26, 2026
Merged

jdx merged 1 commit into
mainfrom
security/restrict-mbx-trust-to-jdx

Conversation

@jdx

@jdx jdx commented Aug 26, 2026 •

Copy link
Copy Markdown
Owner

Summary

  • reserve Namespace runners and the server cache for same-repository PRs authored by jdx
  • route every other PR author, including dependency bots, through GitHub-hosted runners and GitHub cache
  • keep trusted-only repository secrets unavailable to non-jdx PRs

Validation

  • git diff --check
  • actionlint workflow and expression validation
  • confirmed no dependency-bot-specific trust predicates remain

AI-assisted β€” Tool: Codex; model: OpenAI/GPT-5; version: unavailable.

Summary by CodeRabbit

  • Chores
    • Updated pull request validation to use more appropriate execution environments based on the source and author of each change.
    • Improved handling of contributions from forks and external contributors.
    • Standardized runner selection across build, compatibility, and final verification workflows.
    • Maintained specialized execution for qualifying repository-authored pull requests.

@coderabbitai

coderabbitai Bot commented Aug 26, 2026 •

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. πŸŽ‰

ℹ️ Recent review info
βš™οΈ Run configuration

Configuration used: Repository YAML (base), Central YAML (inherited), Organization UI (inherited)

Review profile: CHILL

Plan: Pro Plus

Run ID: 90dfd0a3-52c9-4dd7-a8fa-10dec6b7855d

πŸ“₯ Commits

Reviewing files that changed from the base of the PR and between 4754432 and f148d06.

πŸ“’ Files selected for processing (2)
  • .github/actions/mbx/action.yml
  • .github/workflows/ci.yml

Included review availability: Your plan provides up to 4 included reviews per hour; 2 remain after this review.


πŸ“ Walkthrough

Walkthrough

Pull request backend and CI runner selection now uses repository origin and author identity. Pull requests authored by jdx use trusted or namespace infrastructure. Other pull requests use GitHub cache or GitHub-hosted runners.

Changes

Pull request routing policy

Layer / File(s) Summary
Backend and CI routing conditions
.github/actions/mbx/action.yml, .github/workflows/ci.yml
The backend uses the GitHub cache for forked or non-jdx pull requests. The build, ci-libgit2, ci-nolibgit2, ci-other, msrv, and final jobs use GitHub-hosted runners for non-jdx pull requests and namespace runners for jdx pull requests.

Estimated code review effort: 2 (Simple) | ~10 minutes

Merge Risk: βšͺ Minimal Β· up to f148d

The change limits trusted runners, cache, and secrets to same-repository pull requests authored by jdx while routing other authors through GitHub-hosted infrastructure; no actionable merge-blocking risk remains after normal checks and review.

Poem

A rabbit checks the runner lane

jdx hops through namespace rain
Other pulls use GitHub’s track
The cache keeps the backend back
CI bounds forward, neat and plain

πŸš₯ Pre-merge checks | βœ… 5
βœ… Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage βœ… Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
Linked Issues check βœ… Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check βœ… Passed Check skipped because no linked issues were found for this pull request.
Description Check βœ… Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check βœ… Passed The title clearly and concisely describes the CI security change that restricts trusted mbx runs to the jdx user.
Full details: Docstring Coverage

Explanation

No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0 files. (2 skipped: 2 unsupported.)


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❀️ Share

Comment @coderabbitai help to get the list of available commands.

@jdx
jdx enabled auto-merge (squash) August 26, 2026 00:10
@greptile-apps

greptile-apps Bot commented Aug 26, 2026

Copy link
Copy Markdown

Greptile Summary

This PR restricts trusted CI resources to same-repository pull requests opened by jdx.

  • Routes all other pull requests to GitHub-hosted runners.
  • Routes all other pull requests to the GitHub cache backend instead of the trusted mbx server.
  • Applies the same predicate consistently across the affected CI jobs and composite action.

Confidence Score: 5/5

The PR appears safe to merge, with the runner and cache trust restrictions applied consistently.

The changed conditions preserve fork isolation and narrow privileged runner and cache-server access from most same-repository pull requests to those opened by jdx, without introducing a concrete reachable failure.

Important Files Changed

Filename Overview
.github/actions/mbx/action.yml Restricts the trusted mbx server backend to non-PR runs and same-repository PRs opened by jdx; no actionable defect found.
.github/workflows/ci.yml Consistently restricts Namespace runner selection across affected jobs using the same repository-and-author predicate; no actionable defect found.

Reviews (1): Last reviewed commit: "security(ci): restrict trusted mbx runs ..." | Re-trigger Greptile

@jdx
jdx merged commit 1386c4d into main Aug 26, 2026
21 of 22 checks passed
@jdx
jdx deleted the security/restrict-mbx-trust-to-jdx branch August 26, 2026 00:44
jdx added a commit that referenced this pull request Aug 30, 2026
### πŸš€ Features

- **(builtins)** add go_fix linter by
[@sahidvelji](https://github.com/sahidvelji) in
[#1224](#1224)
- **(builtins)** add ls_lint linter by
[@sahidvelji](https://github.com/sahidvelji) in
[#1238](#1238)
- **(builtins)** add golangci_lint_fmt formatter by
[@sahidvelji](https://github.com/sahidvelji) in
[#1244](#1244)
- **(builtins)** add shellcheck fix via check_diff by
[@sahidvelji](https://github.com/sahidvelji) in
[#1237](#1237)
- **(pkl)** embed the matching-version pkl package by
[@sahidvelji](https://github.com/sahidvelji) in
[#1218](#1218)
- **(step)** render `dir` through tera by
[@sahidvelji](https://github.com/sahidvelji) in
[#1219](#1219)
- **(step)** recheck applied diffs by [@jdx](https://github.com/jdx) in
[#1243](#1243)
- **(step)** allow configured command failures by
[@jdx](https://github.com/jdx) in
[#1291](#1291)

### πŸ› Bug Fixes

- **(builtins)** repair Go linters that report success on bad code by
[@sahidvelji](https://github.com/sahidvelji) in
[#1225](#1225)
- **(builtins)** broaden gomod_tidy glob to run tidy on .go changes by
[@sahidvelji](https://github.com/sahidvelji) in
[#1236](#1236)
- **(builtins)** stage gomod_tidy manifest updates by
[@jdx](https://github.com/jdx) in
[#1240](#1240)
- **(builtins)** recheck partial diff fixes by
[@jdx](https://github.com/jdx) in
[#1245](#1245)
- **(builtins)** correct gitleaks scan modes by
[@jdx](https://github.com/jdx) in
[#1248](#1248)
- **(stash)** skip empty pathspec stashes by
[@jdx](https://github.com/jdx) in
[#1283](#1283)
- **(step)** resolve Windows command shims by
[@jdx](https://github.com/jdx) in
[#1221](#1221)
- **(step)** relativize workspace paths to step directory by
[@jdx](https://github.com/jdx) in
[#1242](#1242)

### πŸ“š Documentation

- clarify subproject monorepo setup by [@jdx](https://github.com/jdx) in
[#1239](#1239)
- improve onboarding and navigation by [@jdx](https://github.com/jdx) in
[#1247](#1247)
- disable code ligatures by [@jdx](https://github.com/jdx) in
[#1264](#1264)
- publish llms.txt index by [@jdx](https://github.com/jdx) in
[#1272](#1272)

### πŸ›‘οΈ Security

- add sponsor logos to readme by [@jdx](https://github.com/jdx) in
[#1250](#1250)

### πŸ” Other Changes

- **(ci)** adopt mbx for Rust builds by [@jdx](https://github.com/jdx)
in [#1229](#1229)
- **(ci)** restrict trusted mbx runs to jdx by
[@jdx](https://github.com/jdx) in
[#1254](#1254)
- **(ci)** isolate mbx OIDC permissions by
[@jdx](https://github.com/jdx) in
[#1258](#1258)
- **(ci)** compare mbx with rust-cache by [@jdx](https://github.com/jdx)
in [#1267](#1267)
- **(ci)** adopt mbx 0.5.4 by [@jdx](https://github.com/jdx) in
[#1279](#1279)
- **(ci)** pin mr-boxington-action v1.0.1 by
[@jdx](https://github.com/jdx) in
[#1280](#1280)
- **(ci)** use default Rust for cache benchmark by
[@jdx](https://github.com/jdx) in
[#1284](#1284)
- **(ci)** bump mr-boxington action by [@jdx](https://github.com/jdx) in
[#1282](#1282)
- **(ci)** use server cache for dispatched benchmarks by
[@jdx](https://github.com/jdx) in
[#1285](#1285)
- **(ci)** adopt mbx 0.7.0 by [@jdx](https://github.com/jdx) in
[#1286](#1286)
- **(sponsors)** replace 37signals with omacom foundation by
[@jdx](https://github.com/jdx) in
[#1249](#1249)
- generate release notes before publishing by
[@jdx](https://github.com/jdx) in
[#1227](#1227)
- automate generated cli versions by [@jdx](https://github.com/jdx) in
[#1252](#1252)
- seed mbx cache for fork PRs by [@jdx](https://github.com/jdx) in
[#1262](#1262)
- notarize the macOS release binary by [@jdx](https://github.com/jdx) in
[#1266](#1266)
- benchmark mbx against rust-cache on Linux by
[@jdx](https://github.com/jdx) in
[#1275](#1275)
- remove pinned rust toolchain by [@jdx](https://github.com/jdx) in
[#1235](#1235)
- back mbx with the GitHub Actions cache alone by
[@jdx](https://github.com/jdx) in
[#1287](#1287)

### πŸ“¦οΈ Dependency Updates

- update rust crate pklr to v1.5.0 by
[@renovate[bot]](https://github.com/renovate[bot]) in
[#1222](#1222)
- lock file maintenance by
[@renovate[bot]](https://github.com/renovate[bot]) in
[#1226](#1226)
- bump usage to 6.4.0 by [@jdx](https://github.com/jdx) in
[#1228](#1228)
- update anthropics/claude-code-action action to v1.0.194 by
[@renovate[bot]](https://github.com/renovate[bot]) in
[#1230](#1230)
- update jdx/mise-action action to v4.2.5 by
[@renovate[bot]](https://github.com/renovate[bot]) in
[#1231](#1231)
- update rust crate demand to v2.1.0 by
[@renovate[bot]](https://github.com/renovate[bot]) in
[#1241](#1241)
- update anthropics/claude-code-action action to v1.0.195 by
[@renovate[bot]](https://github.com/renovate[bot]) in
[#1251](#1251)
- update rust crate pklr to v1.5.1 by
[@renovate[bot]](https://github.com/renovate[bot]) in
[#1260](#1260)
- bump usage to 6.4.1 by [@jdx](https://github.com/jdx) in
[#1273](#1273)
- bump tak and mbx by [@jdx](https://github.com/jdx) in
[#1274](#1274)
- remove rust toolchain pins by [@jdx](https://github.com/jdx) in
[#1276](#1276)

### New Contributors

- @sahidvelji made their first contribution in
[#1237](#1237)

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> **Low Risk**
> Mechanical version and documentation URL updates with no runtime code
changes in the diff.
> 
> **Overview**
> **Cuts release v1.57.0** by bumping the `hk` crate and CLI metadata
from **1.56.1** to **1.57.0** (`Cargo.toml`, `Cargo.lock`,
`hk.usage.kdl`, generated CLI docs).
> 
> Adds the **[1.57.0] CHANGELOG** entry (features, fixes, CI/release
work, and dependency updates since 1.56.1) and updates every **Pkl
`amends` / `import` package URL** in README, docs, examples, and
`hk-example.pkl` to point at the new GitHub release artifacts.
> 
> No application logic changes in this diff; it packages already-merged
work. Notable themes called out in the new changelog include new
builtins (`go_fix`, `ls_lint`, `golangci_lint_fmt`, shellcheck fix),
step-engine improvements (Tera `dir`, diff recheck, optional command
failures), embedded matching-version Pkl, and assorted
builtin/stash/Windows path fixes.
> 
> <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit
57fec76. Bugbot is set up for automated
code reviews on this repo. Configure
[here](https://www.cursor.com/dashboard/bugbot).</sup>
<!-- /CURSOR_SUMMARY -->

Co-authored-by: mise-en-dev <123107610+mise-en-dev@users.noreply.github.com>
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