submit marks existing draft PRs ready for review without --open, firing review requests
还没有人认领这个 Issue。
评估
调研方向
首先运行报告中的两遍 gh stack submit --auto 复现,并检查 submit 命令的更新路径,尤其是处理现有 pull request 的位置。将该路径与 --open 的行为进行比较,并使用 gh pr view A --json isDraft 进行验证;完成标准是:除非传入 --open,否则重复提交不会改变现有 draft,并且测试覆盖该回归问题。
由索引模型根据 Issue 内容生成。
描述
Environment
- gh 2.96.0 (2026-07-02), gh-stack v0.0.4, git 2.46.1, macOS 26.6
Summary
gh stack submit --auto marked two already-open draft PRs as ready for review, which fired review requests to five CODEOWNERS. I did not pass --open.
The help text is explicit that this should not happen:
New PRs are created as drafts by default. Use
--opento mark them as ready for review.
Repro
gh stack submit --auto # creates PR A and PR B as drafts
gh pr view A --json isDraft # => true, as documented
# ... make no change to the branches ...
gh stack submit --auto # second run, still no --open
gh pr view A --json isDraft # => false
Second run's output, which gives no indication it changed draft state:
Checking stack state...
Pushing to origin...
PR #A for branch-a is up to date
PR #B for branch-b is up to date
✓ Stack updated on GitHub with 2 PRs
✓ Pushed and synced 2 branches
The PR timeline confirms it:
<t> ready_for_review by=<me>
<t> review_requested by=<me> x5
Those timestamps match the second submit to the second. I made no other change in between, and did not touch the web UI.
Why it matters
Marking a PR ready is not a local operation. It notifies every CODEOWNER, and on a repo with required reviewers it moves the PR into other people's queues. Doing it on an update pass, from a flag whose documented meaning is "use auto-generated titles without prompting", is surprising in a way that cannot be undone: gh pr ready --undo restores draft state but the notifications have already gone out.
It also makes submit unusable as an idempotent "sync my stack" command, which is what its output implies it is when everything is already up to date.
Expected
submit should only change draft state when --open is passed. If the current behaviour is deliberate for update passes, the help text should say so, and the output should name the change instead of printing is up to date.
- 主要语言
- Go
- 星标
- 1.5k
- 派生
- 73
- 平均合并
- 1 天 8 小时
- 30 天内合并 PR
- 7
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 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
相似的 Issue
-
area/dev-productivity area/disaster-recovery area/ipcei kind/enhancement
难度 2/5 1-3 小时 新手友好度 70/100
-
难度 1/5 1 小时以内 新手友好度 85/100
-
难度 2/5 1-3 小时 新手友好度 75/100
-
kind/bug status/0-triage
难度 2/5 1-3 小时 新手友好度 75/100
-
🤔 refinement needed
难度 2/5 1-3 小时 新手友好度 75/100
equinor/radix-operator#1979 ·