1+ name : Claude Code Review
2+
3+ on :
4+ pull_request :
5+ types : [opened, synchronize]
6+ # Optional: Only run on specific file changes
7+ # paths:
8+ # - "src/**/*.ts"
9+ # - "src/**/*.tsx"
10+ # - "src/**/*.js"
11+ # - "src/**/*.jsx"
12+
13+ jobs :
14+ claude-review :
15+ # Optional: Filter by PR author
16+ # if: |
17+ # github.event.pull_request.user.login == 'external-contributor' ||
18+ # github.event.pull_request.user.login == 'new-developer' ||
19+ # github.event.pull_request.author_association == 'FIRST_TIME_CONTRIBUTOR'
20+
21+ runs-on : ubuntu-latest
22+ permissions :
23+ contents : read
24+ pull-requests : read
25+ issues : read
26+ id-token : write
27+
28+ steps :
29+ - name : Checkout repository
30+ uses : actions/checkout@v4
31+ with :
32+ fetch-depth : 1
33+
34+ - name : Run Claude Code Review
35+ id : claude-review
36+ uses : anthropics/claude-code-action@beta
37+ with :
38+ anthropic_api_key : ${{ secrets.ANTHROPIC_API_KEY }}
39+
40+ # Optional: Specify model (defaults to Claude Sonnet 4, uncomment for Claude Opus 4.1)
41+ # model: "claude-opus-4-1-20250805"
42+
43+ # Direct prompt for automated review (no @claude mention needed)
44+ direct_prompt : |
45+ Please review this pull request and provide feedback on:
46+ - Code quality and best practices
47+ - Potential bugs or issues
48+ - Performance considerations
49+ - Security concerns
50+ - Test coverage
51+
52+ Be constructive and helpful in your feedback.
53+
54+ # Optional: Use sticky comments to make Claude reuse the same comment on subsequent pushes to the same PR
55+ # use_sticky_comment: true
56+
57+ # Optional: Customize review based on file types
58+ # direct_prompt: |
59+ # Review this PR focusing on:
60+ # - For TypeScript files: Type safety and proper interface usage
61+ # - For API endpoints: Security, input validation, and error handling
62+ # - For React components: Performance, accessibility, and best practices
63+ # - For tests: Coverage, edge cases, and test quality
64+
65+ # Optional: Different prompts for different authors
66+ # direct_prompt: |
67+ # ${{ github.event.pull_request.author_association == 'FIRST_TIME_CONTRIBUTOR' &&
68+ # 'Welcome! Please review this PR from a first-time contributor. Be encouraging and provide detailed explanations for any suggestions.' ||
69+ # 'Please provide a thorough code review focusing on our coding standards and best practices.' }}
70+
71+ # Optional: Add specific tools for running tests or linting
72+ # allowed_tools: "Bash(npm run test),Bash(npm run lint),Bash(npm run typecheck)"
73+
74+ # Optional: Skip review for certain conditions
75+ # if: |
76+ # !contains(github.event.pull_request.title, '[skip-review]') &&
77+ # !contains(github.event.pull_request.title, '[WIP]')
0 commit comments