API 参考 / changes

工作项 / 缺陷 activity

GET /api/v1/work-items/{workItemId}/activity · listWorkItemActivity

读取当前项目中与该工作项(缺陷即 type=bug 的工作项)相关的 ChangeSet/Event——「谁在何时做了什么」 的操作记录,供缺陷 / 子任务详情的操作记录视图。与 /requirements/{id}/activity 同形状返回 ChangeSetList,客户端用 nextSeq 继续拉取。 匹配三类事件:① 直接工作项事件(payload.id 或 payload.workItemId 命中本对象); ② 挂在本对象上的子资源事件(评论 / 附件:payload.targetId 命中且 payload.targetType 属工作项家族——work_item 与 bug 两个别名都算同一个对象,不因写侧声明差异漏读)。 鉴权模块按目标条目自身的 type 判定(与 GET /work-items/{workItemId} 同闸): 缺陷(type=bug)要求 bugs >= read,其余要求 subtasks >= read。 操作记录是对象自身的严格子集,读得了对象才读得了它的历史,不比读对象更松也不更严。

结果集按调用者 moduleAccess 逐行过滤(B-00216)。 进得来不等于看得全:条目按其对象所属 模块判定归属,调用者对该模块等级为 none 的条目不下发;判不出归属的对象条目一律不下发。 因为过滤发生在取数之后,实际返回条数可能少于 limit——分页请以 nextSeq / nextCursor 为准, 不要用「不足 limit」判定已到末页。归属表见 docs/api/guides/activity.md。

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

参数

workItemId(必填)
string
sinceSeq
integer
limit
integer

响应字段 · 200

items(必填)
ChangeSet[]
items[].id(必填)
string
items[].seq(必填)
integer
items[].actorId(必填)
string
items[].kind(必填)
string
items[].summary(必填)
string
items[].createdAt(必填)
string
items[].events(必填)
DomainEvent[]
items[].events[].id(必填)
string
items[].events[].changeSetId(必填)
string
items[].events[].type(必填)
string
items[].events[].payload(必填)
object
items[].events[].occurredAt(必填)
string
nextSeq(必填)
integer

错误

请求示例(curl)

curl -X GET "https://你的项目.workflow.games/api/v1/work-items/{workItemId}/activity?sinceSeq=…&limit=…" \
  -H "Authorization: Bearer wfp_…"

响应示例

HTTP/1.1 200
{
  "items": [
    {
      "id": "018f3c2e-0000-7000-8000-000000000000",
      "seq": 1,
      "actorId": "018f3c2e-0000-7000-8000-000000000000",
      "kind": "示例文本",
      "summary": "一段描述文字",
      "createdAt": "示例文本",
      "events": [
        {}
      ]
    }
  ],
  "nextSeq": 1
}

合同真值:OpenAPI 3.1(0.1.0)。

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

Workflow 正在加载…