Skip to content

Stacked-PR merge box doesn't offer repo admins the "bypass rules and merge" option that standalone PRs get #315

Description

@salpers

Summary

On github.com, a repo admin trying to merge a blocked standalone PR (e.g. "Review required") is offered a "bypass rules and merge" control — "Merge without waiting for requirements to be met" — the admin escape hatch for branch-protection / ruleset requirements. Inside the Stacked PRs merge box that control is not surfaced: a blocked stacked PR only shows the stack flow ("Merging is blocked", "Unable to merge as a stack", disabled "Squash and merge stack"), with no per-PR admin bypass option. A repo admin therefore cannot bypass-merge a stacked PR from the web UI and has to fall back to the CLI: gh pr merge <n> --admin.

Filing here since gh stack is the interface to the Stacked PRs feature and SUPPORT.md routes bug reports to this repo. Extension version v0.0.8.

Reproduction

  1. On a repo whose main requires ≥1 approving review, create a stack: gh stack link --base main <A> <B> <C> (chain main ← A ← B ← C).
  2. With no approving review submitted, open a blocked member PR in the web UI as a repo admin.
  3. The merge box shows "Merging is blocked — At least 1 approving review is required" / "Unable to merge as a stack". There is no "bypass rules and merge" control — the affordance a normal blocked PR would show an admin is missing.

Observed on both an intact stack and a partially-merged one.

Expected

A repo admin should get the same "bypass rules and merge" escape hatch on a stacked PR that they get on a standalone PR — able to admin-override-merge the individual PR from the web UI, without dropping to gh pr merge --admin.

Why it's more than a nuisance

It becomes inescapable once the stack is partially merged: after squash-merging the lower PRs, the top PR stays open and stack-associated, but the stack can't be dissolved to free it — gh stack unstack refuses with Unstacking not allowed: Pull requests <A>, <B> cannot be removed from this stack (server-gated; merged members stay pinned). With no web bypass control and no way to unstack, the only route to merge the stranded PR is gh pr merge <C> --admin. The unstack / partial-merge limitation itself is already tracked in Discussions #230 and #310 — this issue is specifically about the missing admin bypass-merge affordance in the stacked-PR merge UI.

Minor client note: the unstack warning at cmd/unstack.go:228 hard-codes "queued for merge or have auto-merge enabled" as the reason for a dissolved=false result, which is misleading when the real cause is merged members — but that's secondary.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions