feat(wiki): --project-id 可选化,省略时自动从仓库详情解析(免手工查询平台内部 ID) #372

Merged
wbtiger merged 1 commits from Taoyouce/gitlink-cli:feat/wiki-project-id-autoresolve into master 2026-07-14 20:44:25 +08:00
Contributor

变更内容 / What

wiki 命令组的 --project-id 从必填改为可选:省略时自动调用仓库详情端点(GET /:owner/:repo.json)解析 project_id(兼容 id 字段),全部 5 个子命令(list/view/create/update/delete)统一生效;显式传入时做正整数校验并跳过额外请求。

为什么 / Why

wiki 命令此前强制用户手工传入平台内部的数字 project ID,但该 ID 无法从 URL 或仓库页面直观获得,需要额外调 repo +info 查询后再复制粘贴——对 AI Agent 与人类用户都是多余的一步。仓库详情端点已经返回 project_id(生产实测 Taoyouce/gitlink-cli 返回 1549132),CLI 应自动完成这次解析。

实现要点

  • 新增 resolveProjectID:显式值 → 正整数校验;缺省 → GET RepoPath() 解析 project_id/id(float64/string 双形状兼容),解析不到时报错提示显式传参
  • 解析发生在 switchToGateway 之前(仓库详情在主站 API,wiki 在网关)
  • 与 repo 命令组既有 resolveRepoProjectID 语义一致

测试与验证

  • 4 个新单测:list/create 自动解析(双请求流断言 projectId 注入)、非法 --project-id 前置拦截(零请求)、详情缺字段报错;既有 7 测保持通过;go test/vet/gofmt 全绿
  • 生产实测:wiki +list --owner Taoyouce --repo gitlink-cli --gateway 省略 --project-id 自动解析后到达网关(返回该仓库无 wiki 的 404,属平台数据侧);不存在仓库返回清晰的 resolve 错误;--project-id abc 前置校验报错
  • README / README.zh-CN 示例同步更新
### 变更内容 / What `wiki` 命令组的 `--project-id` 从必填改为可选:省略时自动调用仓库详情端点(`GET /:owner/:repo.json`)解析 `project_id`(兼容 `id` 字段),全部 5 个子命令(list/view/create/update/delete)统一生效;显式传入时做正整数校验并跳过额外请求。 ### 为什么 / Why wiki 命令此前强制用户手工传入平台内部的数字 project ID,但该 ID 无法从 URL 或仓库页面直观获得,需要额外调 `repo +info` 查询后再复制粘贴——对 AI Agent 与人类用户都是多余的一步。仓库详情端点已经返回 `project_id`(生产实测 Taoyouce/gitlink-cli 返回 1549132),CLI 应自动完成这次解析。 ### 实现要点 - 新增 `resolveProjectID`:显式值 → 正整数校验;缺省 → `GET RepoPath()` 解析 `project_id`/`id`(float64/string 双形状兼容),解析不到时报错提示显式传参 - 解析发生在 `switchToGateway` 之前(仓库详情在主站 API,wiki 在网关) - 与 repo 命令组既有 `resolveRepoProjectID` 语义一致 ### 测试与验证 - 4 个新单测:list/create 自动解析(双请求流断言 projectId 注入)、非法 --project-id 前置拦截(零请求)、详情缺字段报错;既有 7 测保持通过;go test/vet/gofmt 全绿 - 生产实测:`wiki +list --owner Taoyouce --repo gitlink-cli --gateway` 省略 --project-id 自动解析后到达网关(返回该仓库无 wiki 的 404,属平台数据侧);不存在仓库返回清晰的 resolve 错误;`--project-id abc` 前置校验报错 - README / README.zh-CN 示例同步更新
Taoyouce added 4 commits 2026-07-08 20:31:03 +08:00
wbtiger merged commit 35743c8ae6 into master 2026-07-14 20:44:22 +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#372
No description provided.