From 245a3d52d729006166a0ee230c680f4bbbfe5512 Mon Sep 17 00:00:00 2001 From: Mengz <2567587994@qq.com> Date: Fri, 5 Jun 2026 16:53:57 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=AE=8C=E5=96=84=E4=BB=93=E5=BA=93=20R?= =?UTF-8?q?EADME=20=E5=BF=AB=E6=8D=B7=E5=91=BD=E4=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 1 + README.zh-CN.md | 1 + doc/changes/repo-readme-shortcut.md | 7 +++++++ internal/i18n/locales/en-US.json | 5 ++++- internal/i18n/locales/zh-CN.json | 5 ++++- shortcuts/repo/repo.go | 10 +++++----- shortcuts/repo/repo_test.go | 4 ++-- 7 files changed, 24 insertions(+), 9 deletions(-) create mode 100644 doc/changes/repo-readme-shortcut.md diff --git a/README.md b/README.md index b43dcd1..d0c58c2 100644 --- a/README.md +++ b/README.md @@ -211,6 +211,7 @@ gitlink-cli repo +info --owner Gitlink --repo forgeplus # Read repository README gitlink-cli repo +readme --owner Gitlink --repo forgeplus --ref master +gitlink-cli repo +readme --owner Gitlink --repo forgeplus --ref master --path docs # List repository files at root or a directory gitlink-cli repo +tree --owner Gitlink --repo forgeplus --ref master diff --git a/README.zh-CN.md b/README.zh-CN.md index 265ac98..1f57797 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -222,6 +222,7 @@ gitlink-cli repo +info --owner Gitlink --repo forgeplus # 读取仓库 README gitlink-cli repo +readme --owner Gitlink --repo forgeplus --ref master +gitlink-cli repo +readme --owner Gitlink --repo forgeplus --ref master --path docs # 列出仓库根目录或指定目录文件 gitlink-cli repo +tree --owner Gitlink --repo forgeplus --ref master diff --git a/doc/changes/repo-readme-shortcut.md b/doc/changes/repo-readme-shortcut.md new file mode 100644 index 0000000..021204f --- /dev/null +++ b/doc/changes/repo-readme-shortcut.md @@ -0,0 +1,7 @@ +# 完善仓库 README 快捷命令 + +`repo +readme` 现在补齐了中英文帮助文案、README 使用示例和 `gitlink-repo` Skill 说明,日常查看仓库 README 或子目录 README 时不再需要退回到 Raw API。 + +命令会把 `--ref` 传给 README API 的 `ref` 查询参数,把 `--path` 规范化后传给 `filepath` 查询参数,支持类似 `--path docs`、`--path /docs/guide/` 的子目录 README 查询方式。 + +本次变更同时补充了仓库 README 快捷命令的单元测试,覆盖默认查询、指定分支和子目录、HTTP 错误返回等路径,确保后续调整不会破坏请求路径或查询参数。 diff --git a/internal/i18n/locales/en-US.json b/internal/i18n/locales/en-US.json index c8df7cf..2f9f347 100644 --- a/internal/i18n/locales/en-US.json +++ b/internal/i18n/locales/en-US.json @@ -228,5 +228,8 @@ "success.config.set": "✓ {key} = {value}", "warning.auth.not_logged_in": "✗ Not logged in", "warning.auth.token_unverified": "✓ Token stored (but cannot verify: {message})", - "warning.auth.user_unavailable": "✓ Token stored (user info unavailable)" + "warning.auth.user_unavailable": "✓ Token stored (user info unavailable)", + "cmd.repo.readme.short": "Read repository README file", + "flag.repo.readme_ref": "Branch, tag, or commit SHA", + "flag.repo.readme_path": "Directory path containing the README, for example docs" } diff --git a/internal/i18n/locales/zh-CN.json b/internal/i18n/locales/zh-CN.json index 7fdc2b1..70a02b6 100644 --- a/internal/i18n/locales/zh-CN.json +++ b/internal/i18n/locales/zh-CN.json @@ -228,5 +228,8 @@ "success.config.set": "✓ 已设置 {key} = {value}", "warning.auth.not_logged_in": "✗ 未登录", "warning.auth.token_unverified": "✓ Token 已保存(但无法验证:{message})", - "warning.auth.user_unavailable": "✓ Token 已保存(用户信息不可用)" + "warning.auth.user_unavailable": "✓ Token 已保存(用户信息不可用)", + "cmd.repo.readme.short": "???? README ??", + "flag.repo.readme_ref": "?????? Commit SHA", + "flag.repo.readme_path": "README ????????? docs" } diff --git a/shortcuts/repo/repo.go b/shortcuts/repo/repo.go index 06774a6..ed70bbe 100644 --- a/shortcuts/repo/repo.go +++ b/shortcuts/repo/repo.go @@ -58,20 +58,20 @@ func Shortcuts(translators ...*i18n.Translator) []*common.Shortcut { }, { Name: "readme", - Description: "Show repository README content", + Description: tr.T("cmd.repo.readme.short"), Flags: []common.Flag{ - {Name: "ref", Usage: "Branch, tag, or commit SHA"}, - {Name: "path", Usage: "README directory path"}, + {Name: "ref", Usage: tr.T("flag.repo.readme_ref")}, + {Name: "path", Usage: tr.T("flag.repo.readme_path")}, }, Run: func(ctx *common.RuntimeContext) error { if err := ctx.ResolveOwnerRepo(); err != nil { return err } q := url.Values{} - if ref := ctx.Arg("ref"); ref != "" { + if ref := strings.TrimSpace(ctx.Arg("ref")); ref != "" { q.Set("ref", ref) } - if path := ctx.Arg("path"); path != "" { + if path := strings.Trim(strings.TrimSpace(ctx.Arg("path")), "/"); path != "" { q.Set("filepath", path) } env, err := ctx.CallAPIWithQuery("GET", ctx.RepoPath()+"/readme", q) diff --git a/shortcuts/repo/repo_test.go b/shortcuts/repo/repo_test.go index 5c5f34b..0472ca0 100644 --- a/shortcuts/repo/repo_test.go +++ b/shortcuts/repo/repo_test.go @@ -144,8 +144,8 @@ func TestRepoReadmeUsesRepositoryReadmeEndpoint(t *testing.T) { defer server.Close() err := runShortcut(t, server, "readme", map[string]string{ - "ref": "main", - "path": "docs", + "ref": " main ", + "path": " /docs/ ", }) if err != nil { t.Fatalf("readme shortcut failed: %v", err)