集成 Jira 与钉钉和企业微信通知
如果觉得这篇文章不错,请记得点赞、收藏和分享,也欢迎加我个人微信交流:craigyoung1985,请备注:姓名/城市/工作岗位。
每每看到别人家公司将聊天机器人与项目管理有效结合的实践,我都甚是羡慕。自己只使用过钉钉自带的 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中国社区群。
集成 Jira 与钉钉和企业微信通知相关推荐
- 14、持续集成流水线实践:Jenkins 的企业微信通知
Jenkins 的企业微信通知 随着现在企业移动端办公越来越普及,很多公司都在使用企业微信,如果流水线的通知可以通过企业微信发送是不是更加方便和直接? Jenkins-wechat-notifier插 ...
- 使用Python设置钉钉机器人和企业微信机器人的步骤
文章目录 一.钉钉机器人 0.参考文档 1.创建一个群 2.设置群助手 3.设置机器人信息 4.编写测试文件 5.访问请求,预警成功 二.企业微信机器人 0.消息发送频率限制 1.创建群聊,增加机器人 ...
- [企业微信通知系列]Jenkins发布后自动通知
一.前言 最近使用Jenkins进行自动化部署,但是部署后,并没有相应的通知,虽然有邮件发送通知,但是发现邮件会受限于接收方的接收设置,导致不能及时看到相关的发布内容.而由于公司使用的是企业微信,因此 ...
- linux12企业实战 -- 37zabbix企业微信通知配置
文章目录 一.需求来源 二.原始数据来源 三. 原数据审查确认 1.检查jira数据是否完整 2.数据异常 四.zabbix操作 1.创建账号 2.报警媒介类型 3.创建动作 4.添加告警人 5.测试 ...
- python实现由通知接口发送企业微信通知
python实现由通知接口发送企业微信通知 问题背景 要点说明 1. 请求接口鉴权并返回token值 2.请求通知接口发送企业微信通知 3.通知内容中传入参数 问题背景 项目中需要通过 python ...
- jenkins使用python脚本发送企业微信通知
如果只是想实现将jenkins的构建结果发送到企业微信进行通知,最简便的方式是安装Qy Wechat Notification Plugin插件,网上教程很多就不重复写了,可参考:https://ww ...
- jenkins的企业微信通知报错:No appropriate protocol
jenkins的企业微信通知报错:No appropriate protocol (protocol is disabled or cipher suites are inappropriate) 卸 ...
- Jenkins 添加Allure报告 并发送企业微信通知
Jenkins 执行完测试后使用Allure 测试结果 安装Allure插件 Jenkins->管理Jenkins->插件管理 选择Allure安装 安装后,Global Tool Con ...
- 青龙面板+Ninja的企业微信通知设置以及企业微信群消息转到微信方法
前言 拒绝白嫖,点点关注,创作不易. 你的关注就是我持续更新的动力!感谢! 根据大家在群里的需求,我就说一下如何设置企业微信通知且如何将企业微信的消息转到微信 第一步 按照下面图片一步一步开启机器人 ...
- 微信关掉企业公告的请下载企业微信通知
微信每隔一段时间就提示请下载企业微信通知,解决方法是不再关注该企业. 恼人的通知: 解决方法: 点击右上角的加号,进入设置 点击右上角的三个点 选择不再关注.
最新文章
- SQL连接查询和嵌套查询详解
- 【计算机网络】应用层 : 网络应用模型 ( 应用层概述 | 客户端 / 服务器 模型 | P2P 模型 )
- std string与线程安全_这才是现代C++单例模式简单又安全的实现
- 关于 ESP,EBP,EIP
- Apache+jboss群集部署
- 聊聊高并发(二十七)解析java.util.concurrent各个组件(九) 理解ReentrantLock可重入锁
- CSS3制作一个简单的进度条
- superset可视化-country map
- 墨迹天气android,墨迹天气Android产品分析
- 接受与返回json数据
- serial port 的操作
- 小度智能音箱维修点_小度智能音箱——联通智慧生活语音服务入口
- 《人月神话》——一部被名字误导的软件开发的书——第一次阅读
- 线性代数及其应用(第三版)1.7节习题解答
- matlab中求均值的mean()函数的使用
- 从JPG和JPEG图片获取压缩比详细教程
- Windows或Linux中32位与64位操作系统的区别
- 洽谈 5G 时代“音视频”开发前景及学习方向
- linux 没有可用的缓冲区空间不足,由于系统缓冲区空间不足或队列已满,不能执...
- 数据结构《顺序栈》知识点详解+C语言完整代码-超详细
热门文章
- linux需要看门狗喂狗程序,多任务看门狗, 喂狗方法
- Asset Catalog Compiler Warning Group
- thinkpad如何禁用触摸板(触控板)或指点杆
- gitlab+drone+harbor之CI自动化流程
- java家庭记账代码_Java的家庭记账本程序(B)
- 1008. 前序遍历构造二叉搜索树
- swift4.0语法杂记
- 双硬盘+win10+Ubuntu20.04双系统安装安装教程(UEFI)
- asp.net:如何取消设置的起始页
- 早期股权分配不是有钱就能搞定的!