github / github/gh-stack

submit marks existing draft PRs ready for review without --open, firing review requests

オープン
#481 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る
主要言語
Go
スター
1.5k
フォーク
70
平均マージ
1日 8時間
マージ済み PR(30日)
7

説明

## 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 `--open` to 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:

```
ready_for_review by=
review_requested by= 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`.

コントリビューションガイド

コントリビューションガイドを開く

調査の方向性

まず、報告されている `gh stack submit --auto` の2回実行による再現を行い、`submit` コマンドの更新パスを調査します。特に、既存の pull request が処理される箇所を確認してください。そのパスを `--open` の動作と比較し、`gh pr view A --json isDraft` で検証します。完了条件は、`--open` が渡されない限り、送信を繰り返しても既存のドラフトが変更されず、回帰をカバーするテストがあることです。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
github, go
領域
api, cli
issue の種類
バグ
難易度
3/5
見積もり時間
1〜2日
活発さ
活発
明瞭さ
おおむね明確
初心者へのやさしさ
58/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。