前几天在看devops的时候,发现可以给钉钉发消息来更新状态。 但是我们用的是微软的teams, 按理说也是可以直接给teams群组发消息的,毕竟微软的盘子更大一些。 于是尝试了一下,果然可以。
teams 里面主要是要在群组里面建一个webhook. 如下图,在general里面,点击Connectors. 就可以打开插件仓库。
搜索webhook, 就能找到这个插件,装上它。
设置好一个名字:
然后就可以copy到webhook了。
OK,有了这个webhook, 我们可以干啥呢? 比如在jenkins里面,执行了某个任务,可以将结果通知到teams。 可以在jenkins里安装office365 connector的插件。 然后配置这个webhook.
这样,就会自动往群里面发消息了。
还可以在source code管理的时候,通知到相关的人员。比如有pr, 自动通知到相关人员来做pr review. 我看了一下bitbucket, 也是有这个功能的,只要在setting里找到webhook. 配置好就行了。 还可以接受来自Azure Devops的消息 使用前提是要拥有Office 365的帐号,配置好连接器后Azure Devops可以将项目里发生的消息推送给Teams,例如: 工作项更新 拉取请求 代码提交 生成 发布部署和批准 打开Azure Devops的网站,打开“项目设置”里的“服务挂钩”(Service Hooks)配置页面,在配置页面中点击“创建新订阅…”: 其他设置也很简单。
如果你不想用插件,可以用python来post也是可以的。
代码语言:javascript复制import requests
import json
url = "https://com.webhook.office.com/webhookb2/b"
payload = {
"title":"Automation daily testing",
"text": "Testing result: [PCUI_UATCN](http://10.179:8080/job/PC Smoke - UATCN/732/)"
}
headers = {
'Content-Type': 'application/json'
}
response = requests.post(url, headers=headers, data=json.dumps(payload))
print(response.text.encode('utf8'))
这样,得到的消息就是即时的,事情处理起来也比较快。 我还尝试过jira, 好像没有管理员权限,只得作罢。