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的工作流的增强功能,特点是无代码, 真的是不用写一行代码, 因为压根没有地方写代码 (wink)

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转换,支持的类型有

  • string 字符串
  • 数字
  • 时间和日期

支持操作符号: = , > , >=, <, <=, != 


验证器 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



典型的场景