我发现了 Microsoft Teams,我喜欢它。我现在正试图触发从 TFS 到 Microsoft Teams 的 pullrequest 消息。我有一个与 curl 配合使用的 Teams Group webhook url。但是当我用 TFS (Service Hooks -> Web Hooks) 测试它时,我只会收到错误的请求。你们中有人知道为什么会这样吗?
2 回答
如果您使用的是 VSTS,您可以直接使用 Microsoft Teams 中的连接器来实现您所需要的。
如果您使用的是 TFS,则暂时没有相关的加载项。似乎您正在使用 Incoming Webhook connector。
对于 Incoming Webhook,它只支持明信片。有关该卡如何构建的更多详细信息,请参阅此链接:可操作消息参考。
但是,对于TFS 中的 Web Hook,发送的 JSON 表示不使用“卡片类型”。示例 JSON 如下所示:
{ "event.type": "git.push", ... "messsages": { "text": "...", "html": "...", "markdown": "..." }, "detailedMesssages": { "text": "...", "html": "...", "markdown": "..." }, "resource": { "id": "...", "url": "https://...", "name": "...", "field1:": "..." } }
因此,您将收到带有包请求(400)的失败消息。
也许您现在已经弄清楚了,因为显然这个问题是在 3 年前提出的,但我想发布我的答案以便将来帮助其他人。实际上有一种方法可以将 TFS 与 Microsoft Teams 挂钩!
从 TFS 转到 Service Hooks --> office 365而不是(Service Hooks -> Web Hooks),因为“Microsoft 团队”是套件 365 的一部分,并且就这么简单:)。
PS:当然你需要先在 Teams 上创建一个频道,然后点击 3 个点 --> 连接器 --> Incoming Webhooks(configure) --> 给你的钩子起个名字 --> 创建。你完成了;只需复制 Teams 生成的链接,并在您被要求时将其粘贴到 TFS 中;)