-
Notifications
You must be signed in to change notification settings - Fork 1
NAS-142201 / 27.0.0-BETA.1 / Tune the review allowlist on the first round of denial evidence #8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -77,6 +77,14 @@ | |||||||||||||||||||||||||||||||||
| description: 'Checkout depth. Needs to cover the PR range for the diff.' | ||||||||||||||||||||||||||||||||||
| type: number | ||||||||||||||||||||||||||||||||||
| default: 10 | ||||||||||||||||||||||||||||||||||
| extra-allowed-tools: | ||||||||||||||||||||||||||||||||||
| description: >- | ||||||||||||||||||||||||||||||||||
| Comma-separated permission rules appended to --allowedTools, for | ||||||||||||||||||||||||||||||||||
| repo-specific needs like `Bash(go vet:*)`. Anything that executes | ||||||||||||||||||||||||||||||||||
| repo code (make, go generate, package scripts) runs PR-controlled | ||||||||||||||||||||||||||||||||||
| code next to this job's write token — allow that knowingly. | ||||||||||||||||||||||||||||||||||
| type: string | ||||||||||||||||||||||||||||||||||
| default: '' | ||||||||||||||||||||||||||||||||||
| tooling-ref: | ||||||||||||||||||||||||||||||||||
| description: >- | ||||||||||||||||||||||||||||||||||
| Ref of this repository to take the schema, rubric and scripts from. | ||||||||||||||||||||||||||||||||||
|
|
@@ -305,13 +313,17 @@ | |||||||||||||||||||||||||||||||||
| # nothing itself, hence gh and the inline-comment tool below. | ||||||||||||||||||||||||||||||||||
| # | ||||||||||||||||||||||||||||||||||
| # allowedTools is the auto-approve list, not the whole toolbox — | ||||||||||||||||||||||||||||||||||
| # Read/Grep/Glob need no approval. Listed: posting, the PR diff, and | ||||||||||||||||||||||||||||||||||
| # read-only git history. Nothing broader (`gh api`, arbitrary Bash): | ||||||||||||||||||||||||||||||||||
| # those can write or exfiltrate with this job's token. | ||||||||||||||||||||||||||||||||||
| # Read/Grep/Glob and provably read-only Bash (grep, sed -n, ls) need | ||||||||||||||||||||||||||||||||||
| # no approval. Listed: posting, PR reads (diff/view/checks), and | ||||||||||||||||||||||||||||||||||
| # read-only git history. No Write rule: the sandbox refuses workspace | ||||||||||||||||||||||||||||||||||
| # writes at a layer below --allowedTools (verified in-run on PR #8), | ||||||||||||||||||||||||||||||||||
|
Check notice on line 319 in .github/workflows/claude-review.yml
|
||||||||||||||||||||||||||||||||||
| # so a grant here is a promise that layer breaks. Nothing broader | ||||||||||||||||||||||||||||||||||
| # (`gh api`, arbitrary Bash): those can write or exfiltrate with this | ||||||||||||||||||||||||||||||||||
| # job's token. | ||||||||||||||||||||||||||||||||||
|
Comment on lines
+318
to
+322
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. LOW — the withdrawal is right; the recorded reason for it is not what the run shows, and this comment is what stops anyone re-testing it. Both probes, re-run under this ref:
What #8 established is that Nothing misbehaves today: no rule, no writes, stdin works. The cost is only that "so a grant here is a promise that layer breaks" reads as settled, so the next person does not try
Suggested change
|
||||||||||||||||||||||||||||||||||
| claude_args: | | ||||||||||||||||||||||||||||||||||
| --model ${{ inputs.model }} | ||||||||||||||||||||||||||||||||||
| --json-schema '${{ steps.schema.outputs.json }}' | ||||||||||||||||||||||||||||||||||
| --allowedTools "mcp__github_inline_comment__create_inline_comment,Bash(gh pr comment:*),Bash(gh pr diff:*),Bash(gh pr view:*),Bash(git log:*),Bash(git blame:*),Bash(git show:*),Bash(git diff:*)" | ||||||||||||||||||||||||||||||||||
| --allowedTools "mcp__github_inline_comment__create_inline_comment,Bash(gh pr comment:*),Bash(gh pr diff:*),Bash(gh pr view:*),Bash(gh pr checks:*),Bash(git log:*),Bash(git blame:*),Bash(git show:*),Bash(git diff:*)${{ inputs.extra-allowed-tools != '' && format(',{0}', inputs.extra-allowed-tools) || '' }}" | ||||||||||||||||||||||||||||||||||
| # No use_sticky_comment either — it only applies to tag mode. | ||||||||||||||||||||||||||||||||||
| prompt: | | ||||||||||||||||||||||||||||||||||
| REPO: ${{ github.repository }} | ||||||||||||||||||||||||||||||||||
|
|
@@ -320,6 +332,14 @@ | |||||||||||||||||||||||||||||||||
| Please review this pull request using the guidelines below. | ||||||||||||||||||||||||||||||||||
| It should be already checked out in the current directory. | ||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||
| The authoritative change set is `gh pr diff` — the checkout's | ||||||||||||||||||||||||||||||||||
| `HEAD~1` is only the newest commit, not the PR range, and a review | ||||||||||||||||||||||||||||||||||
| of it silently misses every earlier commit in the PR. | ||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||
| CI results are `gh pr checks <number>` — never `--watch`, which | ||||||||||||||||||||||||||||||||||
|
Check notice on line 339 in .github/workflows/claude-review.yml
|
||||||||||||||||||||||||||||||||||
| waits on every check while this review is itself one of them, and | ||||||||||||||||||||||||||||||||||
| so deadlocks until the job timeout. | ||||||||||||||||||||||||||||||||||
|
Comment on lines
+339
to
+341
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. LOW — this paragraph does not do the job it was added for, and points the reviewer at output it has no rule for reading. Per the commit message, The other side of naming it with no scope: Both are fixed by saying the purpose:
Suggested change
|
||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||
| Put each finding that has a file and line on that line, as an | ||||||||||||||||||||||||||||||||||
| inline comment. Use one top-level comment for the summary and | ||||||||||||||||||||||||||||||||||
| anything not tied to a specific line, posted with: | ||||||||||||||||||||||||||||||||||
|
|
@@ -347,7 +367,8 @@ | |||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||
| `.claude-review/` holds the files this run generated for you. It is | ||||||||||||||||||||||||||||||||||
| tooling, not part of the change under review — do not review it, and | ||||||||||||||||||||||||||||||||||
| do not comment on it. | ||||||||||||||||||||||||||||||||||
| do not comment on it. You cannot write files anywhere — compose | ||||||||||||||||||||||||||||||||||
| comment bodies on stdin, as the posting command above does. | ||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||
| The tool you are running in also moves this repository's `.claude/` | ||||||||||||||||||||||||||||||||||
| directory aside to `.claude-pr/.claude/` before you start, so | ||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||
Uh oh!
There was an error while loading. Please reload this page.