Ramble-FE / .github / workflows / claude-pr-review.yml
claude-pr-review.yml
Raw
name: Claude PR Review

on:
  pull_request:
    types: [opened, synchronize]

jobs:
  claude-pr-review:
    if: |
      github.event.pull_request.user.type != 'Bot' && (
        github.event.pull_request.author_association == 'OWNER' ||
        github.event.pull_request.author_association == 'MEMBER'
      )      
    runs-on: ubuntu-latest
    permissions:
      contents: read
      pull-requests: write
      id-token: write
    steps:
      - name: Checkout repository
        uses: actions/checkout@v5
        with:
          fetch-depth: 1

      - name: Review PR
        id: claude
        uses: anthropics/claude-code-action@v1
        with:
          anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
          track_progress: true
          prompt: |
            REPO: ${{ github.repository }}
            PR NUMBER: ${{ github.event.pull_request.number }}
            
            Perform a comprehensive code review with the following focus areas:
            
            1. **Code Quality**
               - Clean code principles and best practices
               - Proper error handling and edge cases
               - Code readability and maintainability

            2. **Security**
               - Check for potential security vulnerabilities
               - Validate input sanitization
               - Review authentication/authorization logic

            3. **Performance**
               - Identify potential performance bottlenecks
               - Review database queries for efficiency
               - Check for memory leaks or resource issues

            Provide detailed feedback using inline comments for specific issues.
            Use top-level comments for general observations or praise.
            
            **Please write all feedback and suggestions in Korean.**            

          claude_args: |
            --model claude-sonnet-4-5-20250929
            --allowedTools "mcp__github_inline_comment__create_inline_comment,Bash(gh pr comment:*), Bash(gh pr diff:*), Bash(gh pr view:*)"