JIRA的工作工作流能力非常强大, Trigger、Pre-condition、Validator、Post Function、Prosperity 提供的能力可以满足几乎你对一个工作流的所有幻想,刚开始接触JIRA工作流概念一开始似乎都是这么想的,可是当打开工作流配置时貌似能用的功能非常少,JIRA在这方便可谓非常节制,上述每种能力只提供了少数几种功能、更像是一个基本框架和示例,很多功能的完善更需要工作流插件。
JIRA为什么自身的工作流只提供非常有限的功能,把更大的空间让给众多插件呢?
正因为JIRA的节制,促生了marketplace生态的繁荣,让我们看一下JIRA工作流的插件
百家争鸣的JIRA工作流App
JIRA 常用的工作流可谓是百花齐放、百家争鸣,各自有自己的特点,重分的体现了Diversity多样性
- Misc Workflow Extensions: 妖娆多姿, 又让人缺乏安全感
- Workflow Toolbox: 工作流界的瑞士军刀,但是你需要找到说明书
- Automation: 近几年崛起的一股力量,自成体系, 界面化的设置
- Script Runner:极具工程师思维的一款产品,功能异常强大! 前提是需要懂一些Groovy和Jira的开发知识
- MyGroovy: 开源免费,屌丝神器,号称靠写groovy脚本解决JIRA 80% 以上的问题, 前提和Script Runner一样
- 等等等等 就不一一列举了
如果非让我推荐一款工作流的插件给大多数JIRA使用者,该推哪个? 曾经沧海难为水,除却巫山不是云,我会推荐简单易用、朴实无华的JSU
有人可能说JSU的功能过于简单,但是
思考、节制、满足主要场景 , 让用户简单的使用 这就是JSU的哲学思想,其实JSU的人没有这么说过,我总计出来的,翻译成名言就是 Less is more, Simply the best
搞那么复杂的工作流真的有意义吗? 思考一下, 引导你的用户,敢于说No
关于JSU
JSU 最早是一个开源的软件, 现在在GitHub上还能找到,不过开源版本已经好多年没有维护了。
供应商 beecom 是Atalssian Platinum Top Vender, JSU 很长时间依赖都是Marketplace Top Selling的产品
主要提供了JIRA的工作流的增强功能,特点是无代码, 真的是不用写一行代码, 因为压根没有地方写代码
JSU主要功能
这里主要讲一下工作流增强的功能, 安装完JSU插件后,编辑一个工作流,很容易看到JSU的功能, 后面加了(JSU)就是Workflow中JSU提供的功能,如
下面简单介绍一下JSU在工作流增强方面的功能
条件 Condition
功能项 | 说明 |
---|
JQL Condition | 可以比较按照指定JQL查询出来的Issue数量等于某个值,或者一个范围 |
Status Change Condition | 相对于'From Any Status' 的Transition而言, 设置了这个就排除在'From Any Status'之外 |
User Is In Any Groups | 设置哪些用户可以执行这个工作流transition,用户可以是 |
User Is In Any Roles |
User Is In Any Users |
User Is In Custom Field |
Value Field | 字段值满足某个条件才可以执行transition转换,支持的类型有 支持操作符号: = , > , >=, <, <=, != |
验证器 Validator
功能项 | 说明 |
---|
Date Compare | 比较两个日期字段, 如解决时间和due to 比较 |
Date Expression Compare | 某个日期 字段跟当前时间的范围比较 |
Date Window | 比较两个日期字段的范围,如 解决时间 必须在创建时间的7天内 |
Fields Required | 在workflow transition中验证某个字段是否必填 |
Linked Status | 验证关联Issue的满足某些状态 |
Regular Expression Check | 验证字段满足设置的正则表达式 |
这些条件能够组合
后处理 Post Function
功能项 | 说明 |
---|
Copy Value From Other Field Post-Function | 将一个字段的值复制到另外一个资源 |
Update any Issue Field Post-Function | 更新一个字段的值 |
Clear Field Value Post-Function | 清空一个字段的值 |
Create a Linked Issue | 创建关联Issue |
Linked Transition | 触发关联Issue的工作流转换 |
Follow Up Transition | 工作流系下一跳满足条件后自动触发 |
Copy or Move Attachments Post-Function |
|
典型的场景