github / github/gh-stack

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

未关闭
#315 5 条评论 19 个 reaction 已指派 0 人 在 GitHub 查看
feature request topic: bypass rules
主要语言
Go
星标
1.5k
派生
70
平均合并
1 天 8 小时
30 天内合并 PR
7

描述

### 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.

贡献指南

打开贡献指南

调研方向

评估

技术栈
github, go
领域
cli, frontend
Issue 类型
缺陷
难度
5/5
预计耗时
一周以上
活跃度
活跃
描述清晰度
基本清楚
新手友好度
28/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。