github / github/gh-stack

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

Open
#315 5 comments 19 reactions 0 assignees View on GitHub
feature request topic: bypass rules
Dominant language
Go
Stars
1.5k
Forks
70
Avg merge
1d 8h
Merged PRs (30d)
7

Description

### 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 --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 ` (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 , 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 --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.

Contributor guide

Open the contributing guide

Research direction

Assessment

Tech stack
github, go
Domain
cli, frontend
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
28/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.