fix(milestone): +create 的 --description/--due-date 放宽为可选,与平台 API 对齐 #336

Merged
wbtiger merged 1 commits from Taoyouce/gitlink-cli:fix/milestone-create-optional-fields into master 2026-07-14 20:37:46 +08:00
Contributor

问题

milestone +create--description--due-date 标记为必填,但平台 v1 API 创建里程碑仅要求 name(已在生产环境 POST /api/v1/:owner/:repo/milestones 用仅含 {"name": ...} 的请求验证成功)。CLI 侧的额外限制迫使用户为可选字段编造内容。

变更

  • --description / --due-date 改为可选;未提供时请求体中省略对应字段
  • milestonePayloadrequireAll 收敛为 requireName,仅校验 --name
  • 新增单测 TestMilestoneCreateNameOnly(断言未提供的可选字段不出现在请求体)
  • 补充 doc/changes/milestone-create-optional-fields.md

验证

  • go test ./shortcuts/milestone/ / go vet / gofmt 全绿
  • 生产 gitlink.org.cn 实测:milestone +create -n <name> 仅带名称创建成功(验证用里程碑已清理)
## 问题 `milestone +create` 把 `--description` 与 `--due-date` 标记为必填,但平台 v1 API 创建里程碑仅要求 `name`(已在生产环境 `POST /api/v1/:owner/:repo/milestones` 用仅含 `{"name": ...}` 的请求验证成功)。CLI 侧的额外限制迫使用户为可选字段编造内容。 ## 变更 - `--description` / `--due-date` 改为可选;未提供时请求体中省略对应字段 - `milestonePayload` 的 `requireAll` 收敛为 `requireName`,仅校验 `--name` - 新增单测 `TestMilestoneCreateNameOnly`(断言未提供的可选字段不出现在请求体) - 补充 `doc/changes/milestone-create-optional-fields.md` ## 验证 - `go test ./shortcuts/milestone/` / `go vet` / gofmt 全绿 - 生产 gitlink.org.cn 实测:`milestone +create -n <name>` 仅带名称创建成功(验证用里程碑已清理)
Taoyouce added 1 commit 2026-07-05 20:11:51 +08:00
f43afa75a6 fix(milestone): make +create --description/--due-date optional to match platform API
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
wbtiger merged commit 4089f46cd8 into master 2026-07-14 20:37:34 +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#336
No description provided.