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)](/s/zekh4i/8703/18uhkvo/_/images/icons/emoticons/wink.svg)
JSU主要功能
这里主要讲一下工作流增强的功能, 安装完JSU插件后,编辑一个工作流,很容易看到JSU的功能, 后面加了(JSU)就是Workflow中JSU提供的功能,如
![](/jira/files/4489233/4489236/2/1629004812399/JSU%E7%A4%BA%E4%BE%8B.png)
下面简单介绍一下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 |
|
典型的场景