Add step to delete previous Claude review comments #63
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: | |
| pull_request_target: | |
| types: [opened, synchronize, ready_for_review, reopened] | |
| jobs: | |
| claude-review: | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: read | |
| pull-requests: write | |
| issues: read | |
| actions: read | |
| id-token: write | |
| steps: | |
| - name: Checkout PR head (fork) | |
| uses: actions/checkout@v4 | |
| with: | |
| ref: ${{ github.event.pull_request.head.sha }} | |
| fetch-depth: 1 | |
| - name: Remove prior Claude review comment (so review runs again) | |
| env: | |
| GH_TOKEN: ${{ github.token }} | |
| run: | | |
| pr=${{ github.event.pull_request.number }} | |
| repo=${{ github.repository }} | |
| # Find first issue comment whose body starts with "## Claude Code Review" | |
| comment_id=$(gh api repos/$repo/issues/$pr/comments \ | |
| --jq '.[] | select(.body | startswith("## Claude Code Review")) | .id' | head -n 1) | |
| if [ -n "$comment_id" ]; then | |
| echo "Deleting prior Claude review comment id=$comment_id" | |
| gh api -X DELETE repos/$repo/issues/comments/$comment_id | |
| else | |
| echo "No prior Claude review comment found." | |
| fi | |
| - name: Run Claude Code Review | |
| id: claude-review | |
| uses: anthropics/claude-code-action@v1 | |
| with: | |
| claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }} | |
| github_token: ${{ github.token }} | |
| plugin_marketplaces: 'https://github.com/anthropics/claude-code.git' | |
| plugins: 'code-review@claude-code-plugins' | |
| claude_args: > | |
| --allowedTools | |
| "Bash(gh pr view:*)" | |
| "Bash(gh pr diff:*)" | |
| "Bash(gh pr comment:*)" | |
| "Bash(gh api:*)" | |
| "Bash(gh search code:*)" | |
| "Bash(cat:*)" | |
| "Bash(ls:*)" | |
| "Bash(grep:*)" | |
| "Bash(python3:*)" | |
| "Bash(git:*)" | |
| prompt: | | |
| /code-review:code-review ${{ github.repository }}/pull/${{ github.event.pull_request.number }} | |
| Post the results as ONE top-level PR comment titled "Claude Code Review". | |
| Output requirements (even if no issues): | |
| - Start with: files changed count + list up to 15 changed file paths | |
| - Then: a short summary of what the PR changes (3–6 bullets) | |
| - Then: findings: | |
| - If issues: list them with file path + line numbers when possible | |
| - If no issues: list at least 3 concrete "improvement opportunities" with file paths | |
| If you cannot access the diff/files, say exactly what is blocked. | |
| If posting a PR comment is blocked, write the full review to the GitHub Actions job summary instead. | |
| IMPORTANT: | |
| - Do NOT stop just because a previous "Claude Code Review" comment exists. | |
| - If a prior Claude review exists, post a NEW comment titled "Claude Code Review (updated)" that includes: | |
| - current head SHA: ${{ github.event.pull_request.head.sha }} | |
| - files changed count + up to 15 file paths | |
| - 3–6 bullet summary of changes | |
| - findings or at least 3 improvement opportunities with file paths | |
| Post as ONE top-level PR comment. | |
| additional_permissions: | | |
| actions: read |