【问题标题】:TFS 2015 Web Hook to Slack IntegrationTFS 2015 Web 挂钩到 Slack 集成
【发布时间】:2018-06-26 19:47:20
【问题描述】:

我有一个需求,

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

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

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

有人可以帮助我了解如何实现自定义网络钩子。请允许从 TFS WI 到 Slack 的事件?

谢谢,

【问题讨论】:

    标签: c# tfs-2015 slack-api tfs-workitem asp.net-webhooks


    【解决方案1】:

    您不能以编程方式在 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 将消息发送到该通道。

    【讨论】:

      【解决方案2】:

      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 工作项。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-07-16
        • 1970-01-01
        • 2017-10-22
        • 1970-01-01
        • 2015-09-23
        • 1970-01-01
        • 1970-01-01
        • 2018-10-13
        相关资源
        最近更新 更多