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:*)"