Repository navigation
feat(run-claude-cli): write the structured output to a scanned file - #861
Conversation
A lane that passes json-schema-file had to read structured_output from execution-file, which is never scanned for credentials. The action now writes the final result's structured_output to structured-output-file, only on a successful leg with json-schema-file set and only after the same holdsCredential scan the log gets; a hit leaves the output empty and fails the step. No CLI flag changes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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. |
|
Claude finished @kyle-sexton's task in 3m 58s —— View job Claude's code review
Scope: this repo runs a dedicated security lane ( Findings: none. I traced the new
I couldn't execute claude-lane-summary: lane=claude-review sha=f2028f810fe571085ba1152dcf589e2d00b438ea run=39889263889 |
|
Claude finished @kyle-sexton's task in 1m 32s —— View job Security review: no findingsReviewed the full diff ( What changed: Checked for:
No logic flaws, authorization gaps, injection surfaces, or unsafe credential handling found. GitHub Actions hardening concerns (triggers, permissions, pin integrity) are out of scope for this lane and deferred to zizmor, which this PR's author notes ran clean. claude-lane-summary: lane=claude-security-review sha=f2028f810fe571085ba1152dcf589e2d00b438ea run=39889263889 |
|
claude-security-review has reviewed this pull request through f2028f8; a later push is reviewed from there. |
|
claude-review has reviewed this pull request through f2028f8; a later push is reviewed from there. |
No related issue: first step of moving the Claude review lanes onto the run-claude-cli launcher; the new reusable review workflow reads this output.
Summary
A lane that passes
json-schema-fileto run-claude-cli can today get the model'sstructured_outputonly fromexecution-file, which the action documents as never scanned for credentials. A downstream job that publishes findings needs the structured output from a scanned source.Fix
lane.cjsrunwrites the final result'sstructured_outputtostructured-output.jsonin the work directory and sets the newstructured-output-fileoutput, but only whenjson-schema-fileis set,lane-classis empty, the result carries an object, andholdsCredential(the same scan the log gets) finds nothing.the structured output held a credential and was not written, after the outputs and the log are written.action.ymldeclares the output and pointsjson-schema-fileat it; the README run-claude-cli section says to read the structured output from that file, never fromexecution-file.--permission-prompts noneand every other argument are untouched.Verification
node --test .github/actions/run-claude-cli/*.test.cjs: 72 pass, 0 fail. Three new cases: a successful leg writes exactly the fixture's object; no schema, a max-turns leg, and a non-object each leave the output empty and write no file; the credential value and a key-shaped string each leave it empty and fail the step while the log is still written.structured-output-file=, so nothing a leftover leg process writes lands after it.lane-outcome-emittersandintake-triage-legstests: 27 pass. actionlint, zizmor, markdownlint, typos and gitleaks: clean.Related
🤖 Generated with Claude Code