diff --git a/shortcuts/pr/pr.go b/shortcuts/pr/pr.go index afabca8..6374499 100644 --- a/shortcuts/pr/pr.go +++ b/shortcuts/pr/pr.go @@ -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}, }, diff --git a/shortcuts/pr/pr_test.go b/shortcuts/pr/pr_test.go index 6a86afe..0eec121 100644 --- a/shortcuts/pr/pr_test.go +++ b/shortcuts/pr/pr_test.go @@ -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") } diff --git a/skills/gitlink-pr/SKILL.md b/skills/gitlink-pr/SKILL.md index 77e0cec..767fb4c 100644 --- a/skills/gitlink-pr/SKILL.md +++ b/skills/gitlink-pr/SKILL.md @@ -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 diff --git a/skills/gitlink-pr/references/gitlink-pr-close.md b/skills/gitlink-pr/references/gitlink-pr-refuse.md similarity index 56% rename from skills/gitlink-pr/references/gitlink-pr-close.md rename to skills/gitlink-pr/references/gitlink-pr-refuse.md index 1a4ca24..6fd1332 100644 --- a/skills/gitlink-pr/references/gitlink-pr-close.md +++ b/skills/gitlink-pr/references/gitlink-pr-refuse.md @@ -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 ` 确认 PR 状态为 open(`pull_request_status: 0`) -2. 确认用户确实要关闭此 PR(此操作会拒绝合并) -3. 执行 `pr +close -i ` +2. 确认用户确实要**拒绝**此 PR(此操作不可逆,会关闭 PR 并标记为已拒绝) +3. 执行 `pr +refuse -i ` ## 注意事项 - 此操作调用 `refuse_merge` 端点,即**拒绝合并** -- 关闭后 PR 状态变为 closed(`pull_request_status: 2`) +- 拒绝后 PR 状态变为 closed(`pull_request_status: 2`) +- ⛔ **不要用 `pr +refuse` 代替 `pr +merge`**:如果 PR 已被手动合并到 master,不要使用此命令来关闭 PR - 需要对仓库有相应权限 ## References diff --git a/skills/gitlink-pr/references/gitlink-pr-reopen.md b/skills/gitlink-pr/references/gitlink-pr-reopen.md index 6c2505e..531d688 100644 --- a/skills/gitlink-pr/references/gitlink-pr-reopen.md +++ b/skills/gitlink-pr/references/gitlink-pr-reopen.md @@ -1,6 +1,6 @@ # pr +reopen -Reopen a closed Pull Request. +Reopen a closed or refused Pull Request. ## Usage