fix(api): 单次调用支持 :owner/:repo 占位符替换(修复 issue #20) #420

Closed
Taoyouce wants to merge 0 commits from Taoyouce/gitlink-cli:fix/api-single-call-placeholders into master
Contributor

问题(issue #20)

api 命令帮助文本示例写着 gitlink-cli api POST /:owner/:repo/issues --body ...,但单次调用并不替换路径中的 :owner/:repo 占位符,请求带字面 :owner 发出去返回 404——该替换此前只在 --batch-file--var 时可用,所有照帮助示例使用占位符的单次调用(含大量基于 Raw API 的 Skill 文档)均受影响。

修复

新增 resolvePathPlaceholders:单次调用路径中的 /:owner/:repo(及 batch 同款 {{owner}}/{{repo}})按全局 --owner/--repo 或 git remote 自动解析值替换,与既有 internal/context.ResolveOwnerRepo 语义完全一致;无占位符的路径原样返回零影响;占位符存在但 owner/repo 无法解析时给出明确错误而非发出错误请求。

验证

  • 单测 7 个场景:冒号/花括号占位符、带后缀路径、无占位符不变、字面路径不变、不可解析时报错;全仓 go test ./... 全绿、vet/gofmt 干净
  • 生产实测(2026-07-10):api GET /:owner/:repo/issues/16 --owner Gitlink --repo gitlink-cliapi GET /v1/:owner/:repo/pulls 均正确替换并返回 ok=true(修复前 404)

关联 issue:#20

## 问题(issue #20) `api` 命令帮助文本示例写着 `gitlink-cli api POST /:owner/:repo/issues --body ...`,但**单次调用**并不替换路径中的 `:owner/:repo` 占位符,请求带字面 `:owner` 发出去返回 404——该替换此前只在 `--batch-file` 配 `--var` 时可用,所有照帮助示例使用占位符的单次调用(含大量基于 Raw API 的 Skill 文档)均受影响。 ## 修复 新增 `resolvePathPlaceholders`:单次调用路径中的 `/:owner`、`/:repo`(及 batch 同款 `{{owner}}`/`{{repo}}`)按全局 `--owner/--repo` 或 git remote 自动解析值替换,与既有 `internal/context.ResolveOwnerRepo` 语义完全一致;无占位符的路径原样返回零影响;占位符存在但 owner/repo 无法解析时给出明确错误而非发出错误请求。 ## 验证 - 单测 7 个场景:冒号/花括号占位符、带后缀路径、无占位符不变、字面路径不变、不可解析时报错;全仓 `go test ./...` 全绿、vet/gofmt 干净 - 生产实测(2026-07-10):`api GET /:owner/:repo/issues/16 --owner Gitlink --repo gitlink-cli` 与 `api GET /v1/:owner/:repo/pulls` 均正确替换并返回 ok=true(修复前 404) 关联 issue:#20
Taoyouce added 6 commits 2026-07-11 00:44:42 +08:00
wbtiger closed this pull request 2026-07-14 22:55:28 +08:00
wbtiger reopened this pull request 2026-07-14 23:01:23 +08:00
wbtiger closed this pull request 2026-07-14 23:04:05 +08:00

Pull request closed

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#420
No description provided.