如何让Targetprocess 中 webhook 推送comment 到指定的项目

Targetprocess 作为Agile管理工具非常好使。我们用TP + bearychat来做任务的沟通。 TP目前是不支持comment push到指定的项目,因为其带出的字段中没有相关项目。但是在实际操作中,不同项目中US 和bug一定是对应不同的项目,推送到不同的组的,所以这点非常不方便。

TP的webhook可以参考

https://www.targetprocess.com/guide/integrations/web-hooks/targetprocess-web-hooks-use-case/

考虑到comment的推送非常重要,因此,我只好手动编译个了middle-webhook,先接受来至于TP的webhook,然后,转换并判定其属于指定的项目,如果是,则push到bearychat的自动机器人。

这是JSON template,用在TP端

{
    "GeneralID": "{{GeneralID}}",
    "EntityType": "{{GeneralType}}",
    "EntityUri": "{{EntityUri}}",
    "EntityName": "{{GeneralName}}",
    "CreateDate": "{{CreateDate}}",
    "Modification": "{{Modification}}",
    "AuthorName": "{{AuthorName}}",
    "Description": "{{Description |ToPlainText}}",
    "remoteWebHook": "https://hook.bearychat.com/=你不知道我",
    "ExpectedProjectName": "某项目"
}
加粗的是自己加的字段。
 
这里显示一下推送到bearychat端的JSON格式
{
  "text": "[#后台 - 方案管理的数据设计和界面原型设计#](http://yourtp/TargetProcess2/entity/1777) was changed by Rock Jing on 2016/4/13 22:16:07",
  "markdown": true,
  "attachments": [
    {
      "title": "Comment was Created",
      "text": "这个可以关闭掉了。\n",
      "color": "#ffa500"
    }
  ]
}
 
 
整体比较简单,由于用mvc5创建的项目,用controller做的,结果,发现一个有意思的情况,mvc先一步拦截json,如果json格式不对,都无法进入到controller,这对调试非常恼火。unit test都过的方法居然无法执行。
最后,发现一个很简单的方式,就是使用在线的json先来验证一下,结果发现了几个不易察觉的小问题。
 
来张图结束这个话题吧。
 

posted on 2016-04-13 22:35  一望无际的南  阅读(819)  评论(1编辑  收藏  举报

导航