fix(#159): retry fullsend post-review on transient API failures#161
fix(#159): retry fullsend post-review on transient API failures#161fullsend-ai-coder[bot] wants to merge 1 commit into
Conversation
|
/fs-fix rebase and resolve the conficts. |
|
🤖 Finished Fix · ✅ Success · Started 11:31 AM UTC · Completed 11:37 AM UTC |
Wrap the fullsend post-review call in a retry loop (max 3 attempts with 5s/15s backoff) to handle transient GitHub API errors such as 422 Unprocessable Entity during PR transitional states. Previously, a single non-zero exit (other than code 10 for stale-head) caused post-review.sh to exit immediately. This meant a valid review comment could be posted while the formal review API call failed, leaving the PR without an outcome label and requiring human diagnosis. Changes: - scripts/post-review.sh: add retry loop around fullsend post-review. Exit code 10 (stale-head) bypasses retry and uses existing handler. On exhausted retries, a degraded-mode fallback applies the outcome label directly so the PR is not left in limbo. The script still exits 1 to signal the formal review was not posted. - scripts/post-review-test.sh: add 7 integration tests covering retry-then-succeed, retries-exhausted with fallback for approve/ comment/request-changes actions, stale-head bypass, and retry log message format. POST_REVIEW_RETRY_DELAY env var overrides backoff for all retries (set to 0 in tests to skip sleep). Closes #159
3327064 to
313ef13
Compare
🔧 Fix agent — iteration 1 (human-triggered)Rebased onto origin/main, resolved conflict in post-review-test.sh by merging both draft PR tests and retry tests, and updated degraded-mode fallback to include PR_IS_DRAFT check for consistency with main's outcome-label logic. All 58 tests pass. Fixed (1):
Tests: passed Decision points
Updated by fullsend fix agent |
|
/fs-review |
|
🤖 Finished Review · ✅ Success · Started 6:31 AM UTC · Completed 6:48 AM UTC |
ReviewFindingsMedium
Low
Labels: PR modifies review pipeline post-review scripts |
Wrap the fullsend post-review call in a retry loop (max 3 attempts with 5s/15s backoff) to handle transient GitHub API errors such as 422 Unprocessable Entity during PR transitional states.
Previously, a single non-zero exit (other than code 10 for stale-head) caused post-review.sh to exit immediately. This meant a valid review comment could be posted while the formal review API call failed, leaving the PR without an outcome label and requiring human diagnosis.
Changes:
Exit code 10 (stale-head) bypasses retry and uses existing handler.
On exhausted retries, a degraded-mode fallback applies the outcome
label directly so the PR is not left in limbo. The script still
exits 1 to signal the formal review was not posted.
retry-then-succeed, retries-exhausted with fallback for approve/
comment/request-changes actions, stale-head bypass, and retry
log message format.
POST_REVIEW_RETRY_DELAY env var overrides backoff for all retries (set to 0 in tests to skip sleep).
Closes #159
Post-script verification
agent/159-retry-post-review)51561b23f669baf5e6ad027c5de39b0fdb199ab9..HEAD)