0

我有一个要求,

当在 TFS 2015(而不是 vsts)中创建工作项(并且状态 - 说正在进行中)时,我希望我的网络挂钩触发一个 post 方法,该方法将在 Slack 中创建一个频道,并邀请少数人。

2) 一旦 Bug 关闭 - 读取频道的所有历史并将历史推送回 Bug。

我能够使用 TFS 服务器端插件实现相同的功能,并且它正在工作,但需求已更改为 Web 挂钩。

有人可以帮我解决如何实现自定义 web hook.which 将启用从 TFS WI 到 Slack 的事件吗?

谢谢,

4

2 回答 2

0

您不能以编程方式在 slack 中创建新的传入 webhook,但您可以将任何现有的传入 webhook 用于新通道。

只需将消息中的通道属性添加到 webhook。

Slack 文档中的示例:

curl -X POST \
--data-urlencode 'payload={"text": "This is posted to #general and comes from *monkey-bot*.", "channel": "#general", "link_names": 1, "username": "monkey-bot", "icon_emoji": ":monkey_face:"}' \
https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX

因此,为了实现您的要求,我建议您创建一个新频道并根据需要通过 Slack Web API 邀请用户。然后使用现有的传入 webhook 将消息发送到该通道。

于 2018-01-17T22:10:02.020 回答
0

TFS 具有默认的 slack 服务挂钩,可以将消息发布到频道。API 如下所示:

POST http://tfsserver:8080/tfs/DefaultCollection/_apis/hooks/subscriptions?api-version=3.2
Content-Type: application/json
{
"consumerActionId":"postMessageToChannel",
"consumerId":"slack",
"consumerInputs":{
    "url":"https://hooks.slack.com/services/xxxxxx"},
    "eventType":"workitem.created",
    "publisherId":"tfs",
    "publisherInputs":{
        "areaPath":"",
        "workItemType":"",
        "projectId":"77e3c775-dc30-4354-xxxx-xxxxxxxxxxxx"}
}

对于您的第二个要求,您需要检查 Slack Api 以了解如何读取频道的所有历史记录,并使用Update work items更新 Bug 工作项。

于 2018-01-24T08:59:07.493 回答