Skip to content

fix(runner-policy): admit pr-review-cli's generated-data input - #944

Merged
kyle-sexton merged 2 commits into
mainfrom
fix/runner-policy-generated-data
Nov 3, 2026
Merged

kyle-sexton merged 2 commits into
mainfrom
fix/runner-policy-generated-data

Conversation

@kyle-sexton

Copy link
Copy Markdown
Member

Refs: melodic-software/claude-code-plugins#12558

Summary

Adds generated-data to the reviewed allowedInputs of melodic-software/ci-workflows/.github/workflows/pr-review-cli.yml in components/runner-policy/policy.json.

Fix

melodic-software/ci-workflows#971 (merged) added the opt-in generated-data input. Without this entry, a caller that passes it fails runner-policy with "the reusable workflow call has inputs absent from its reviewed contract: generated-data" (seen on claude-code-plugins#12601). The input names a repository file listing generated data files the review skips. It carries no secret and does not affect runner routing.

Verification

  • node --test components/runner-policy/runner-policy.test.mjs: 226/226 pass.

Related

🤖 Generated with Claude Code

https://claude.ai/code/session_01VcupomBPg7kuobwLoNpxEW

Adds `generated-data` to the reviewed `allowedInputs` of
melodic-software/ci-workflows/.github/workflows/pr-review-cli.yml.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VcupomBPg7kuobwLoNpxEW
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Nov 3, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-11-03T02:28:29.888690Z 8c5b137 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

…erated-data

# Conflicts:
#	components/runner-policy/policy.json
@github-actions

github-actions Bot commented Nov 3, 2026

Copy link
Copy Markdown

claude-review reviewed cee0d3fc8d507e9eaae40e225b99349d8a38435f: 0 finding(s), 0 as inline comments.

No findings.

The PR adds one entry, generated-data, to the reviewed allowedInputs of pr-review-cli.yml in components/runner-policy/policy.json. I read the diff and the surrounding policy block at head.

  • The entry sits beside the matching generated-copies input and keeps the list's existing shape.
  • It is an input name only. No secret, routing, fixedRunsOn or SHA entry changes, so the entry doesn't widen what the policy admits beyond the one input.
  • generated-copies appears in no other file in the repo, so no docs, tests or generated copies need updating to match.
  • The PR closes no issue. It uses Refs: and has the required body sections.
  • I did not run the test suite. The 226/226 pass result in the PR body is author-claimed and unverified.

@github-actions

github-actions Bot commented Nov 3, 2026

Copy link
Copy Markdown

claude-security-review reviewed cee0d3fc8d507e9eaae40e225b99349d8a38435f: 0 finding(s), 0 as inline comments.

Security review: PR #944 (head cee0d3f)

Findings: 0. critical-findings: 0

The PR has one change. It adds "generated-data" to allowedInputs for the pr-review-cli.yml contract in components/runner-policy/policy.json, next to generated-copies.

What I checked:

  • Secrets and permissions: The change adds no secret, no caller permission and no approved SHA. The allowedSecrets block and the fixedRunsOn: ["ubuntu-24.04"] / hosted-only routing are untouched.
  • Public-repo denylist: The only denylisted reusable input is standards-ref (PUBLIC_REPOSITORY_DENYLISTED_REUSABLE_INPUTS, runner-policy.mjs:81). generated-data is not on it, so the visibility-scoped check at runner-policy.mjs:1796 is not triggered.
  • Input type: The existing generated-copies entry has the same shape and sits in the same allowlist, so this is an ordinary allowlist addition, not a new class of input.
  • Who can pass it: The input only lets a caller workflow pass a value. A caller workflow can be changed only by someone who can already change that repository's workflows. The runner-policy audit still checks the caller's other inputs, secrets and permissions.
  • Untrusted-text path: I found no path where the input passes untrusted text into a credentialed lane.

What I could not check: the diff doesn't show what generated-data does in the ci-workflows reusable workflow. If it excludes paths from review, as generated-copies may, whoever sets the value could narrow what the review lane inspects. The allowlist change alone doesn't let that happen, and I found no control in this repository that it weakens. That is a point for the ci-workflows side to settle.

Trust controls: the touched file is the runner-policy contract. It does not widen who is trusted, token scope, the kill switch or any merge hold. Nothing in it is an instruction-surface deletion or a plugin manifest.

Not consulted: docs/contracts/instruction-exception-register/README.md. It isn't relevant to this diff.

@kyle-sexton
kyle-sexton merged commit 17aa99c into main Nov 3, 2026
22 checks passed
@kyle-sexton
kyle-sexton deleted the fix/runner-policy-generated-data branch November 3, 2026 02:33
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