jira邮件自动提醒功能配置
本文转自 Bruceweien 51CTO博客,原文链接:
http://blog.51cto.com/bruceweien/1932395
1、开启Jelly Runner功能,点击administrator,进入管理员配置界面,依次选择system-advanced-Jelly Runner我们会看到以下英文提示As a security precaution, the Jelly Runner on this installation is currently disabled. To enable Jelly support, please start JIRA with "-Djira.jelly.on=true". For more information see the Jelly Documentation.看到这些则代表功能还没有开启。
2、在jira目录/bin下看有没有setenv.sh文件,有则打开在JVM_REQUIRED_ARGS="-Djava.awt.headless=true这个后面添加-Djira.jelly.on=true并保存,服务器是windows时则添加java -Djira.jelly.on=true
3、自定义邮件模板,进入/usr/local/atlassian-jira-4.4.5-standalone/atlassian-jira/WEB-INF/classes目录,打开email-template-id-mappings.xml文件按照里面的格式添加一个新的模板如下图:
图上id=17的则是我们刚添加的模板,name可以随便命名,template中间是模板文件名称,templatetype则是issueevent,修改完并保存。
4、 进入/usr/local/atlassian-jira-4.4.5-standalone/atlassian-jira/WEB-INF/classes目录,打开velocity.properties文件,设置class.resource.loader.cache=false再将#velocimacro.library.autoreload=true的#号去掉
5、 创建模板文件进入atlassian-jira/WEB-INF/classes/templates/email/subject,把issuecreated.vm这个文件复制一份,名字叫issueovertime.vm,这个就是图一上我们定义的xml文件名称
6、 进入/atlassian-jira/WEB-INF/classes/templates/email/html,同样复制把issuecreated.vm这个文件复制一份,名字叫issueovertime.vm
7、 重启jira
8、 检查Jelly Runner功能是否开启,如果开启了会看到下面图这样的
9、建立JQL搜索问题过滤器,点击issue-我的issue-新建-advanced输入以下查询语句,然后点击search,没有报错的话就点击左边的保存按钮。
project = 项目名称 and status = "open"AND updated <= -30m and updated >= startOfDay("8h") and updated <= startOfDay("20h")这语句意思为在项目名称下搜索在8点到20点之间的超过30分钟未更新的open状态的问题,然后保存查看这个过滤器的id,查看过滤器id方法为鼠标移动到那过滤器,浏览器网址有显示id号,需使用ie浏览器.
10、建立一个新的事件,进入管理员页面-system-Advanced-events-Add New Event事件名称随便定义,比如问题超时未更新提醒,Template选择Issue OverTime
11、建立工作流动作,进入要使用规则的工作流,比如系统运维这个项目使用的是yunat default(customized)这个工作流,那我们就在这里面建立工作流动作。点击问题- workflows找到yunat default(customized)点击工作流右边的steps,比如我想当issue处于ln Progress这个状态时执行新的动作,则在这下面建立新动作,点击Add Transition,动作名称可以与第10建立的事件名称一样,Destination Step选择ln Progress,其他的默认就行了,增加完在给这个动作设置权限,主要是为了防止别人去点击这个按钮。
12、新建jellyrunner脚本文件,进入/usr/local/atlassian-jira-4.4.5-standalone/home/data/目录建立jellyrunnerovertime.xml文件和jellyrunnerovertime.log文件,在jellyrunnerovertime.xml内添加如下内容:
<JiraJelly xmlns:jira="jelly:com.atlassian.jira.jelly.enterprise.JiraTagLib" xmlns:core="jelly:core" xmlns:log="jelly:log" >
<jira:Login username="管理员" password="管理员密码">
<log:warn>Running Inactivate issues service</log:warn>
<core:set var="comment"></core:set>
<core:set var="workflowStep" value="问题超时未更新提醒" />
<core:set var="workflowUser" value="system" />
<!-- Run the SearchRequestFilter -->
<jira:RunSearchRequest filterid="11530" var="issues" />
<core:forEach var="issue" items="${issues}">
<log:warn>Inactivating issue ${issue.key}</log:warn>
<jira:TransitionWorkflow key="${issue.key}" user="${workflowUser}" workflowAction="${workflowStep}" comment="${comment}"/>
</core:forEach>
</jira:Login>
</JiraJelly>
上面的管理员也可以填写其他有权限的管理员用户,问题超时未更新提醒是动作名称,11530是第9步建立的过滤器的id
13、 添加一个系统服务,点击system-advanced-services,名称比如为IssueOverTimeRemindUser,Class选择Run Jelly script(com.atlassian.jira.jelly.service.JellyService),Delay选择1,这里的1表示多久执行一次此服务,我们这里设置为1表示1分钟,添加服务后,在服务里找到该服务,点击编辑在Input File输入步骤12的脚本文件的绝对路径,比如此例子为:/usr/local/atlassian-jira-4.4.5-standalone/home/data/jellyrunnerovertime.xml,Output File输入步骤12的脚本日志的绝对路径,比如此例子为:/usr/local/atlassian-jira-4.4.5-standalone/home/data/jellyrunnerovertime.log
输出文件设置为:步骤12的日志文件的绝对路径,比如此例子为:/usr/local/atlassian-jira-4.4.5-standalone/home/data/jellyrunnerovertime.log
14、 设置邮件格式为html的,因为我们设置的是邮件模板是html格式的,点击system-mail-Send Email-Message Type-html
15、 重建索引,system-Indexing-Relndex
16、 使用jellyrunnerovertime.xml里面设置的管理员用户收藏步骤9建立的过滤器,收藏点击过滤器左边的星号颜色变成黄色后即可。
17、 添加邮件接收者,问题-Notification Schemes-Default Notification Scheme-问题超时未更新提醒(这里的问题超时未更新提醒事件是我们在步骤10建立的)-增加-选择需要通知的人和组或者项目。
18、 现在可以进行测试了,整个自动执行过程原理如下:
JIRA每隔1分钟执行下jellyrunnerovertime.xml这个脚本,即每隔1分钟用过滤器11530搜出满足条件的问题,再用管理员这个账户登录并执行下这些问题的“问题超时未更新提醒”动作。这个动作会触发“问题超时未更新提醒”事件。同时该事件又会根据通知方案里的配置来通知相关人员。
19、 如果要更改状态,请在工作流中相应的状态下增加“问题超时未更新提醒”动作,然后在过滤中也修改下状态。
20、 如果要修改邮件模板标题请进入步骤5中的issueovertime.vm文件输入你想要显示的文字,比如你的issue超时了。如果要修改邮件模板内容,请进入步骤6中的issueovertime.vm文件,比如你要在提醒邮件中显示“issue状态“项目,可以按照里面的格式添加#parse("templates/email/html/includes/fields/status.vm")
比如你要在邮件中显示自定义内容,可以这样输入
<td id="email-fields" style="padding:0 32px 32px 32px;">
<p style=’margin-bottom:10px;’>自定义内容</p>
<table border="0" cellpadding="0" cellspacing="0" style="padding:0;text-align:left;width:100%;" width="100%">
jira邮件自动提醒功能配置相关推荐
- java实现未读消息提醒_JS(jQuery)实现聊天接收到消息语言自动提醒功能详解【提示“您有新的消息请注意查收”】...
本文实例讲述了JS(jQuery)实现聊天接收到消息语言自动提醒功能.分享给大家供大家参考,具体如下: 综述 最近在开发一个网页端的客服系统,需求要求聊天双方接收到消息能有语音提醒,并且客服端如果存在 ...
- android win10 日历提醒,win10系统怎么设置日历自动提醒功能
在 1.点击桌面右下角的[日期时间]: 2.接着在弹出的[日历]程序紧贴屏幕右边框打开,在展开的日历中,点击[+]按钮: 2.此外我们还可以通过点击桌面左下角的[开始]按钮,在展开的程序列表中,找到并 ...
- webpack自动打包功能配置
当我们在js中修改后,在浏览器打开html文件并没有任何变化,这是因为引入的js文件是之前打包的js文件,如果要实现修改后的js有变化,需要在重新打包一次,这样就大大的增加了我们的工作量,所以这儿就用 ...
- 在信息泄露事件后 雅虎关闭邮件自动转发功能
10月11日消息 据国外媒体报道,本月初雅虎已暂时禁用电子邮件自动转发功能,过去已设置自动转发功能的邮箱用户并不会受到影响,雅虎此举被认为是防止用户的迁移. 在雅虎最近被爆出用户账户遭黑客窃取和数据监 ...
- 为Office365增加密码过期自动提醒功能
最近有人和我反应,无法查看所有员工的Office365的密码过期时间.最好可以批量查看,如果能在过期前几天发个提醒邮件就更好了. $pw = ConvertTo-SecureString 'your_ ...
- python实现秒杀商品的微信自动提醒功能(附代码)
技术实现原理:获取京东的具体的商品信息,然后再使用微信发送提醒 1.收集自己想要的商品url 我们就以京东来举例,获取京东的秒杀商品信息: 首先,我们在网页上打开京东,搜索我们想要的商品,这边我就以我 ...
- java 邮件提醒功能_利用ical4j和javamail发送会议邀请实现邮件发送提醒功能
/*** *@paramsenderAccount 发件人账号 *@paramsenderPassword 发件人密码 *@paramtoAddress 收件人邮箱地址 *@paramccAddres ...
- python股票交易微信提醒_python实现秒杀商品的微信自动提醒功能(附代码)
技术实现原理:获取京东的具体的商品信息,然后再使用微信发送提醒 工具:需要两个微信号,这两个微信号互为好友 如果你处于想学Python或者正在学习Python,Python的教程不少了吧,但是是最新的 ...
- TC校园邮箱禁止掉邮件自动转发功能
1.打开设置--邮箱设置: 2.选择自动转发,这里设置禁止转发: 3.如果启用,自己填写对应邮箱: 如果不想转发,就选择禁止,然后保存更改.
最新文章
- 周炯槃 信息理论基础
- man iptables by iptables-save v1.3.5
- 故障码123401_电力系统规划设计对电力工程设计的应用
- 用C++实现十进制转二进制【个人思想】
- 最实用的18个HTML5 API 教程大全,都在这里了
- MyEclipse IDEA 安装 激活JRebel工具
- python 时间相关模块
- java计算机毕业设计仓库管理系统设计与实现MyBatis+系统+LW文档+源码+调试部署
- springboot中websocket服务怎么调用其他类的方法
- [生而为人-思考] Knowledge Cooking -5th 分享会记录
- 用Python 制作身高预测系统
- 如何降低APP运营成本?
- 关于Value ‘0000-00-00 00:00:00‘ can not be represented as java.sql.Timestamp异常问题的解读
- 云服务 IaaS、PaaS、SaaS
- 从HTTP状态 301,302,200 来看页面跳转
- (ICRA 2020) Instance Segmentation of LiDAR Point Clouds
- iOS 拦截系统自带的Pop事件
- TouchImageView源码分析
- Dimensioning of Cables
- 基于深度摄像头的yolov4算法应用 (Realsense D435i)python