Skip to content

ci(intake): grant intake-triage's caller job actions: read - #13660

Merged
kyle-sexton merged 3 commits into
mainfrom
ci/intake-triage-actions-read
Nov 6, 2026
Merged

kyle-sexton merged 3 commits into
mainfrom
ci/intake-triage-actions-read

Conversation

@kyle-sexton

Copy link
Copy Markdown
Member

Refs: #13586

Summary

Step 2 of the intake-grant expand/contract. standards#950 lets the runner-policy contract list the old and new intake-triage caller maps, and #13630 synced it here. This PR grants the new map's actions: read on the intake-triage caller job, so the ci-workflows reusable can list this repository's credit-stop markers before it spends a key (melodic-software/ci-workflows#996).

Fix

  • .github/workflows/intake-triage.yml: the intake-triage caller job grants actions: read # list this repository's credit-stop markers.

Verification

  • node .github/standards/runner-policy/runner-policy.mjs --root . on this branch after merging main: Runner policy passed.

Related

🤖 Generated with Claude Code

kyle-sexton and others added 2 commits November 5, 2026 23:48
The ci-workflows intake-triage reusable reads this repository's
credit-stop markers before it spends a key, which needs actions: read
(standards#949 contract, accepted alongside the old map by standards#950).

Refs: #13586

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@kyle-sexton
kyle-sexton marked this pull request as ready for review November 6, 2026 05:23
@chatgpt-codex-connector

Copy link
Copy Markdown
Codex Review Summary: ❌ Failed

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

Review Status Commit Review trigger
📝 Code Review ❌ Failed 2026-11-06T05:23:05.295312Z
We couldn’t complete this review. Comment @codex review to try again.
0ceeddf Draft marked ready
ℹ️ 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.

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

kyle-sexton added a commit to melodic-software/standards that referenced this pull request Nov 6, 2026
The claude-code-plugins intake-triage caller now grants actions: read
(melodic-software/claude-code-plugins#13660), so the contract goes back
to one exact map: actions: read, contents: read, issues: write.

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

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Nov 6, 2026 •

Copy link
Copy Markdown
Contributor

claude-review reviewed 7ced3c78a74f6abc37605c38228df681cf34d793: read 1 of 1 changed file(s); 0 finding(s), 0 as inline comments.

Code review: PR #13660 (incremental since 0ceeddf1)

Scope: This review covers only what changed since 0ceeddf1. That is one file, .github/actions/resolve-config/callers.test.mjs, which is on the trusted-path list. I read its whole change and the test around it at head (lines 390–410). This lane had already reviewed an earlier head, so the review was blocking only.

Change: The test intake-triage.yml: each job keeps its own least-privilege permissions now expects the intake-triage caller job's permissions to be { actions: "read", contents: "read", issues: "write" }.

Assessment: No findings.

  • The expected map now matches the workflow change reviewed at the earlier head, which added actions: read to the intake-triage job in .github/workflows/intake-triage.yml.
  • The test still compares every job's whole permission map with deepEqual. Adding, dropping or widening any job's grant still fails the test, so the new grant is pinned exactly and nothing becomes looser.
  • No other job's expected permissions changed.

Closing issue: None. The PR refers to #13586 (Refs:) and closes no issue, so there were no acceptance criteria to check.

Verification: I did not run the test, because this run has no shell. The runner-policy.mjs result in the PR body is the author's claim, and I did not check it.

Prior findings: The only earlier post is this lane's summary at 0ceeddf1, which had 0 findings. There is nothing to carry forward.

@github-actions

github-actions Bot commented Nov 6, 2026 •

Copy link
Copy Markdown
Contributor

claude-security-review reviewed 7ced3c78a74f6abc37605c38228df681cf34d793: read 1 of 1 changed file(s); 0 finding(s), 0 as inline comments.

Security review: no security issues found

Scope: this was an incremental review covering changes since 0ceeddf1, and it reported blocking findings only, because this lane has already reviewed an earlier head. One file is in scope, .github/actions/resolve-config/callers.test.mjs, and I read its single hunk.

The change: the test that checks each intake-triage.yml job keeps its own least-privilege permissions now expects the intake-triage caller job to have { actions: "read", contents: "read", issues: "write" } (callers.test.mjs#L399). The workflow grant this matches, actions: read, was reviewed at the previous head with no findings.

Why this is not a finding:

  • Trusted path, but not the control. The file matches .github/actions/resolve-config/**. The control there is resolve.mjs and its sibling modules and rule files. This file is a test, and the trust-control rules exclude resolve-config's tests. The change does not alter what the broker mints or who it trusts.
  • The test stays strict. It still compares the whole permissions map for each job, so a future widening of that job beyond actions: read would still fail the test.
  • No security effect. The change grants nothing, exposes no secret and adds no path for untrusted text to reach a lane.

PR context: the description (step 2 of the intake-grant expand/contract, refs #13586) matches the change. It contains no embedded instructions to the lane.

Prior findings: the lane's earlier post was a summary with no findings, so nothing carries over.

Spend: none.

critical-findings: 0

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@kyle-sexton
kyle-sexton added this pull request to the merge queue Nov 6, 2026
Merged via the queue into main with commit 0125d67 Nov 6, 2026
49 checks passed
@kyle-sexton
kyle-sexton deleted the ci/intake-triage-actions-read branch November 6, 2026 05:46
kyle-sexton added a commit to melodic-software/standards that referenced this pull request Nov 6, 2026
Refs: melodic-software/claude-code-plugins#13586

## Summary

Contract step of the intake-triage permission expand/contract. #950
listed the old and new caller maps;
melodic-software/claude-code-plugins#13660 moves the only caller to the
new map (`actions: read`). This PR drops the old map, so the contract is
again one exact map.

Draft until melodic-software/claude-code-plugins#13660 merges: its sync
would otherwise reject the caller still on main.

## Fix

- `components/runner-policy/policy.json`: intake-triage's
`allowedCallerPermissions` is the single map `{actions: read, contents:
read, issues: write}`.

## Verification

- `node --test components/runner-policy/runner-policy.test.mjs`: 232
pass, 0 fail.

## Related

- #950, melodic-software/claude-code-plugins#13630,
melodic-software/claude-code-plugins#13660, then
melodic-software/ci-workflows#996.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.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