refactor: rename pr +close to pr +refuse
The `pr +close` shortcut called the `refuse_merge` API, which is misleading — "close" suggests a benign operation, but the actual behavior is to refuse/reject the pull request permanently. Rename the shortcut to `pr +refuse` so the name matches the API semantics, and add a warning in the docs that it must never be used as a substitute for `pr +merge`. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
parent
0e13e8bdd4
commit
83fe18f8c0
|
|
@ -120,8 +120,8 @@ func Shortcuts(translators ...*i18n.Translator) []*common.Shortcut {
|
|||
},
|
||||
},
|
||||
{
|
||||
Name: "close",
|
||||
Description: tr.T("cmd.pr.close.short"),
|
||||
Name: "refuse",
|
||||
Description: "Refuse and close a pull request",
|
||||
Flags: []common.Flag{
|
||||
{Name: "id", Short: "i", Usage: tr.T("flag.pr.id"), Required: true},
|
||||
},
|
||||
|
|
|
|||
|
|
@ -232,9 +232,9 @@ func TestPRMergeSquash(t *testing.T) {
|
|||
assertEqual(t, payload["do"], "squash")
|
||||
}
|
||||
|
||||
// --- close ---
|
||||
// --- refuse ---
|
||||
|
||||
func TestPRClose(t *testing.T) {
|
||||
func TestPRRefuse(t *testing.T) {
|
||||
server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
||||
if r.Method != "POST" {
|
||||
t.Fatalf("expected POST, got %s", r.Method)
|
||||
|
|
@ -246,9 +246,9 @@ func TestPRClose(t *testing.T) {
|
|||
}))
|
||||
defer server.Close()
|
||||
|
||||
err := runPRShortcut(t, server, "close", map[string]string{"id": "42"})
|
||||
err := runPRShortcut(t, server, "refuse", map[string]string{"id": "42"})
|
||||
if err != nil {
|
||||
t.Fatalf("close failed: %v", err)
|
||||
t.Fatalf("refuse failed: %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -387,14 +387,14 @@ func TestPRMergeHTTPError(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
func TestPRCloseHTTPError(t *testing.T) {
|
||||
func TestPRRefuseHTTPError(t *testing.T) {
|
||||
server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
||||
w.WriteHeader(http.StatusInternalServerError)
|
||||
w.Write([]byte("server error"))
|
||||
}))
|
||||
defer server.Close()
|
||||
|
||||
err := runPRShortcut(t, server, "close", map[string]string{"id": "42"})
|
||||
err := runPRShortcut(t, server, "refuse", map[string]string{"id": "42"})
|
||||
if err == nil {
|
||||
t.Fatal("expected error for HTTP 500")
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ metadata:
|
|||
| `pr +create` | 创建 PR | 是 |
|
||||
| `pr +view` | PR 详情 | 否(公开项目) |
|
||||
| `pr +merge` | 合并 PR | 是 |
|
||||
| `pr +close` | 关闭 PR | 是 |
|
||||
| `pr +refuse` | 拒绝并关闭 PR | 是 |
|
||||
| `pr +reopen` | 重开已关闭的 PR | 是 |
|
||||
| `pr +files` | 变更文件列表 | 否 |
|
||||
| `pr +diff` | 查看变更文件和 diff 内容 | 否 |
|
||||
|
|
@ -49,8 +49,8 @@ gitlink-cli pr +view --id 3
|
|||
gitlink-cli pr +merge --id 3
|
||||
gitlink-cli pr +merge --id 3 --method squash
|
||||
|
||||
# 关闭 PR(拒绝合并)
|
||||
gitlink-cli pr +close --id 3
|
||||
# 拒绝 PR(拒绝合并并关闭)
|
||||
gitlink-cli pr +refuse --id 3
|
||||
|
||||
# 重开已关闭的 PR
|
||||
gitlink-cli pr +reopen --id 3
|
||||
|
|
|
|||
|
|
@ -1,17 +1,17 @@
|
|||
# pr +close
|
||||
# pr +refuse
|
||||
|
||||
> **前置条件:** 先阅读 [`../../gitlink-shared/SKILL.md`](../../gitlink-shared/SKILL.md) 了解认证、全局参数和安全规则。
|
||||
|
||||
关闭(拒绝合并)一个 Pull Request。
|
||||
拒绝一个 Pull Request(调用 `refuse_merge`,拒绝合并并关闭 PR)。
|
||||
|
||||
## 命令
|
||||
|
||||
```bash
|
||||
# 关闭 PR
|
||||
gitlink-cli pr +close --id 3
|
||||
# 拒绝 PR
|
||||
gitlink-cli pr +refuse --id 3
|
||||
|
||||
# 简写
|
||||
gitlink-cli pr +close -i 3
|
||||
gitlink-cli pr +refuse -i 3
|
||||
```
|
||||
|
||||
## 参数
|
||||
|
|
@ -29,16 +29,17 @@ POST /{owner}/{repo}/pulls/{number}/refuse_merge
|
|||
## Workflow
|
||||
|
||||
> [!CAUTION]
|
||||
> This is a **Write Operation** -- confirm user intent before executing.
|
||||
> This is a **destructive Write Operation** -- confirm user intent before executing.
|
||||
|
||||
1. 使用 `pr +view -i <id>` 确认 PR 状态为 open(`pull_request_status: 0`)
|
||||
2. 确认用户确实要关闭此 PR(此操作会拒绝合并)
|
||||
3. 执行 `pr +close -i <id>`
|
||||
2. 确认用户确实要**拒绝**此 PR(此操作不可逆,会关闭 PR 并标记为已拒绝)
|
||||
3. 执行 `pr +refuse -i <id>`
|
||||
|
||||
## 注意事项
|
||||
|
||||
- 此操作调用 `refuse_merge` 端点,即**拒绝合并**
|
||||
- 关闭后 PR 状态变为 closed(`pull_request_status: 2`)
|
||||
- 拒绝后 PR 状态变为 closed(`pull_request_status: 2`)
|
||||
- ⛔ **不要用 `pr +refuse` 代替 `pr +merge`**:如果 PR 已被手动合并到 master,不要使用此命令来关闭 PR
|
||||
- 需要对仓库有相应权限
|
||||
|
||||
## References
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
# pr +reopen
|
||||
|
||||
Reopen a closed Pull Request.
|
||||
Reopen a closed or refused Pull Request.
|
||||
|
||||
## Usage
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue