Conversation
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configurationConfiguration used: Repository: luvs01/opencodex/.coderabbit.yaml Review profile: ASSERTIVE Plan: Advanced Run ID: 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. Comment |
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. |
|
✅ Deterministic PR hygiene checks passed. |
There was a problem hiding this comment.
…runners repository_dispatch carries a free-form client_payload, so the required version fields and hook names had no shape enforcement after the workflow_dispatch inputs were removed. Add a hosted-runner validate job that mirrors parseGateArguments (strict semver, plain hook file names) and make every privileged self-hosted job wait on it, so malformed events fail fast instead of occupying gate runners or consuming a maintainer approval. Also restore the dispatch contract in the workflow test: the payload-key assertion now requires the exact accepted key set (detecting dropped required keys and incidental references), and a new test asserts the validate job runs on a hosted runner outside the gated environment and that every gate job needs it. Co-Authored-By: Epinephrine <luvs01@hanmail.net>
|
Fixed in 5b89c7d. The payload-key assertion now requires the exact accepted key set ( |
|
Fixed in 5b89c7d. Added a |
|
Not applicable for this repository: the default branch is |
Motivation
workflow_dispatchtrigger allowed a caller to select a branch whose workflow YAML would run on persistent self-hosted runners, enabling a collaborator-controlled workflow to execute arbitrary steps on privileged hosts.sudo dpkg -ion Linux), so the workflow must be loaded from an immutable/default ref rather than an attacker-controlled branch.devcheckout as the enforcement surface the repo controls.Description
workflow_dispatchtrigger with a typedrepository_dispatchevent (types: [desktop-installed-gate]) so GitHub loads the workflow from the repository default branch.inputs-based references togithub.event.client_payload(release/version/hook names) and adjusted the concurrency group to usegithub.event.client_payload.versionso payload-driven behavior remains available but is loaded from the default ref.environment,actions/checkoutpinnedref: dev, platform matrix, and hook-name boundary intact so the gate logic and protections remain the same at runtime.tests/ci-workflows/installed-gate-drivers.test.tsto assert the newrepository_dispatchtrigger and to extract the event payload keys fromclient_payloadusage in the workflow file.Testing
mise exec bun@latest -- bun test tests/ci-workflows/installed-gate-drivers.test.ts, which passed (49 passed).mise exec bun@latest -- bun run privacy:scan, which passed.mise exec bun@latest -- bun run prepush; typecheck and GUI lint passed but the full-suite phase encountered unrelated environment-local proxy HTTP 403s (external environment routing) and was stopped after confirming the recurring environmental failures, so unrelated full-suite failures are not attributed to this change.Codex Task