JIRA 3.12 自定义工作流

配置工作流之前请先定好Issue有哪些状态,状态的配置见常用配置–Issue Settings部分。

工作流配置从ADMINISTRATION-General Settings-Workflows进入,系统默认有一个叫做jira的工作流,这个工作流是只读的不能修改。

但是可以以此为蓝本来建立工作流,通过Operations中Copy链接即复制了一个一样的工作流。

点击Operations–steps进入步骤的设置,进入的界面如下图所示:

从图中看Open step,Linked Status表示执行完这个step后,issue的状态会变成Open,Transitions表示对于Open状态的issue可以执行的操作,Operations是设置时用到的链接。

下面以几个例子来说明如何配置工作流:

  1. 我们认为Open状态的issue不能有Resolve Issue这个Transition,所以准备把它删除,点击Delete Transitions,之后在多选框中选择Resolve Issue,删除即可。

  2. 对于Open状态的issues,Start Progress这个操作我们想控制它的权限,只有开发人员才能执行这个操作。通过点击Start Progress这个链接进入设置,我们看到在Conditions这个Tab中已经存在一个条件,含义是“只有assignee才能执行这个操作”,这个condition是合理的,保留。

我们通过点击Add链接来增加另外一个condition,之后会得到一个列表来选择condition的类型,开发人员才能执行同Project role比较接近,选择User is in Project Role。

其实选择User is in group 然后配置一个开发人员组也是可以达到同样的效果。

在下一屏中选择Developers这个Project Role,添加完我们可以看到如下图所示的Conditions。

JIRA默认将增加的condition用AND来连接,如果需要也可以将条件用OR来连接。

熟悉以上操作后,通过Add New Step,调整每个step关联的status就可以实现复杂的自定义工作流。

工作流定义好之后,还需要定义workflow scheme,这个工作流才能被项目引用。

通过ADMINISTRATION-Schemes-Workflow Schemes进入配置界面,先增加一个scheme,然后在Operations中的Workflows链接中关联workflow。

JIRA在workflow之外再包装一层scheme的意义在于可以针对不同的issue type使用不同的工作流,如下图。

为了简洁起见,我们一般选择All unassigned Issue Types对应一个工作流。

定义好workflow scheme之后才能被特定的Project所使用,通过ADMINISTRATION—Projects,选择需要配置的Project进行配置,如下图:

在Workflow Scheme中点击Select进行scheme的选择。在Associate的时候会得到一个警告:

针对已经存在issues的project,修改工作流可能会引起状态等信息的丢失,所以最好先做好JIRA数据的备份以免发生意外。

(我修改过1000个issues的project的工作流,JIRA可以很好的处理,不用因为有警告而太紧张,不过事先备份是必须的操作)

另外Project配置界面有很多scheme可配置,方法是类似的,后面不再详细描述。可以配置的scheme包括:

Issue Type Scheme

Notification Scheme

Permission Scheme

Issue Security Scheme

Field Configuration Scheme

Issue Type Screen Scheme

Workflow Scheme