feat: Add @codebot review-again command for manual PR re-review
All checks were successful
Enterprise AI Code Review / ai-review (pull_request) Successful in 27s
All checks were successful
Enterprise AI Code Review / ai-review (pull_request) Successful in 27s
- Add review-again command to trigger PR review without new commits - Implement review comparison logic to show resolved/new/changed issues - Update workflow to handle PR comments via dispatcher - Add comprehensive help documentation in README and CLAUDE.md - Show diff from previous review with resolved/new issues count - Update PR labels based on new severity assessment - Support re-evaluation after config changes or false positive clarification Key features: - ✅ Shows diff from previous review (resolved/new/changed issues) - 🏷️ Updates labels based on new severity - ⚡ No need for empty commits to trigger review - 🔧 Respects latest .ai-review.yml configuration Closes feature request for manual PR re-review capability
This commit is contained in:
45
CLAUDE.md
45
CLAUDE.md
@@ -145,6 +145,7 @@ interaction:
|
||||
- security # Security analysis
|
||||
- summarize # Summarize the issue
|
||||
- triage # Full triage with labeling
|
||||
- review-again # Re-run PR review (PR comments only)
|
||||
|
||||
review:
|
||||
fail_on_severity: HIGH # Fail CI if HIGH severity issues found
|
||||
@@ -309,6 +310,49 @@ pytest tests/test_ai_review.py::TestSecurityScanner -v
|
||||
|
||||
## Common Development Tasks
|
||||
|
||||
### Review-Again Command Implementation
|
||||
|
||||
The `@codebot review-again` command allows manual re-triggering of PR reviews without new commits.
|
||||
|
||||
**Key Features:**
|
||||
- Detects `@codebot review-again` in PR comments (not issue comments)
|
||||
- Compares new review with previous review to show resolved/new issues
|
||||
- Updates existing AI review comment instead of creating duplicates
|
||||
- Updates PR labels based on new severity assessment
|
||||
|
||||
**Implementation Details:**
|
||||
|
||||
1. **PRAgent.can_handle()** - Handles `issue_comment` events on PRs containing "review-again"
|
||||
2. **PRAgent._handle_review_again()** - Main handler that:
|
||||
- Fetches previous review comment
|
||||
- Re-runs full PR review (security scan + AI analysis)
|
||||
- Compares findings using `_compare_reviews()`
|
||||
- Generates diff report with `_format_review_update()`
|
||||
- Updates comment and labels
|
||||
|
||||
3. **Review Comparison** - Uses finding keys (file:line:description) to match issues:
|
||||
- **Resolved**: Issues in previous but not in current review
|
||||
- **New**: Issues in current but not in previous review
|
||||
- **Still Present**: Issues in both reviews
|
||||
- **Severity Changed**: Same issue with different severity
|
||||
|
||||
4. **Workflow Integration** - `.gitea/workflows/ai-comment-reply.yml`:
|
||||
- Detects if comment is on PR or issue
|
||||
- Uses `dispatch` command for PRs to route to PRAgent
|
||||
- Preserves backward compatibility with issue commands
|
||||
|
||||
**Usage:**
|
||||
```bash
|
||||
# In a PR comment:
|
||||
@codebot review-again
|
||||
```
|
||||
|
||||
**Common Use Cases:**
|
||||
- Re-evaluate after explaining false positives in comments
|
||||
- Test new `.ai-review.yml` configuration
|
||||
- Update severity after code clarification
|
||||
- Faster iteration without empty commits
|
||||
|
||||
### Adding a New Command to @codebot
|
||||
|
||||
1. Add command to `config.yml` under `interaction.commands`
|
||||
@@ -323,6 +367,7 @@ Example commands:
|
||||
- `@codebot explain` - Explain the issue
|
||||
- `@codebot suggest` - Suggest solutions
|
||||
- `@codebot setup-labels` - Automatic label setup (built-in, not in config)
|
||||
- `@codebot review-again` - Re-run PR review without new commits (PR comments only)
|
||||
|
||||
### Changing the Bot Name
|
||||
|
||||
|
||||
Reference in New Issue
Block a user