refactor: rename pr +close to pr +refuse #105

Merged
wbtiger merged 1 commits from muel/gitlink-cli:rename/pr-close-to-refuse into master 2026-06-03 23:20:11 +08:00
5 changed files with 22 additions and 21 deletions

View File

@ -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},
},

View File

@ -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")
}

View File

@ -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

View File

@ -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

View File

@ -1,6 +1,6 @@
# pr +reopen
Reopen a closed Pull Request.
Reopen a closed or refused Pull Request.
## Usage