API 参考 / project-versions

新增项目版本

POST /api/v1/projects/{projectId}/versions · createProjectVersion

需要 manage_project_settings。 日期序校验(B-00223 / B-00311):startOn <= freezeOn <= targetOn,任一逆序返回 422—— 版本窗口是排期 / 里程碑的锚点,负工期窗口会污染后续排期计算与 Gantt 渲染。 freezeOn(封版日)是可选字段:给了才参与校验,也才会让排期风险里的「封版窗口」一类真正可能触发 (后端 risksFor 的 freeze 分支要求 release.FreezeOn != "")。

鉴权:项目 API Token(Authorization: Bearer wfp_…)。详见 Agent 接入。

参数

projectId(必填)
string
Idempotency-Key
string —— 幂等键(建议用 UUID,最长 255 字符)。重复提交同键且请求体一致时返回首次创建的结果(200)而不新建对象;请求体不一致返回 409。有效期 24 小时。

请求体

name(必填)
string
kind
enum;取值:version / patch / hotfix
startOn(必填)
string
targetOn(必填)
string
freezeOn
string
bufferDays
integer
status
enum;取值:planned / active / shipped / archived

响应字段 · 201

id(必填)
string
displayKey(必填)
string
name(必填)
string
kind(必填)
enum;取值:version / patch / hotfix
startOn(必填)
string
targetOn(必填)
string
freezeOn
string
bufferDays(必填)
integer
status(必填)
enum;取值:planned / active / shipped / archived
isCurrent(必填)
boolean —— 是否为项目当前版本;同一项目同一时刻至多一个 true,由"设为当前"命令互斥维护。

响应字段 · 200

id(必填)
string
displayKey(必填)
string
name(必填)
string
kind(必填)
enum;取值:version / patch / hotfix
startOn(必填)
string
targetOn(必填)
string
freezeOn
string
bufferDays(必填)
integer
status(必填)
enum;取值:planned / active / shipped / archived
isCurrent(必填)
boolean —— 是否为项目当前版本;同一项目同一时刻至多一个 true,由"设为当前"命令互斥维护。

错误

请求示例(curl)

curl -X POST "https://你的项目.workflow.games/api/v1/projects/{projectId}/versions" \
  -H "Authorization: Bearer wfp_…" \
  -H "content-type: application/json" \
  --data '{"name":"示例标题","startOn":"2026-08-01","targetOn":"2026-08-01"}'

响应示例

HTTP/1.1 201
{
  "id": "018f3c2e-0000-7000-8000-000000000000",
  "displayKey": "示例文本",
  "name": "示例标题",
  "kind": "version",
  "startOn": "2026-08-01",
  "targetOn": "2026-08-01",
  "bufferDays": 1,
  "status": "planned",
  "isCurrent": true
}

合同真值:OpenAPI 3.1(0.1.0)。

相关:Agent 接入指南 · 使用指南 · API 参考索引

Workflow 正在加载…