写点什么

打通 Jira 与钉钉和企业微信不再难

用户头像
YY哥-杨勇
关注
发布于: 2021 年 03 月 20 日
打通Jira与钉钉和企业微信不再难

每每看到别人家公司将聊天机器人与项目管理有效结合的实践,我都甚是羡慕。自己只使用过钉钉自带的 Jira 机器人,也曾尝试使用 Script Runner 插件写点 Groovy 脚本,来实现项目管理过程中的任务提醒功能,但是由于技术水平有限,所以一直没有产生什么结果。


正好前两天在摸索 Automation for jira 插件时,竟然跑通了一个关键流程:通过钉钉自定义机器人将 Jira 更新的消息成功推送到了钉钉群,心里甚是欣喜。我周末花了一天多时间,仔细研究了下,最终完成了”如何将每天定点获取的逾期任务自动推送到钉钉和企业微信两个群“的 Demo,下面是具体的实践步骤,希望对大家有所帮助。


01


新建自动化规则


我们首先找到需要配置任务逾期提醒的 Jira 项目,到项目配置的 Project automation 中,选择 Project rules 创建新规则:


选择规则的触发器为计划(Scheduled),按指定计划执行规则,比如:每天将 JQL 查询结果自动推送消息。

使用 Cron 表达式,输入:0 30 9 * * ? ,表示:每天早晨 9:30 准时执行计划。在 JQL 输入如下语句,表示:查询未解决的逾期用户故事。点击保存,即可完成计划的设定。

issuetype = Story AND resolution = Unresolved AND duedate < startOfDay()
复制代码


02


配置自定义机器人


添加组件:在 New action 中选择发送网络请求,我们将创建两个网络请求,分别对应企业微信和钉钉群机器人,用来将定时计划的消息推动到群里。


添加企业微信群机器人,获取到网络钩子 URL,将其输入到 Webhook URL 中。选择网络钩子主体为自定义数据(Custom data),按照企业微信群机器人配置规范进行配置,我们使用 markdown 类型消息体(参考代码如下),点击保存,继续添加钉钉机器人网络请求:



{"msgtype": "markdown", "markdown": {"content": "【小蜜提醒】\n 截至当前,共<font size=\"4\" color=\"#dd0000\">{{issues.size}}</font>个任务已逾期,请相关同学及时处理!\n {{#issues}} >问题编号:[{{key}}]({{url}})\n >问题类型:{{issueType.name}}\n >问题概述:{{summary}}\n >到期日:<font color=\"#dd0000\">{{duedate}}</font>\n >处理人:{{assignee.displayName}}\n >-----------------------------------------------\n {{/}}" }}
复制代码


添加钉钉群机器人,选择自定义机器人(而非自带的 Jira 机器人),在安全设置-自定义关键字中输入【小蜜提醒】,获取到网络钩子 URL,将其输入到 Webhook URL 中。选择网络钩子主体为自定义数据(Custom data),按照钉钉群机器人配置规范进行配置,我们使用 markdown 类型消息体(参考代码如下),点击保存,给自动化规则命名后打开,此时自动化状态为可用的(ENABLED)。

  


{"msgtype": "markdown", "markdown": {"title":"【逾期提醒】","text":"【小蜜提醒】\n 截至当前,共<font size=\"4\" color=\"#dd0000\">{{issues.size}}</font>个任务已逾期,请相关同学及时处理!\n {{#issues}} >问题编号:[{{key}}]({{url}})\n >问题类型:{{issueType.name}}\n >问题概述:{{summary}}\n >到期日:<font color=\"#dd0000\">{{duedate}}</font>\n >处理人:{{assignee.displayName}}\n >-----------------------------------------------\n {{/}}" }}
复制代码



03


测试自动化规则


对上述自动化规则进行测试,即使配置了每天早晨 9:30 自动执行,但是我们仍可以通过手工执行规则进行测试。


点击右上角”运行规则“,查看已配置自定义机器人的两个群消息是否完全符合预期。如果接收不到消息或消息内容有缺失,那么需要仔细检查网络钩子 markdown 格式内容。




注意:如果你在群里接收到的消息分成了 2 条,那么需要在"When: Scheduled"的更多选项中勾选:批量处理该触发器产生的所有 Issues


写在最后:

关于如何高效写出网络钩子主体的自定义语句,Jira 官网有关于"smart values"非常详尽的说明文档。同时,官网还提供了在线Automation沙箱环境,里面有非常多案例供学习和参考(本文相关材料链接,如果找不到,可以单独跟我沟通)。


发布于: 2021 年 03 月 20 日阅读数: 25
用户头像

YY哥-杨勇

关注

好玩的东西一起分享 2016.05.26 加入

杨勇,YY哥(网名) 在精益产品研发、敏捷项目管理、IT服务管理和软件过程改进等方面有丰富的实战经验。杭州Atlassian Community Event Leader,欢迎交流~ 微信:craigyong,加好友时请备注城市-职业-姓名!

评论

发布
暂无评论
打通Jira与钉钉和企业微信不再难