Teams中Office365 connectors即将停用,寻求Azure DevOps Server(本地)向Teams发送构建和发布通知的替代方案
嘿,我完全懂你的困扰——本地Azure DevOps Server之前靠O365连接器给Teams发构建、发布通知,现在这功能要被弃用,可Power Automate里又只有云端Azure DevOps Services的连接器,确实有点卡壳。不过别慌,这儿有几个靠谱的替代方案:
直接用Azure DevOps Server Webhook + Teams入站Webhook
这是最省心的方案,不用依赖Power Automate。先在Teams团队里创建一个入站Webhook(路径:团队设置 → 应用 → 管理应用 → 搜索「入站Webhook」并添加),拿到专属的Webhook URL。接着回到Azure DevOps Server的项目设置,新增一个Webhook,选择你需要触发通知的事件(比如构建完成、发布成功/失败),把Teams的Webhook URL填进去,再自定义消息的JSON格式(可以用Teams自适应卡片让通知更美观)。这样本地服务器就能直接把事件推送到Teams频道,配置起来没什么门槛。用Power Automate做中转(HTTP触发器+Teams连接器)
如果一定要用Power Automate/Workflows,也能搞定。你可以在Power Automate里创建一个带HTTP触发器的流,复制这个流的HTTP端点URL,然后在Azure DevOps Server里配置Webhook,把事件数据发送到这个端点。之后在流里解析收到的Azure DevOps事件内容,再用Teams的「发布消息到频道」或者「发布自适应卡片到频道」动作,把处理好的通知发到指定频道。相当于让Power Automate当中间桥梁,解决本地服务器没法直接对接云端Teams连接器的问题。安装第三方Azure DevOps Server扩展
你可以去Azure DevOps Server的扩展市场逛逛,有不少第三方开发者做了针对本地环境的Teams通知扩展。这类扩展安装后,直接在项目里配置构建/发布的Teams通知就行,不用自己折腾Webhook或者Flow,操作起来特别省心。不过选的时候要注意匹配你的Azure DevOps Server版本,尽量选维护活跃、用户评价好的插件。
另外提个醒,不管用哪种方案,都可以给Webhook加层安全验证,比如在Teams入站Webhook里设置密钥,或者在Azure DevOps的Webhook配置里启用签名验证,避免收到恶意请求。要是用自适应卡片,也可以参考Teams的格式规范来定制,让通知内容更清晰实用。
备注:内容来源于stack exchange,提问作者Rene R.

