已关闭
feat(pr,repo): add pr issues and repo branch view commands #264
caolongheng创建于 6月5日关闭于 6月14日
6月5日 修改了issue 的描述
langjitianya008
6月9日 评论:
6月9日 评论:
6月9日 关联了pull request:feat(pr,repo): add pr issues and repo branch view commands
langjitianya008
6月9日 评论:
6月9日 评论:
开发进度
- 根因: CLI 缺少
pr issues和repo branch view子命令,脚本/agent 需通过gc api自封装 HTTP 调用 - 主要修改:
api/queries_pr.go: 新增ListPRIssues函数(url.PathEscape 编码)api/queries_repo.go: 新增Branch/BranchCommit类型,GetBranch函数(url.PathEscape 编码)pkg/cmd/pr/issues/: 新增pr issues子命令及测试(7个测试用例)pkg/cmd/repo/branch/: 新增repo branch view子命令及测试(5个测试用例)pkg/cmd/pr/pr.go: 注册issues子命令pkg/cmd/repo/repo.go: 注册branch命令组docs/COMMANDS.md: 新增两个命令文档、更新 --json 支持列表和自动推断边界
- 测试:
go test ./pkg/cmd/pr/issues/... ./pkg/cmd/repo/branch/...全部通过 - 构建:
go build成功 - 实际命令验证:
gc pr issues --help和gc repo branch view --help输出正确 - 安全影响: 无硬编码 token,API 路径使用 url.PathEscape 防止注入,使用认证客户端
- 风险或未覆盖项: 未做真实远端命令验证;
api --paginate(缺口3)不在本 PR 范围 - 关联 PR: #237


langjitianya008
6月14日 评论:
6月14日 评论:
开发进度
- 根因: CLI 缺少
pr issues和repo branch view子命令,脚本/agent 需通过gc api自封装 HTTP 调用 - 主要修改:
- 新增
api.ListPRIssues和api.GetBranch函数 - 新增
gc pr issues <number>子命令及测试(12个测试用例) - 新增
gc repo branch view <branch>子命令及测试(9个测试用例) - 命令注册和文档更新
- 新增
- 测试:
go test ./pkg/cmd/pr/issues/... ./pkg/cmd/repo/branch/...— 全部通过 - 实际命令验证:
./gc pr issues --help/./gc repo branch view --help— 帮助输出正确 - 安全影响: API 路径使用 url.PathEscape 防止注入,使用认证客户端,无凭证泄漏
- 风险或未覆盖项: 未做真实远端命令验证;
api --paginate(缺口3)不在本 PR 范围 - 关联 PR: #237


需求背景
OpenLibing 工作区的
gitcode-pr-reportskill 需要生成 release 分支「已合并 PR → 关联 Issue」门禁报告。根据 AGENTS.md 约束,所有 GitCode 远端交互应统一走gitcodeCLI(认证、分页、JSON 输出),避免脚本自封装 HTTP 与 token 管理。当前 skill 脚本
gitcode-api.mjs仍通过自封装 fetch 调用部分 API。经调研(gitcode v0.6.0,Windows,GC_TOKEN 认证),以下能力缺口导致无法完全迁移到 CLI。功能描述
缺口 1:
pr issues子命令(优先级最高)现状:
gitcode pr无issues子命令;gitcode pr view --json不含 linked issues 字段。当前 workaround:
期望:
gitcode pr issues <number> -R owner/repo --json对应 API:
GET /api/v5/repos/{owner}/{repo}/pulls/{number}/issues用例:release 报告需对每个 merged PR 查询关联 Issue(N+1 调用)。有一等命令后可删除脚本内自封装 fetch。
缺口 2:
repo branch view子命令现状:
gitcode repo无 branch 相关子命令。当前 workaround:
期望(二选一,推荐前者以保持与
repo view风格一致):gitcode repo branch view <branch> -R owner/repo --json # 或 gitcode repo view -R owner/repo --branch <branch> --json对应 API:
GET /api/v5/repos/{owner}/{repo}/branches/{branch}用例:获取分支最新 commit id(
commit.id),用于报告输出目录命名(取前 8 位)。缺口 3(可选 enhancement):
gitcode api --paginate现状:
gitcode api不支持--paginate;gitcode pr list --paginate已支持。期望:
用例:通用 API 请求支持自动翻页,减少脚本自写分页逻辑。本需求优先级低于缺口 1/2。
使用场景
base={release_branch}的 merged PR,逐 PR 查关联 Issue,生成 Markdown 对照表。gitcode认证与 JSON 输出,符合 OpenLibing AGENTS.md 远端交互规范。已验证可用的 CLI(无需本 issue 覆盖)
gitcode pr list -R owner/repo --state merged --base {branch} --paginate --jsongitcode repo view -R owner/repo --jsongitcode auth status(GC_TOKEN)不适用的替代方案
gitcode issue relations:从 Issue 侧查 PR,无 base 分支过滤,默认 limit 100,不含 PR 作者信息;语义与 release 报告(从 merged PR 反查 Issue、以 PR 作者为责任人)不符。gitcode issue prs(#22 已实现):方向相反(Issue → PR),不能替代 PR → Issue。验收标准
gitcode pr issuesgitcode repo branch viewgitcode api --paginate(可选)环境信息
gitcode auth status已验证)关联 issue/PR
issue prs(Issue → PR),与本需求方向互补api --paginate相关但范围不同