每每看到别人家公司将聊天机器人与项目管理有效结合的实践,我都甚是羡慕。自己只使用过 钉钉 自带的 Jira 机器人,也曾尝试使用 Script Runner 插件写点 Groovy 脚本,来实现项目管理过程中的任务提醒功能,但是由于技术水平有限,所以一直没有产生什么结果。
正好前两天在摸索 Automation for jira 插件时,竟然跑通了一个关键流程:通过钉钉自定义机器人将 Jira 更新的消息成功推送到了钉钉群,心里甚是欣喜。我周末花了一天多时间,仔细研究了下,最终完成了”如何将每天定点获取的逾期任务自动推送到钉钉和企业微信两个群“的 Demo,下面是具体的实践步骤,希望对大家有所帮助。
一、新建自动化规则
我们首先找到需要配置任务逾期提醒的 Jira 项目,到项目配置的 Project automation 中,选择 Project rules 创建新规则:
选择规则的触发器为计划(Scheduled),按指定计划执行规则,比如:每天将 JQL 查询结果自动推送消息。
使用 Cron 表达式,输入:0 30 9 * * ? ,表示:每天早晨 9:30 准时执行计划。在 JQL 输入如下语句,表示:查询未解决的逾期用户故事。点击保存,即可完成计划的设定。
issuetype = Story AND resolution = Unresolved AND duedate < startOfDay()
二、配置 钉钉 自定义机器人
添加组件:在 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
{{/}}"
}
}
三、测试自动化规则
对上述自动化规则进行测试,即使配置了每天早晨 9:30 自动执行,但是我们仍可以通过手工执行规则进行测试。
点击右上角”运行规则“,查看已配置自定义机器人的两个群消息是否完全符合预期。如果接收不到消息或消息内容有缺失,那么需要仔细检查网络钩子 markdown 格式内容。
注意:如果你在群里接收到的消息分成了 2 条,那么需要在”When: Scheduled”的更多选项中勾选:批量处理该触发器产生的所有 Issues。
四、写在最后
关于如何高效写出网络钩子主体的自定义语句,Jira 官网有关于”smart values”非常详尽的说明文档。同时,官网还提供了在线Automation沙箱环境,里面有非常多案例供学习和参考(本文相关材料链接,如果找不到,可以单独跟我沟通)。
最后,欢迎加我个人微信交流 craigyoung1985,一起学习和交流。请备注:姓名/城市/工作岗位,我可以拉到Jira和Confluence中国社区群。
Comments are closed