在为Gitlab问题实现自定义webhook处理程序时,我很难找到如何在钩子触发之前确定字段的先前值。
作为参考,this是webhooks文档,特定于问题的有效负载看起来有点像:
{
"object_attributes": {
"action": "update",
"url": "https://example.com/foo/bar/issues/10",
"iid": 10,
"state": "opened",
"milestone_id": null,
"description": "44",
"branch_name": null,
"position": 0,
"updated_at": "2015-11-07 17:39:47 +0000",
"created_at": "2015-11-07 17:06:07 +0000",
"project_id": 51,
"author_id": 6,
"assignee_id": null,
"title": "123",
"id": 180
},
"user": {
"avatar_url": "https://example.com/uploads/user/avatar/6.jpg",
"username": "shabble",
"name": "real name"
},
"object_kind": "issue"
}
修改问题时。
在此示例中,assignee_id
已从我自己更改为null
,但似乎无法确定更新前的前一个值(即我)。
几乎所有可编辑字段都是如此,包括整个问题描述等内容。因此,可以告诉它现在是什么,也许最后一次更改它,但看不到任何先前的更改。
是否有任何地方可以找到这些信息(以前的状态),可能是通过gitlab issues API找到的,虽然我没有找到任何合理的信息。
唯一的选择似乎是一个单独的系统来记录每个钩子的值,然后当一个后续钩子进入匹配相同的问题时,差异最后一个记录来确定变化。这将不太理想。
还有其他想法吗?