プレイグラウンド、サンドボックス、使い捨てスクリプト置き場
0

Configure Feed

Select the types of activity you want to include in your feed.

Add Claude Code GitHub Workflow (#219)

* Claude PR Assistant workflow

* Claude Code Review workflow

authored by

Kohei Watanabe and committed by
GitHub
(Jul 28, 2025, 5:16 PM +0900) 210dc4d6 bb79c4dc

+142
+78
.github/workflows/claude-code-review.yml
··· 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 + claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }} 39 + 40 + # Optional: Specify model (defaults to Claude Sonnet 4, uncomment for Claude Opus 4) 41 + # model: "claude-opus-4-20250514" 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]') 78 +
+64
.github/workflows/claude.yml
··· 1 + name: Claude Code 2 + 3 + on: 4 + issue_comment: 5 + types: [created] 6 + pull_request_review_comment: 7 + types: [created] 8 + issues: 9 + types: [opened, assigned] 10 + pull_request_review: 11 + types: [submitted] 12 + 13 + jobs: 14 + claude: 15 + if: | 16 + (github.event_name == 'issue_comment' && contains(github.event.comment.body, '@claude')) || 17 + (github.event_name == 'pull_request_review_comment' && contains(github.event.comment.body, '@claude')) || 18 + (github.event_name == 'pull_request_review' && contains(github.event.review.body, '@claude')) || 19 + (github.event_name == 'issues' && (contains(github.event.issue.body, '@claude') || contains(github.event.issue.title, '@claude'))) 20 + runs-on: ubuntu-latest 21 + permissions: 22 + contents: read 23 + pull-requests: read 24 + issues: read 25 + id-token: write 26 + actions: read # Required for Claude to read CI results on PRs 27 + steps: 28 + - name: Checkout repository 29 + uses: actions/checkout@v4 30 + with: 31 + fetch-depth: 1 32 + 33 + - name: Run Claude Code 34 + id: claude 35 + uses: anthropics/claude-code-action@beta 36 + with: 37 + claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }} 38 + 39 + # This is an optional setting that allows Claude to read CI results on PRs 40 + additional_permissions: | 41 + actions: read 42 + 43 + # Optional: Specify model (defaults to Claude Sonnet 4, uncomment for Claude Opus 4) 44 + # model: "claude-opus-4-20250514" 45 + 46 + # Optional: Customize the trigger phrase (default: @claude) 47 + # trigger_phrase: "/claude" 48 + 49 + # Optional: Trigger when specific user is assigned to an issue 50 + # assignee_trigger: "claude-bot" 51 + 52 + # Optional: Allow Claude to run specific commands 53 + # allowed_tools: "Bash(npm install),Bash(npm run build),Bash(npm run test:*),Bash(npm run lint:*)" 54 + 55 + # Optional: Add custom instructions for Claude to customize its behavior for your project 56 + # custom_instructions: | 57 + # Follow our coding standards 58 + # Ensure all new code has tests 59 + # Use TypeScript for new files 60 + 61 + # Optional: Custom environment variables for Claude 62 + # claude_env: | 63 + # NODE_ENV: test 64 +