创作工作流程
因此,让我们来看看如何在 Jira 中创建和设置一个新的工作流程。要创建一个新的工作流程,您只需要一个名称和描述,那么让我们开始吧:
-
浏览至 查看工作流程 页面。
-
单击 添加工作流程 按钮。
-
在 添加工作流程 对话框中输入新工作流程的名称和说明。
-
单击 添加 按钮创建工作流程。
新创建的工作流程将只包含默认的 创建 和 打开 状态,因此需要通过添加新的状态和转换来对其进行配置,使其发挥作用。让我们先通过以下步骤为工作流程添加新的状态:
-
单击 添加状态 按钮。
-
从下拉列表中选择一个现有状态。如果您需要的状态不存在,可以通过输入名称并按键盘上的 Enter 键来创建新状态。
-
如果您希望用户可以将问题移动到此状态,而不管其当前状态如何,请选中 允许所有状态过渡到此状态 选项。这将创建一个全局过渡,是一个方便的选项,因此您不必手动为状态创建多个过渡。
如果全局状态不代表 已完成 或 已关闭 状态,通常最好添加一个 清除决议 发布功能,以确保在问题过渡到该状态时始终清除决议字段。
-
单击 添加 按钮,将状态添加到工作流程中,如下图所示。您可以重复这些步骤,在工作流程中添加任意数量的状态:
Figure 1. Figure 7.6 – Adding a status
如果可能,尽量重复使用现有的状态,这样就不会有很多类似的状态需要管理。 |
既然状态已添加到工作流程中,就需要将它们与过渡链接起来,以便问题可以从一个状态移动到下一个状态。创建过渡的方法有以下两种:
-
单击 添加过渡 按钮
-
选择起始状态,然后单击并拖动箭头至目的地状态
这两个选项都会弹出 添加过渡 对话框,如下图所示:

从前面的截图中,你可以选择使用 新建转场 选项卡创建新的转场,或者使用 重用转场 选项卡使用现有的转场。
创建新转场时,需要配置以下设置:
-
发件人状态:这是初始状态。当问题处于所选状态时,过渡将可用。
-
至状态:这是目的地状态。执行过渡后,问题将进入所选状态。
-
名称:这是过渡的名称。这是将显示给用户的文本。由于转场是用户执行的操作,因此转场名称最好以动词开头,如
Close Issue
。 -
描述:这是显示此转换目的的可选文本描述。它不会显示给用户。
-
屏幕:这是用户执行转换时显示的可选中间屏幕。例如,您可以显示一个屏幕来捕获其它数据,作为转换的一部分。如果不选择屏幕,将立即执行转换。下面的截图显示了一个工作流程屏幕:

如果要重用现有的过渡,只需点击 重用过渡(Reuse a transition) 选项卡、从状态(From status) 和 到状态(To status) 以及 过渡到重用(Transition to reuse),如下截图所示:

请注意,Jira 仅会根据 To status 选择列出有效的转换。 |
您可能想知道何时应创建新过渡以及何时应重用现有过渡。 两者之间的最大区别在于,当您重用转换时,重用转换的所有实例(也称为 公共转换)将共享同一组配置,例如条件和验证器。 此外,对转换所做的任何更改都将应用于所有实例。 一个很好的用例是当您需要具有相同名称和设置的多个转换时,例如关闭问题; 您可以创建一个转换,并在需要转换来解决问题时重复使用它,而不是每次都创建单独的转换。 稍后,如果您需要向转换添加新的验证器以验证其它用户输入,则只需进行一次更改,而不是对每个关闭问题转换进行多次更改。
另一个需要记住的好习惯是工作流程中不要出现死胡同——例如,允许重新打开已关闭的问题。 这将防止用户意外关闭问题并且无法纠正错误。
人们经常忽略的一件事是,您可以更改问题首次创建时转换到的状态。 默认情况下,问题一创建就会处于 打开 状态。 虽然这对于大多数情况都是有意义的,但您实际上可以更改它。 例如,您可能希望所有问题都处于 等待 状态,并仅在有人审核后才转换为 打开。您还可以更改默认的创建问题转换。通过这样做,您可以影响问题创建过程。例如,您可以在允许创建问题之前向其中添加验证器以进行额外检查,或者添加发布函数以在创建问题后立即执行其它任务。
现在我们已经了解了如何向工作流程添加新状态和转换,接下来让我们看看如何向转换添加触发器、条件、验证器和发布函数。
为转换添加触发器
只有在 Jira 与至少一种支持的开发工具集成的情况下,才能为转换添加触发器。通过触发器,您可以自动执行部分开发操作 (DevOps) 流程,例如在创建拉取请求 (PR) 时自动将问题过渡到审核中状态。要添加触发器,请执行以下步骤:
-
选择要添加触发器的转场。
-
点击 触发器 链接。
-
点击 添加触发器 按钮。如果没有集成开发工具,该按钮将被禁用,如下图所示:
Figure 5. Figure 7.10 – Add trigger button -
选择要添加的触发器,然后单击 下一步 按钮。
-
确认已检测到触发源,然后单击 添加触发器 按钮。
为转换添加条件
默认情况下,新的过渡没有任何条件。这意味着任何有权限访问问题的人都可以执行转换。Jira 允许您为过渡添加任意数量的条件。下面是具体操作方法:
-
选择要添加条件的转场。
-
单击 条件 链接。
-
单击 添加条件 链接,如下截图所示。这将带您进入 为转场添加条件 页面,该页面列出了您可以添加的所有可用条件:
Figure 6. Figure 7.11 – Add condition link -
选择要添加的条件。
-
单击 添加 按钮添加条件。
-
根据条件的不同,您可能会看到 为条件添加参数 页面,您可以在此指定条件的配置 选项。例如,用户是否在组内 条件会要求你选择一个要检查的组,如下所示:

新添加的条件会附加到现有条件列表的末尾,从而创建一个 条件组。默认情况下,当存在多个条件时,将使用逻辑 AND 运算符对条件进行分组。这意味着整个条件组必须通过所有条件才能通过。如果一个条件失败,整个组就会失败,用户将无法执行转换。您可以改用逻辑 OR 运算符,这意味着只有组中的一个条件通过,整个组才能通过。这是一个非常有用的功能,因为它允许你将多个条件组合起来,形成一个更复杂的逻辑单元。
例如,用户是否在组内 条件可让您指定一个组,但使用 AND 运算符,您可以添加多个 用户是否在组内 条件,以确保用户必须存在于所有特定组中才能执行转换。如果使用 OR
运算符,则用户只需属于列出的其中一个组。唯一的限制是不能对同一条件组同时使用两个运算符。
一个转移只能有一个条件组,每个条件组只能有一个逻辑运算符。 |
向转换添加验证器
与条件一样,转场默认情况下也不关联任何验证器。这意味着,一旦执行,转场就会完成。您可以为转场添加验证器,以确保只有在满足特定条件时才允许完成执行。使用以下步骤为转场添加验证器:
-
选择要添加条件的转场。
-
单击 验证器 链接。
-
点击 添加验证器 链接,如下图所示。这将带你进入 为过渡添加验证器 页面,该页面列出了你可以添加的所有可用验证器:
Figure 8. Figure 7.13 – Add validator link -
选择要添加的验证器。
-
单击 添加 按钮添加验证器。
-
根据验证器的不同,您可能会看到 为验证器添加参数(Add Parameters To Validator) 页面,在这里您可以指定验证器的配置选项。下面的截图显示了 字段必填 验证器的一个示例:
Figure 9. Figure 7.14 – Configuring validators
与条件类似,当一个转换添加了多个验证器时,它们会形成一个验证器组。与条件不同的是,该组只能使用逻辑 AND 条件。这意味着,为了完成转换,添加到转换中的每个验证器都必须通过其验证条件。转换不能使用逻辑 OR 条件有选择地通过验证。
下面的截图显示了一个放置在过渡上的验证器(Suite Utilities for Jira (JSU) 中的 字段必填 验证器;请参阅 使用工作流附加组件扩展工作流 部分),该验证器用于验证用户是否为 决议详细信息(Resolution Details) 字段输入了值:

为转场添加后置函数
默认情况下,创建的转场包含几个后置函数。这些后置函数为 Jira 内部操作提供关键服务,因此不能从转场中删除。这些后置函数执行以下操作:
-
将问题状态设置为目标工作流步骤的链接状态
-
如果在过渡期间输入了注释,则为问题添加注释
-
更新问题的更改历史记录并将问题存储到数据库中
-
重新索引问题,使索引与数据库保持同步
-
触发可由监听器处理的事件
正如您所看到的,这些帖子功能提供了一些基本功能,如更新搜索索引和在过渡执行后设置问题状态,这在 Jira 中是必不可少的。因此,与其让用户手动添加这些功能并冒着遗漏一个或多个功能的风险,不如在创建新的过渡时,Jira 会自动为您添加这些功能,具体步骤如下:
-
选择要添加后置函数的转场。
-
单击 后置函数 链接。
-
单击 添加后置函数 链接,如下图所示,然后选择要添加的帖子功能:
Figure 11. Figure 7.16 – Add post function link -
点击 添加 按钮,添加帖子功能。
-
根据帖子功能的不同,您可能会看到 为函数添加参数 页面,您可以在此指定帖子功能的配置选项。下面的截图显示了 更新问题字段 后置函数的一个示例:

执行转换时,每个后置函数都会在列表中从上到下依次执行。如果列表中的任何后置函数在处理过程中遇到错误,你将收到一个错误信息,其余的后置函数将不会被执行。
由于后置函数是按顺序执行的,其中一些函数还具有修改值和执行其它任务的功能,因此它们的执行顺序往往变得非常重要。例如,如果有一个后置函数将问题的受让人更改为当前用户,另一个后置函数用问题的受让人更新问题字段的值,显然更新受让人的后置函数需要首先执行,因此需要确保它位于另一个后置函数之上。
点击 上移 和 下移 链接,可以在列表中上下移动职位功能的位置。请注意,并非所有的发布功能都可以重新定位,例如 重新索引问题 和 触发事件问题 发布功能。它们的位置被锁定,以确保 Jira 中数据的完整性。