mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-07-14 11:17:35 +00:00
## Symptom When the auto-backport workflow (`.github/workflows/pr-backport.yaml`) hits a cherry-pick **conflict**, it is supposed to comment on the original PR telling the author to backport manually. On PR #13359 (backport to `cloud/1.45`, cherry-pick of `d6c582c39` conflicting on `useSubscriptionDialog.test.ts`) **no comment was posted** — the author (@huntcsg) got no notification and had to find the failure by digging into Actions logs. See run [28616756256](https://github.com/Comfy-Org/ComfyUI_frontend/actions/runs/28616756256/job/84862400420). ## Root cause The "Comment on failures" step actually ran and reached the `conflicts` branch — the failure reason *was* populated and the `if:` condition *was* met. The real failure is at the last line of the loop, under the step's default `bash -e` shell: ```yaml gh pr comment "${PR_NUMBER}" --body "${COMMENT_BODY}" ``` The job log ends with: ``` GraphQL: Unable to create comment because issue is locked (addComment) ##[error]Process completed with exit code 1. ``` PR #13359 is `locked: true`, so `gh pr comment` returns non-zero. Because the call was unguarded under `set -e`, the step aborted on the spot: the comment was lost and — critically for the general case — any remaining failed targets in the loop would also be skipped. The step is then marked failed with no actionable output on the PR. (Related PR #13167 "attempt each backport target branch independently" is still open/unmerged; this is a residual gap in the failure-comment path.) ## Fix Wrap every `gh pr comment` call in a `post_comment` helper. On failure it emits a `::warning::` naming the target, the reason, and the manual-backport branch (`backport-<pr>-to-<target>`) instead of aborting, so the loop always attempts a comment for each failed target and surfaces a clear log message when GitHub refuses (e.g. locked issue). The conflict comment body now also states the manual backport branch explicitly. - YAML: `python3 -c 'import yaml; yaml.safe_load(...)'` passes. - `actionlint`: no new warnings in the changed step (the 2 pre-existing `SC2016` notes on the intentional single-quoted `envsubst` var lists are unchanged). 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>