feat(repo): 新增 repo +tree 文件树查询命令 #143

Merged
wbtiger merged 4 commits from ohanabi/gitlink-cli:feat/repo-tree-shortcut-final into master 2026-06-09 01:18:10 +08:00
Contributor

背景

gitlink-cli repo 已经提供仓库信息、README、语言统计、贡献者等查询能力,但缺少一个直接查看仓库目录结构的 Shortcut。

在 AI Agent 自动化、科研仓库复现性检查、开源合规检查等场景中,Agent 需要频繁判断仓库根目录或指定目录下是否存在 README、LICENSE、依赖清单、测试目录、文档目录等文件。此前只能手动调用 Raw API /sub_entries,使用门槛较高,也不利于在 Skill 和工作流中复用。

实现内容

本 PR 新增 gitlink-cli repo +tree,将仓库文件树查询封装为 repo 域的一等 Shortcut。

具体实现:

  • 新增 repo +tree Shortcut
  • 通过 GET /{owner}/{repo}/sub_entries 获取仓库文件和目录列表
  • 支持 --path, -p 指定要查看的目录,默认查看仓库根目录
  • 支持 --ref, -r 指定分支、标签或提交,默认 master
  • 复用现有 ResolveOwnerRepoCallAPIWithQuery 和统一输出逻辑
  • 新增英文和中文 i18n 文案,避免新增命令 help 文案硬编码

交付内容

  • 功能代码:shortcuts/repo/repo.go
  • 单元测试:shortcuts/repo/repo_test.go
  • 命令帮助文档更新:README.mdREADME.zh-CN.mdskills/gitlink-repo/SKILL.mdskills/gitlink-repo/references/gitlink-repo-tree.md
  • 变更说明文档:doc/changes/repo-tree-shortcut.md

使用示例

# 查看仓库根目录
gitlink-cli repo +tree --owner Gitlink --repo forgeplus --ref master

# 查看指定目录
gitlink-cli repo +tree --owner Gitlink --repo forgeplus --path src --ref main

# Agent 场景建议输出 JSON
gitlink-cli repo +tree --owner Gitlink --repo forgeplus --format json

价值

  • 降低用户查询仓库目录结构的使用门槛
  • 让 Agent 不必直接拼 Raw API,即可稳定获取仓库文件树
  • 支撑项目结构检查、文档完整性检查、科研复现性检查和合规检查等自动化工作流
  • 与现有 repo +readmerepo +languagesrepo +contributors 等能力形成互补

测试

make test

测试结果:通过,实际执行 go test -race ./...

兼容性

该改动只新增 Shortcut、单元测试和文档,不修改已有命令参数或输出结构,对现有功能无破坏性影响。

## 背景 `gitlink-cli repo` 已经提供仓库信息、README、语言统计、贡献者等查询能力,但缺少一个直接查看仓库目录结构的 Shortcut。 在 AI Agent 自动化、科研仓库复现性检查、开源合规检查等场景中,Agent 需要频繁判断仓库根目录或指定目录下是否存在 README、LICENSE、依赖清单、测试目录、文档目录等文件。此前只能手动调用 Raw API `/sub_entries`,使用门槛较高,也不利于在 Skill 和工作流中复用。 ## 实现内容 本 PR 新增 `gitlink-cli repo +tree`,将仓库文件树查询封装为 repo 域的一等 Shortcut。 具体实现: - 新增 `repo +tree` Shortcut - 通过 `GET /{owner}/{repo}/sub_entries` 获取仓库文件和目录列表 - 支持 `--path, -p` 指定要查看的目录,默认查看仓库根目录 - 支持 `--ref, -r` 指定分支、标签或提交,默认 `master` - 复用现有 `ResolveOwnerRepo`、`CallAPIWithQuery` 和统一输出逻辑 - 新增英文和中文 i18n 文案,避免新增命令 help 文案硬编码 ## 交付内容 - 功能代码:`shortcuts/repo/repo.go` - 单元测试:`shortcuts/repo/repo_test.go` - 命令帮助文档更新:`README.md`、`README.zh-CN.md`、`skills/gitlink-repo/SKILL.md`、`skills/gitlink-repo/references/gitlink-repo-tree.md` - 变更说明文档:`doc/changes/repo-tree-shortcut.md` ## 使用示例 ```bash # 查看仓库根目录 gitlink-cli repo +tree --owner Gitlink --repo forgeplus --ref master # 查看指定目录 gitlink-cli repo +tree --owner Gitlink --repo forgeplus --path src --ref main # Agent 场景建议输出 JSON gitlink-cli repo +tree --owner Gitlink --repo forgeplus --format json ``` ## 价值 - 降低用户查询仓库目录结构的使用门槛 - 让 Agent 不必直接拼 Raw API,即可稳定获取仓库文件树 - 支撑项目结构检查、文档完整性检查、科研复现性检查和合规检查等自动化工作流 - 与现有 `repo +readme`、`repo +languages`、`repo +contributors` 等能力形成互补 ## 测试 ```bash make test ``` 测试结果:通过,实际执行 `go test -race ./...`。 ## 兼容性 该改动只新增 Shortcut、单元测试和文档,不修改已有命令参数或输出结构,对现有功能无破坏性影响。
ohanabi added 3 commits 2026-06-08 12:00:01 +08:00
ohanabi added 1 commit 2026-06-08 12:13:09 +08:00
wbtiger merged commit 462ae7b012 into master 2026-06-09 01:18:10 +08:00
Sign in to join this conversation.
No reviewers
No Label
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: Gitlink/gitlink-cli#143
No description provided.