Phabricator配置WebHook实现代码变更的自动处理 2018-05-09 14:42:36 近期在团队内部推行了基于Phabricator的Code Review机制,需要为Phabricator配置WebHook实现有人更新了Code Review代码时,通知其他系统做更新。 一开始,根据官方的资料:<https://secure.phabricator.com/book/phabricator/article/webhooks/>尝试添加WebHook,一直提示URI在黑名单列表中,无法添加成功。 后来有Google了相关资料,发现官方不建议通过Herald做WebHook:<https://secure.phabricator.com/T5462>,就尝试了下这种方案,发现确实比较简单。 ## 配置WebHook 需要在后台进行,进入Phabricator的安装目录,执行: ```shell # http://stanzhai.site:3000/phabricator是我自己开发的一个HttpServer ./bin/config set feed.http-hooks '["http://stanzhai.site:3000/phabricator"]' ``` ## WebHook消息格式 Phabricator发送的是POST请求,请求体是JSON格式的,下马是创建一个Code Review的消息格式: ```json { "storyID": "178", "storyType": "PhabricatorApplicationTransactionFeedStory", "storyData[objectPHID]": "PHID-DREV-brrkl4jmootosao6j6ie", "storyData[transactionPHIDs][PHID-XACT-DREV-clyo25tlzdamth5]": "PHID-XACT-DREV-clyo25tlzdamth5", "storyAuthorPHID": "PHID-USER-notf2vhdiknmcndq77w4", "storyText": "stanzhai created D12: test.", "epoch": "1525846985" } ``` 对某个diff_id的代码做更新的消息格式为: ```json { "storyID": "179", "storyType": "PhabricatorApplicationTransactionFeedStory", "storyData[objectPHID]": "PHID-DREV-brrkl4jmootosao6j6ie", "storyData[transactionPHIDs][PHID-XACT-DREV-x2ew6ucj6u4cmap]": "PHID-XACT-DREV-x2ew6ucj6u4cmap", "storyData[transactionPHIDs][PHID-XACT-DREV-kfdbxysqd5ufgch]": "PHID-XACT-DREV-kfdbxysqd5ufgch", "storyAuthorPHID": "PHID-USER-notf2vhdiknmcndq77w4", "storyText": "stanzhai updated the diff for D12: test.", "epoch": "1525847061" } ``` 这样的话我们根据不同的消息内容做相关处理就可以了。 非特殊说明,均为原创,原创文章,未经允许谢绝转载。 原始链接:Phabricator配置WebHook实现代码变更的自动处理 赏 Prev SQL中JOIN与WHERE执行次序及优化问题 Next 把Q5盒子打造成怀旧游戏模拟器