summaryrefslogtreecommitdiff
path: root/.github/workflows/claude-code-review.yml
diff options
context:
space:
mode:
authorHiFiPhile <[email protected]>2026-06-22 21:30:58 +0200
committerHiFiPhile <[email protected]>2026-06-22 21:30:58 +0200
commit693cdce08e14833f26f4e8a1f26e4fd546be4c35 (patch)
tree7667d2223dc32d9f21b5b60ab200e64ed46e3e20 /.github/workflows/claude-code-review.yml
parent41e9eaa65a935136085d78ec4b99c81ff991b560 (diff)
parentcd3561bf158afd5a5718904b8139a338d1e3b67c (diff)
Merge remote-tracking branch 'tinyusb/master' into pr-osal-spin-deinit
Signed-off-by: HiFiPhile <[email protected]>
Diffstat (limited to '.github/workflows/claude-code-review.yml')
-rw-r--r--.github/workflows/claude-code-review.yml60
1 files changed, 60 insertions, 0 deletions
diff --git a/.github/workflows/claude-code-review.yml b/.github/workflows/claude-code-review.yml
new file mode 100644
index 000000000..59019616f
--- /dev/null
+++ b/.github/workflows/claude-code-review.yml
@@ -0,0 +1,60 @@
+name: Claude Code Review
+
+on:
+ pull_request:
+ # opened/reopened/ready_for_review -> first auto review
+ # synchronize -> auto re-review on new pushes
+ #
+ # NOTE: pull_request (not _target) means fork PRs get a read-only GITHUB_TOKEN
+ # and NO repository secrets (CLAUDE_CODE_OAUTH_TOKEN), so they cannot be
+ # auto-reviewed. The job condition below skips them cleanly -> use @claude on
+ # those. Same-repo branches (yours or write-access contributors) auto-review.
+ types: [opened, synchronize, reopened, ready_for_review]
+
+jobs:
+ claude-review:
+ # Skip drafts, and skip fork PRs (no secrets -> would only fail noisily)
+ if: >
+ github.event.pull_request.draft == false &&
+ github.event.pull_request.head.repo.full_name == github.repository
+ runs-on: ubuntu-latest
+ permissions:
+ contents: read
+ pull-requests: write
+ issues: write # Claude posts the review comment via the issues API
+ id-token: write
+ actions: read # Required for Claude to read CI results on PRs
+
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v6
+ with:
+ fetch-depth: 1
+
+ - name: Run Claude Code Review
+ id: claude-review
+ uses: anthropics/claude-code-action@v1
+ with:
+ claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
+ # Allow claude[bot]'s own pushes to be handled gracefully (skip) instead
+ # of erroring out the workflow
+ allowed_bots: 'claude'
+ # Pairs with the actions: read permission so Claude can read CI results
+ additional_permissions: |
+ actions: read
+ plugin_marketplaces: 'https://github.com/anthropics/claude-code.git'
+ plugins: 'code-review@claude-code-plugins'
+ # Post/update a single summary comment every run, so a clean review
+ # ("no issues found") is still visible instead of posting nothing.
+ use_sticky_comment: true
+ # --comment makes the code-review command post its findings to the PR.
+ # Without it the command only prints the review to the Actions log.
+ prompt: '/code-review:code-review ${{ github.repository }}/pull/${{ github.event.pull_request.number }} --comment'
+ # TEMPORARY: expose the full Claude transcript in the Actions log for
+ # debugging. Revert to remove once done.
+ show_full_output: true
+ claude_args: |
+ --max-turns 50
+ --model claude-opus-4-8
+ --effort max
+ # See https://github.com/anthropics/claude-code-action/blob/main/docs/usage.md