fix: 完善仓库 README 快捷命令

This commit is contained in:
Mengz 2026-06-05 16:53:57 +08:00
parent 52b7093846
commit 245a3d52d7
7 changed files with 24 additions and 9 deletions

View File

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

View File

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

View File

@ -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 错误返回等路径,确保后续调整不会破坏请求路径或查询参数。

View File

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

View File

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

View File

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

View File

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