From c0e75c9de6f263a584567d25013c52843eb4ec5e Mon Sep 17 00:00:00 2001 From: Hauke Mehrtens Date: Sun, 22 Mar 2026 04:00:51 +0100 Subject: [PATCH] github: add Claude code review workflow triggered by /claude comment Add claude-code-review.yml using anthropics/claude-code-action@v1. The review runs when a PR comment containing "/claude" is posted, avoiding unnecessary API usage on every push. Uses issue_comment trigger restricted to PR comments only. Only triggers for users with write access (OWNER, MEMBER, COLLABORATOR) and when the comment body contains "/claude", preventing any runner from being allocated for unrelated comments. A short domain hint steers the review toward OpenWrt embedded Linux conventions. Co-Authored-By: Claude Sonnet 4.6 Link: https://github.com/openwrt/openwrt/pull/22556 Signed-off-by: Hauke Mehrtens --- .github/workflows/claude-code-review.yml | 38 ++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 .github/workflows/claude-code-review.yml diff --git a/.github/workflows/claude-code-review.yml b/.github/workflows/claude-code-review.yml new file mode 100644 index 0000000000..9682131eaa --- /dev/null +++ b/.github/workflows/claude-code-review.yml @@ -0,0 +1,38 @@ +name: Claude Code Review + +on: + issue_comment: + types: [created] + +permissions: + contents: read + pull-requests: write + +jobs: + code-review: + name: Claude Code Review + # Only run on PR comments containing "/claude" from users with write access + if: >- + github.event.issue.pull_request && + contains(github.event.comment.body, '/claude') && + contains(fromJSON('["OWNER", "MEMBER", "COLLABORATOR"]'), + github.event.comment.author_association) + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 + with: + fetch-depth: 1 + + - name: PR Review + uses: anthropics/claude-code-action@6062f3709600659be5e47fcddf2cf76993c235c2 # v1 + with: + anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }} + github_token: ${{ secrets.GITHUB_TOKEN }} + trigger_phrase: "/claude" + prompt: >- + Review this PR for an OpenWrt embedded Linux project, + focusing on correctness, security, and coding conventions. + claude_args: >- + --allowedTools + "mcp__github_inline_comment__create_inline_comment,Bash(gh pr comment:*),Bash(gh pr diff:*),Bash(gh pr view:*)"