feat(rotation): add multi-account rotation for API rate limit handling (#81) #170
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Claude Code Review | |
| on: | |
| # Using pull_request_target to run with base repo permissions (access to secrets) | |
| # This allows the workflow to run for fork PRs after maintainer approval | |
| # Security: This workflow only READS PR code for review, it does NOT execute it | |
| pull_request_target: | |
| types: [opened, synchronize] | |
| # Skip review for documentation and config-only changes | |
| paths-ignore: | |
| - "**/*.md" | |
| - ".github/**" | |
| - ".gitignore" | |
| - "pyproject.toml" | |
| # Cancel in-progress runs for the same PR to avoid duplicate reviews | |
| concurrency: | |
| group: claude-code-review-${{ github.event.pull_request.number }} | |
| cancel-in-progress: true | |
| jobs: | |
| claude-review: | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: read | |
| pull-requests: write # Needed to post review comments | |
| issues: read | |
| id-token: write | |
| steps: | |
| - name: Calculate total changes | |
| id: calc | |
| run: | | |
| additions=${{ github.event.pull_request.additions }} | |
| deletions=${{ github.event.pull_request.deletions }} | |
| total=$((additions + deletions)) | |
| echo "total=$total" >> $GITHUB_OUTPUT | |
| - name: Checkout PR code for review | |
| # Only review substantial changes (5+ files OR 20+ lines changed) | |
| if: | | |
| github.event.pull_request.changed_files >= 5 || | |
| steps.calc.outputs.total >= 20 | |
| uses: actions/checkout@v4 | |
| with: | |
| # Checkout the PR head commit (pull_request_target defaults to base branch) | |
| ref: ${{ github.event.pull_request.head.sha }} | |
| fetch-depth: 1 | |
| - name: Run Claude Code Review | |
| # Only review substantial changes (5+ files OR 20+ lines changed) | |
| if: | | |
| github.event.pull_request.changed_files >= 5 || | |
| steps.calc.outputs.total >= 20 | |
| id: claude-review | |
| uses: anthropics/claude-code-action@v1 | |
| with: | |
| claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }} | |
| # Explicit github_token needed for pull_request_target (OIDC doesn't work) | |
| github_token: ${{ secrets.GITHUB_TOKEN }} | |
| prompt: | | |
| REPO: ${{ github.repository }} | |
| PR NUMBER: ${{ github.event.pull_request.number }} | |
| Please review this pull request and provide feedback on: | |
| - Code quality and best practices | |
| - Potential bugs or issues | |
| - Performance considerations | |
| - Security concerns | |
| - Test coverage | |
| NOTE: review the other comments on the pull request - including yours. | |
| If you are reviewing changes or enhancements beyond the first creation of the pull request, | |
| make sure your comments are consistent with your previous reviews, or are | |
| referring to them in a consistent way. | |
| IMPORTANT FORMATTING NOTE: The use of the number symbol, '#', has a specific meaning in GitHub. It creates a link to an existing GitHub | |
| Issue or PR. If you plan to make that link, feel free to use # as a symbole in text. However, if you're simply referring to a numbered item | |
| in your own text, do not use the # symbol because it will link to an issue or PR which isn't related. Just write 'Number' or "No.". | |
| There's no need to repeat information unless it is critical and not | |
| being reflected in comments or code. Be aware of your prior reviews and that the new file information | |
| may reflect changes because of previous reviews. | |
| Use the repository's CLAUDE.md for guidance on style and conventions. Be constructive and helpful in your feedback. | |
| Use `gh pr comment` with your Bash tool to leave your review as a comment on the PR. | |
| # See https://github.com/anthropics/claude-code-action/blob/main/docs/usage.md | |
| # or https://docs.claude.com/en/docs/claude-code/cli-reference for available options | |
| claude_args: '--allowed-tools "Bash(gh issue view:*),Bash(gh search:*),Bash(gh issue list:*),Bash(gh pr comment:*),Bash(gh pr diff:*),Bash(gh pr view:*),Bash(gh pr list:*)"' | |