Compare commits
2 commits
0f6f074b6d
...
4f5c8cee51
| Author | SHA1 | Date | |
|---|---|---|---|
| 4f5c8cee51 | |||
|
|
e9a4fc7b80 |
2 changed files with 23 additions and 0 deletions
|
|
@ -575,6 +575,13 @@ else
|
|||
outcome="blocked_${_PR_WALK_EXIT_REASON:-agent_failed}"
|
||||
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
|
||||
fi
|
||||
|
||||
|
|
|
|||
|
|
@ -348,6 +348,22 @@ pr_is_merged() {
|
|||
[ "$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.
|
||||
#
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue