github / github/gh-stack

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

Đang mở
#481 0 bình luận 0 reaction 0 người được giao Xem trên GitHub
Ngôn ngữ chính
Go
Star
1.5k
Fork
70
Merge trung bình
1 ngày 8 giờ
Pull request đã merge (30 ngày)
7

Mô tả

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

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Hướng nghiên cứu

Bắt đầu bằng cách chạy bản tái hiện hai lượt đã được báo cáo với `gh stack submit --auto` và kiểm tra luồng cập nhật của lệnh `submit`, đặc biệt là nơi các pull request hiện có được xử lý. So sánh luồng đó với hành vi của `--open` và xác minh bằng `gh pr view A --json isDraft`; hoàn thành có nghĩa là các lần gửi lặp lại giữ nguyên các draft hiện có trừ khi truyền `--open`, với các bài kiểm thử bao quát hồi quy này.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
github, go
Lĩnh vực
api, cli
Loại issue
Lỗi
Độ khó
3/5
Thời gian dự kiến
1-2 ngày
Mức độ hoạt động
Sôi nổi
Độ rõ ràng
Khá rõ ràng
Mức phù hợp với người mới
58/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.