fix: bug: dev-agent does not clean up branch/worktree on CI exhausted or block (#115) #118
2 changed files with 23 additions and 0 deletions
|
|
@ -575,6 +575,13 @@ else
|
||||||
outcome="blocked_${_PR_WALK_EXIT_REASON:-agent_failed}"
|
outcome="blocked_${_PR_WALK_EXIT_REASON:-agent_failed}"
|
||||||
profile_write_journal "$ISSUE" "$ISSUE_TITLE" "$outcome" "$FILES_CHANGED" || true
|
profile_write_journal "$ISSUE" "$ISSUE_TITLE" "$outcome" "$FILES_CHANGED" || true
|
||||||
|
|
||||||
|
# Cleanup on failure: close PR, delete remote branch, clean up worktree
|
||||||
|
if [ -n "$PR_NUMBER" ]; then
|
||||||
|
pr_close "$PR_NUMBER"
|
||||||
|
fi
|
||||||
|
git push "$FORGE_REMOTE" --delete "$BRANCH" 2>/dev/null || true
|
||||||
|
worktree_cleanup "$WORKTREE"
|
||||||
|
rm -f "$SID_FILE" "$IMPL_SUMMARY_FILE"
|
||||||
CLAIMED=false
|
CLAIMED=false
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -348,6 +348,22 @@ pr_is_merged() {
|
||||||
[ "$merged" = "true" ]
|
[ "$merged" = "true" ]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# ---------------------------------------------------------------------------
|
||||||
|
# pr_close — Close a PR via forge API.
|
||||||
|
# Args: pr_number
|
||||||
|
# Returns: 0=closed, 1=error
|
||||||
|
# ---------------------------------------------------------------------------
|
||||||
|
pr_close() {
|
||||||
|
local pr_num="$1"
|
||||||
|
|
||||||
|
_prl_log "closing PR #${pr_num}"
|
||||||
|
curl -sf -X PATCH \
|
||||||
|
-H "Authorization: token ${FORGE_TOKEN}" \
|
||||||
|
-H "Content-Type: application/json" \
|
||||||
|
"${FORGE_API}/pulls/${pr_num}" \
|
||||||
|
-d '{"state":"closed"}' >/dev/null 2>&1 || true
|
||||||
|
}
|
||||||
|
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
# pr_walk_to_merge — Walk a PR through CI, review, and merge.
|
# pr_walk_to_merge — Walk a PR through CI, review, and merge.
|
||||||
#
|
#
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue