TFS 上的 Microsoft Teams webhook

Microsoft Teams webhook on TFS

我发现了 Microsoft Teams,我喜欢它。 我现在正在尝试触发从 TFS 到 Microsoft Teams 的 pullrequest 消息。 我有一个 Teams Group webhook url,可以与 curl 一起正常工作。 但是当我用 TFS (Service Hooks -> Web Hooks) 测试它时,我只会收到错误的请求。 你们中有人知道为什么会这样吗?

如果您使用的是 VSTS,您可以直接使用 Microsoft Teams 中的 Connectors 来实现您的需要。

  1. 从 Teams-General 打开连接器。
  2. 添加Visual Studio团队服务

  3. 添加吹图等相关配置

  4. 在相关 VSTS 项目中创建拉取请求,将在 Microsoft Teams 中收到一条消息

如果您使用的是TFS,暂时没有相关插件。似乎您正在使用 Incoming Webhook connector

Incoming Webhook 仅支持明信片。有关该卡如何构建的更多详细信息,请参阅此 link:Actionable Messages Reference

但是,对于 Web Hooks in TFS,发送的 JSON 表示没有使用 "card type"。示例 JSON 如下所示:

{
    "event.type": "git.push",
    ...
    "messsages": {
        "text": "...",
        "html": "...",
        "markdown": "..."
    },
    "detailedMesssages": {
        "text": "...",
        "html": "...",
        "markdown": "..."
    },
    "resource": {
        "id": "...",
        "url": "https://...",
        "name": "...",
        "field1:": "..."
    }
}

因此您将收到一条包含行李请求 (400) 的失败消息。

也许你现在已经明白了,因为这个问题显然是 3 年前提出的,但我想 post 我的回答是为了在未来帮助其他人。 实际上有一种方法可以将 TFS 与 Microsoft Teams 连接起来! 从 TFS 转到 Service Hooks --> office 365 而不是(Service Hooks -> Web Hooks),因为 "Microsoft teams" 是 suite 365 的一部分,就这么简单:) .

PS: 当然你需要先在 Teams 上创建一个频道,然后点击 3 个点 --> Connectors --> Incoming Webhooks(configure) --> 给你的 hook 一个名字 - -> 创建。你完成了;只需复制 Teams 生成的 link 并在需要时将其传递到 TFS 中 ;)