File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -133,7 +133,28 @@ jobs:
133133 --label "workflow-generated" \
134134 --head=$branch_name
135135 echo "Merge created PR..."
136- retry_command gh pr merge --merge --auto --delete-branch "$branch_name"
136+ # Prefer enabling auto-merge so the PR waits for any required
137+ # checks before merging. If auto-merge can't be enabled — usually
138+ # because all required checks completed before this step ran and
139+ # the PR is already immediately mergeable — fall back to a direct
140+ # merge. GitHub returns one of these misleading errors in that
141+ # case: "Branch does not have required protected branch rules",
142+ # "Pull request is in unstable status", or "Pull request is not
143+ # in a mergeable state".
144+ auto_merge_err=$(mktemp)
145+ trap 'rm -f "$auto_merge_err"' EXIT
146+ if retry_command gh pr merge --merge --auto --delete-branch "$branch_name" 2>"$auto_merge_err"; then
147+ :
148+ else
149+ cat "$auto_merge_err"
150+ if grep -qE "does not have required protected branch rules|unstable status|Pull request is not in a mergeable state" "$auto_merge_err"; then
151+ echo "Auto-merge unavailable; PR appears immediately mergeable. Falling back to direct merge."
152+ retry_command gh pr merge --merge --delete-branch "$branch_name"
153+ else
154+ echo "Auto-merge failed with an unexpected error."
155+ exit 1
156+ fi
157+ fi
137158
138159 - uses : ./.github/actions/slack-alert
139160 if : ${{ failure() && github.event_name != 'workflow_dispatch' }}
You can’t perform that action at this time.
0 commit comments