ralph-claude-code/.github/workflows/claude-code-review.yml
Frank Bria 0bd260df68
ci(workflow): add concurrency blocks to prevent duplicate runs (#135)
Add concurrency control to all review workflows:
- opencode-review.yml: Cancel in-progress for same PR
- claude-code-review.yml: Cancel in-progress for same PR
- claude.yml: Cancel in-progress for same issue/PR

This prevents duplicate reviews when PRs are updated rapidly
or multiple comments are posted in quick succession.

Co-authored-by: Test User <test@example.com>
2026-01-28 10:22:45 -07:00

82 lines
3.5 KiB
YAML

name: Claude Code Review
on:
pull_request:
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: read
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 repository
# 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:
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 }}
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:*)"'