improve claude code review
This commit is contained in:
82
.github/workflows/claude-code-review.yml
vendored
82
.github/workflows/claude-code-review.yml
vendored
@@ -1,76 +1,40 @@
|
|||||||
name: Claude Code Review
|
name: Claude Experimental Review Mode
|
||||||
|
|
||||||
on:
|
on:
|
||||||
pull_request:
|
issue_comment:
|
||||||
types: [opened, synchronize]
|
types: [created]
|
||||||
# Optional: Only run on specific file changes
|
|
||||||
# paths:
|
|
||||||
# - "src/**/*.ts"
|
|
||||||
# - "src/**/*.tsx"
|
|
||||||
# - "src/**/*.js"
|
|
||||||
# - "src/**/*.jsx"
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
claude-review:
|
code-review:
|
||||||
# Optional: Filter by PR author
|
# Run when someone comments "@claude review" on a PR conversation
|
||||||
# if: |
|
if: |
|
||||||
# github.event.pull_request.user.login == 'external-contributor' ||
|
github.event.issue.pull_request &&
|
||||||
# github.event.pull_request.user.login == 'new-developer' ||
|
contains(github.event.comment.body, '@claude review')
|
||||||
# github.event.pull_request.author_association == 'FIRST_TIME_CONTRIBUTOR'
|
|
||||||
|
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
permissions:
|
permissions:
|
||||||
contents: read
|
contents: read
|
||||||
pull-requests: read
|
pull-requests: write
|
||||||
issues: read
|
issues: write
|
||||||
id-token: write
|
id-token: write
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
fetch-depth: 1
|
fetch-depth: 0 # Full history for better diff analysis
|
||||||
|
|
||||||
- name: Run Claude Code Review
|
- name: Code Review with Claude (Experimental)
|
||||||
id: claude-review
|
|
||||||
uses: anthropics/claude-code-action@beta
|
uses: anthropics/claude-code-action@beta
|
||||||
with:
|
with:
|
||||||
claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
|
mode: experimental-review
|
||||||
|
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
|
||||||
|
timeout_minutes: "30"
|
||||||
|
custom_instructions: |
|
||||||
|
Focus on:
|
||||||
|
- Code quality and maintainability
|
||||||
|
- Security vulnerabilities
|
||||||
|
- Performance issues
|
||||||
|
- Best practices and design patterns
|
||||||
|
|
||||||
# Optional: Specify model (defaults to Claude Sonnet 4, uncomment for Claude Opus 4)
|
Be constructive and provide specific suggestions for improvements.
|
||||||
# model: "claude-opus-4-20250514"
|
Use GitHub's suggestion format when proposing code changes.
|
||||||
|
|
||||||
# Direct prompt for automated review (no @claude mention needed)
|
|
||||||
direct_prompt: |
|
|
||||||
Please review this pull request and provide feedback on:
|
|
||||||
- Code quality and best practices
|
|
||||||
- Potential bugs or issues
|
|
||||||
- Performance considerations
|
|
||||||
- Security concerns
|
|
||||||
|
|
||||||
Be constructive and helpful in your feedback.
|
|
||||||
|
|
||||||
# Optional: Use sticky comments to make Claude reuse the same comment on subsequent pushes to the same PR
|
|
||||||
# use_sticky_comment: true
|
|
||||||
|
|
||||||
# Optional: Customize review based on file types
|
|
||||||
# direct_prompt: |
|
|
||||||
# Review this PR focusing on:
|
|
||||||
# - For TypeScript files: Type safety and proper interface usage
|
|
||||||
# - For API endpoints: Security, input validation, and error handling
|
|
||||||
# - For React components: Performance, accessibility, and best practices
|
|
||||||
# - For tests: Coverage, edge cases, and test quality
|
|
||||||
|
|
||||||
# Optional: Different prompts for different authors
|
|
||||||
# direct_prompt: |
|
|
||||||
# ${{ github.event.pull_request.author_association == 'FIRST_TIME_CONTRIBUTOR' &&
|
|
||||||
# 'Welcome! Please review this PR from a first-time contributor. Be encouraging and provide detailed explanations for any suggestions.' ||
|
|
||||||
# 'Please provide a thorough code review focusing on our coding standards and best practices.' }}
|
|
||||||
|
|
||||||
# Optional: Add specific tools for running tests or linting
|
|
||||||
# allowed_tools: "Bash(npm run test),Bash(npm run lint),Bash(npm run typecheck)"
|
|
||||||
|
|
||||||
# Optional: Skip review for certain conditions
|
|
||||||
# if: |
|
|
||||||
# !contains(github.event.pull_request.title, '[skip-review]') &&
|
|
||||||
# !contains(github.event.pull_request.title, '[WIP]')
|
|
||||||
|
Reference in New Issue
Block a user