[object Object]

← back to Cli Printing Press

fix(ci): switch queue update_method to merge so fork PRs can queue (#1492)

2d0ad5ae7a6007034d8e743bebc8515383490aa3 · 2026-05-15 17:36:48 -0700 · Trevin Chow

Fork PRs sit BLOCKED in this repo despite green CI because Mergify's
default bot account can't push rebase commits to a fork branch in a
way that triggers GitHub Actions. `@mergifyio queue` exposes this with
"GitHub permissions prevent queueing".

The historical workaround was `update_bot_account: <maintainer>` so
the rebase ran as a real user, but Mergify deprecated the
`update_method=rebase` + `update_bot_account` combination for fork
PRs on 2026-04-21 (removal 2026-07-01). The published migration path
is `update_method=merge`.

With `merge`, Mergify merges main INTO the PR branch (creating a
merge commit) instead of rebasing. mergify[bot] can do this on fork
branches without impersonation, and the merge commit triggers
workflows. `merge_method: squash` is unchanged, so the final commit
on main is still a single squashed commit — on-main history is
identical to the rebase-based flow.

Reaches PRs #865 (mschreib28) and #1361 (tallyberner) which were
both stuck on this exact path.

Files touched

Diff

commit 2d0ad5ae7a6007034d8e743bebc8515383490aa3
Author: Trevin Chow <trevin@trevinchow.com>
Date:   Fri May 15 17:36:48 2026 -0700

    fix(ci): switch queue update_method to merge so fork PRs can queue (#1492)
    
    Fork PRs sit BLOCKED in this repo despite green CI because Mergify's
    default bot account can't push rebase commits to a fork branch in a
    way that triggers GitHub Actions. `@mergifyio queue` exposes this with
    "GitHub permissions prevent queueing".
    
    The historical workaround was `update_bot_account: <maintainer>` so
    the rebase ran as a real user, but Mergify deprecated the
    `update_method=rebase` + `update_bot_account` combination for fork
    PRs on 2026-04-21 (removal 2026-07-01). The published migration path
    is `update_method=merge`.
    
    With `merge`, Mergify merges main INTO the PR branch (creating a
    merge commit) instead of rebasing. mergify[bot] can do this on fork
    branches without impersonation, and the merge commit triggers
    workflows. `merge_method: squash` is unchanged, so the final commit
    on main is still a single squashed commit — on-main history is
    identical to the rebase-based flow.
    
    Reaches PRs #865 (mschreib28) and #1361 (tallyberner) which were
    both stuck on this exact path.
---
 .mergify.yml | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/.mergify.yml b/.mergify.yml
index fa4bb0bb..7ad70769 100644
--- a/.mergify.yml
+++ b/.mergify.yml
@@ -25,7 +25,14 @@ queue_rules:
           - head = release-please--branches--main
           - "title ~= ^chore\\(main\\): release"
     merge_method: squash
-    update_method: rebase
+    # `update_method: merge` instead of `rebase` so the queue can update
+    # fork PRs without `update_bot_account`. Mergify deprecated the
+    # `rebase` + `update_bot_account` combination for fork PRs on
+    # 2026-04-21 (removal 2026-07-01); the published migration path is
+    # update_method=merge. The PR branch picks up a merge commit while
+    # in the queue, but `merge_method: squash` collapses it on the way
+    # to main, so the on-main history is unchanged.
+    update_method: merge
     # OSS plan: batch_size and max_parallel_checks must both be 1.
     batch_size: 1
     checks_timeout: 60m

← 5460c32a fix(cli): probe nested path-param leaves so verify catches `  ·  back to Cli Printing Press  ·  fix(cli): doctor preserves configured User-Agent when API us 3bb6d37b →