Add an `--admin` bypass flag to `gh stack merge`, matching `gh pr merge --admin`
まだ誰も着手していません。
評価
調査の方向性
Start at the gh stack merge CLI entry point and compare its merge flow with gh pr merge --admin. Trace the underlying async stack merge API and determine how a bypass parameter and ineligible-user error are represented. Done means an admin can merge the stack atomically with the bypass, while an ineligible user receives the corresponding failure reason.
索引モデルが issue の本文から書いたものです。
説明
Human summary
I'd like to bypass merge requirements on a stack from the CLI. This is the CLI-version of #315, I'm fine closing this and just following the conversation there.
What's missing
gh stack merge has no way to bypass merge requirements. The help text states this outright:
Only basic pull request state is checked before merging (open and not a draft); GitHub evaluates branch protection and repository rules when the merge runs, so any such failure is reported back to you. Bypassing merge requirements is not supported for stacks.
There is no --admin flag, and no equivalent. A repo admin who is allowed to merge any individual pull request with gh pr merge --admin has no way to do the same for a stack.
Extension version: v0.1.0.
Why this matters
The reason to use gh stack merge instead of merging the PRs by hand is the all-or-nothing guarantee — the whole stack lands, or none of it does. An admin who needs to bypass a requirement loses that guarantee entirely, because the only way forward is to stop using gh stack merge.
Current workaround
Merge each PR individually, bottom to top:
gh pr merge <bottom> --squash --admin
# wait for GitHub to retarget the next PR's base to the trunk
gh pr merge <next> --squash --admin
# ... repeat to the top of the stack
This is worse in several ways:
- It is not atomic. If any step fails — a conflict surfacing after the PR below it lands, a check that only starts once the base changes, a dropped connection — the stack is left partially merged, with some commits on the trunk and the rest stranded.
- Retargeting is asynchronous, so each step needs a wait-and-poll for the next PR's base to become the trunk before the next
--adminmerge can run. That is fragile to script and easy to get wrong by hand. - A partially merged stack is awkward to recover from. Merged members stay pinned to the stack, so the stack cannot simply be dissolved to free what is left.
The ask
Add an --admin flag (or an equivalently named bypass flag) to gh stack merge, matching gh pr merge --admin: when the authenticated user is eligible to bypass the rules on the base branch, merge the stack atomically with the bypass applied, rather than refusing. If the user is not eligible, fail with that reason, the same way gh pr merge --admin does today.
This presumably needs the underlying async stack merge API to accept a bypass parameter as well, not just the CLI.
Related
#315 asks for the "bypass rules and merge" control in the stacked-PR merge box on github.com, and treats gh pr merge <n> --admin as the available CLI fallback. This issue is about that fallback not being good enough for a stack: the per-PR command exists, but gh stack merge — the command that gives the atomicity — has no bypass at all.
- 主要言語
- Go
- スター
- 1.5k
- フォーク
- 73
- 平均マージ
- 1日 8時間
- マージ済み PR(30日)
- 7
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
github/gh-stack のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
-
難易度 1/5 1時間未満 初心者へのやさしさ 92/100
-
feature request topic: cli - general
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
-
feature request topic: auto-merge
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
-
bug topic: docs
難易度 1/5 1時間未満 初心者へのやさしさ 68/100
github/gh-stack の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
NVIDIA/gpu-operator#2955 ·
-
agentic-workflows
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
-
難易度 1/5 1時間未満 初心者へのやさしさ 90/100
kovidgoyal/kitty#10516 ·
-
bug
難易度 1/5 1時間未満 初心者へのやさしさ 90/100
cisagov/vulnrichment#337 ·
-
難易度 1/5 1時間未満 初心者へのやさしさ 72/100