mirror of
https://github.com/Significant-Gravitas/AutoGPT.git
synced 2026-04-08 03:00:28 -04:00
fix(ci): prevent Claude docs reviewer from editing same comment repeatedly
Issue: When new commits are pushed quickly, the workflow cancels previous runs but Claude Code action finds and edits existing comments instead of creating new ones, resulting in 13+ edits of the same comment. Root cause: Cleanup step runs AFTER Claude review, so cancelled workflows never delete old comments. Claude then finds and reuses existing comments. Fix: Move cleanup step BEFORE Claude review so old comments are deleted first, forcing each run to create a fresh comment. Fixes the behavior seen in PR #12339 where one comment was edited 13 times over 54 minutes due to cancelled workflow runs.
This commit is contained in:
41
.github/workflows/docs-claude-review.yml
vendored
41
.github/workflows/docs-claude-review.yml
vendored
@@ -57,6 +57,23 @@ jobs:
|
||||
poetry install --only main
|
||||
poetry run prisma generate
|
||||
|
||||
- name: Delete old Claude review comments
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: |
|
||||
# Get all comment IDs with our marker
|
||||
COMMENT_IDS=$(gh api \
|
||||
repos/${{ github.repository }}/issues/${{ github.event.pull_request.number }}/comments \
|
||||
--jq '[.[] | select(.body | contains("<!-- CLAUDE_DOCS_REVIEW -->")) | .id][]')
|
||||
|
||||
# Delete all old review comments
|
||||
for COMMENT_ID in $COMMENT_IDS; do
|
||||
if [ -n "$COMMENT_ID" ]; then
|
||||
echo "Deleting old review comment: $COMMENT_ID"
|
||||
gh api -X DELETE repos/${{ github.repository }}/issues/comments/$COMMENT_ID || true
|
||||
fi
|
||||
done
|
||||
|
||||
- name: Run Claude Code Review
|
||||
uses: anthropics/claude-code-action@v1
|
||||
with:
|
||||
@@ -103,27 +120,3 @@ jobs:
|
||||
|
||||
Be constructive and specific. If everything looks good, say so!
|
||||
If there are issues, explain what's wrong and suggest how to fix it.
|
||||
|
||||
- name: Delete old Claude review comments
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: |
|
||||
# Get all comment IDs with our marker, sorted by creation date (oldest first)
|
||||
COMMENT_IDS=$(gh api \
|
||||
repos/${{ github.repository }}/issues/${{ github.event.pull_request.number }}/comments \
|
||||
--jq '[.[] | select(.body | contains("<!-- CLAUDE_DOCS_REVIEW -->"))] | sort_by(.created_at) | .[].id')
|
||||
|
||||
# Count comments
|
||||
COMMENT_COUNT=$(echo "$COMMENT_IDS" | grep -c . || true)
|
||||
|
||||
if [ "$COMMENT_COUNT" -gt 1 ]; then
|
||||
# Delete all but the last (newest) comment
|
||||
echo "$COMMENT_IDS" | head -n -1 | while read -r COMMENT_ID; do
|
||||
if [ -n "$COMMENT_ID" ]; then
|
||||
echo "Deleting old review comment: $COMMENT_ID"
|
||||
gh api -X DELETE repos/${{ github.repository }}/issues/comments/$COMMENT_ID
|
||||
fi
|
||||
done
|
||||
else
|
||||
echo "No old review comments to clean up"
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user