使用脚本自定义 Jira
到目前为止,我们所看到的应用程序都是预先包装好的、专为提供特定功能而设计的解决方案。这些都很好,因为它们为人们常见的问题或每个人都需要的功能提供了解决方案。
但是,有时您的需求并不在 Atlassian Marketplace 上的任何应用程序的覆盖范围之内。现在,您可以为此创建一个自定义应用程序,但通常情况下,您只需要一个以特定方式捕获或显示数据的自定义字段,或者一个具有某些专门业务逻辑的工作流验证器。在这种情况下,你可以使用名为 ScriptRunner 的应用程序。
ScriptRunner 是一款将脚本功能引入 Jira 的应用程序。如果您知道如何编写 Groovy 脚本,ScriptRunner 就能让您创建自定义字段、工作流组件(如验证器)以及由自己的 Groovy 脚本定义的发布函数。这样,您就可以用自己的业务逻辑来实现这些组件,而无需创建一个完整的应用程序。
在本节中,我们将介绍 ScriptRunner 应用程序,以及如何使用它创建自己的自定义字段。安装 ScriptRunner 应用程序后,进入 Jira 管理控制台时会出现一个新的 ScriptRunner 选项卡。正如我们所看到的,ScriptRunner 提供了许多不同的选项供您创建脚本,包括一些内置脚本。由于本节的重点是创建我们自己的自定义字段,因此我们将关注 字段。

要创建自定义脚本字段,请选择 字段 选项,然后选择 自定义脚本字段 选项,如图所示:

既然选择了创建脚本字段,我们就需要为字段和脚本本身提供一些基本细节。在我们的示例中,我们将创建一个简单的字段,显示问题的评论数:
-
为我们的字段输入一个名称,例如 "评论数"。
-
为字段选择模板。这将决定字段的外观。例如,我们将选择 数字字段 模板。
-
输入字段显示时将运行的脚本。使用 ScriptRunner,您可以以内联代码或从文件加载脚本。内联代码易于使用,但将代码保存到文件中更便于维护,因为你可以将代码文件保存在代码库中,以便更好地跟踪变更。在我们的示例中,我们将使用内联选项:
import com.atlassian.jira.component.ComponentAccessor def commentManager = ComponentAccessor. getCommentManager() def numberOfComments = commentManager.getComments(issue). size() return numberOfComments ? numberOfComments as Double : null
-
在 预览问题键 文本框中输入问题密钥,然后单击 预览 按钮。这将针对该问题测试我们的脚本。
-
单击 添加 按钮创建自定义字段。

创建自定义脚本字段后,我们需要确保该字段应用于正确的上下文,并添加到必要的字段中。完成后,您就会看到该字段显示问题的评论数:

由于每次呈现字段时都会运行脚本,因此其值会自动更新。如果希望字段中的值可以搜索,请确保为其指定一个搜索模板。由于我们的字段显示的是数字,因此可以使用数字搜索器或数字范围搜索器。