需求场景
日常工作中习惯使用企业微信、钉钉等实时通讯工具来交流项目的进展、问题 等内容, 在群聊中实时收到这些信息,以达到信息透明和快速处理处理的目的。JIRA 作为一个事务追踪和项目管理工具, 每天会有大量的项目动态产生(比如 需求提出、Bug上报、任务完成、版本发布等信息),我们也需要将项目信息如果能实施的分发到工作群(比如某个团队或项目的工作)
钉钉官方已经提供了JIRA机器人,可以在JIRA上配置webhook将消息发送到群聊中的JIRA机器人
企业微信没有提供这样的第三方集成的应用, 只提供了机器人的API接口, 关于接口的使用有自己定义的规范, JIRA的webhook消息内容不能直接发送到企业微信的机器人接口
解决方案
在 JIRA 和 企业微信中间加一个 转换器
- JIRA 的事件通过 Webhook (在系统Webhook中配置)发给 Conveter转转器
- Converter 接收JIRA的消息, 转换成企业微信兼容的格式,再调用企业微信机器人的接口发给企业微信
- 企业微信通过群聊机器人发送消息
方案特点:
- 和JIRA和企业微信耦合度小
- 灵活配置,发送什么消息到哪个群由JIRA的Webhook设置实现
- 部署灵活
- 可以使用集中的SaaS服务(由devpod提供)
- 将Converter部署用户侧,适用场景
- JIRA无法直接访问外网(调用企业微信需要访问公网), 让Converter 来做代理和转换, 只要Converter能访问外网即可
- JIRA用户规模大,业务量大
- 对消息安全有进一步要求
配置实现
需要在企业微信测添加聊天机器人和JIRA侧添加WebHook
企业微信添加群机器人
在手机的企业微信客户端操作,步骤如下
1.进入企业微信群聊设置, 打开群机器人设置
2. 添加群机器人,给机器人起个名字, 如 Jira, 也可以更改一个头像
3. copy 这个 WebHook地址, 这个WebHook地址其实包含了两部分内容, 第一部分是, webhook的地址“如 https://qyapi.weixin.qq.com/cgi-bin/webhook/send” , 第二部分是 key 如“key=693a91f6-7xxx-4bc4-97a0-0ec2sifa5aaa” , 这个key 其实就是群聊机器人的地址+token, 不要轻易透露给别人,拿到这个key 就能通过这个群聊机器人发消息了
https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=693a91f6-7xxx-4bc4-97a0-0ec2sifa5aaa
CODE
关于企业微信群机器人的详细信息请参见 企业官方文档
JIRA中添加WebHook
JIRA 管理员在 系统-》WebHooks 配置,每个群机器人需要添加一个WebHook, 有这么几个配置要素
创建后的JIRA 的 WebHook如下:
好了,现在可以测试一下 企业中收到JIRA事件的效果了
效果示例