4

我目前正在运行一个相当开箱即用的 JIRA 设置,它是实时的并且正在使用。

现在,我希望在每个错误中都有一个自定义字段,该字段将显示总次数和问题/错误已重新打开。

有一个插件(https://answers.atlassian.com/questions/19665/how-to-count-based-on-status-jira)可以做类似的事情,但是,我正在寻找一个不需要购买第三方插件(OPS 不喜欢插件)。

我搜索了高低的论坛,甚至找不到一个好的起点。您的帮助总是值得赞赏的。提前致谢!

编辑:当前 JIRA 版本:5.2

4

3 回答 3

3

创建一个自定义字段来计算问题打开的次数,并将其默认值设置为 1。然后使用行为插件将验证脚本添加到您希望计算的转换中。在验证脚本中,增加自定义字段并返回 true。应该是这样的:

FormField formComponent = getFieldById(fieldChanged)
FormField formUserField = getFieldByName("UserFieldA"
formUserField.setFormValue(Integer.valueOf(formUserField.getFormValue()) + 1)

如果您在编码时遇到问题,请查看此处或询问此处。

一种更简单的方法是使用Jira Scripting Suite攻击重新打开转换的后功能, 并使用它来增加字段,但它还不支持 Jira 5.2。

如果您不想使用任何插件,则可以使用附加到重新打开工作流转换的Webhooks,该转换将发布到 URL,而 URL 又将使用REST API连接回来并增加该字段。

于 2013-02-01T17:23:24.420 回答
0

定义字段包含一些信息(指标、计数器、杂项信息等),但它本身不是逻辑。所以这里的问题是,为了增加一个(自定义)字段,你必须有一些逻辑来做这件事。所以你有三个选择:

  1. 使用您正在谈论的插件
  2. 为此定制一个插件
  3. 使用自定义构建的外部应用程序,该应用程序利用REST API轮询有关问题的更改以及何时检测到“重新打开”并增加自定义字段的值。
  4. 手动分配此字段(不是真正的选项)

所以最后没有那么多不需要资源的选项 - 开发或购买一些插件。通常最好购买插件,因为您还购买了支持。但是请注意,如果该插件不是由 Atlassian 开发的,则它可能不支持未来的 JIRA 版本,或者在新的 JIRA 版本发布后可能不兼容。

于 2013-01-31T10:27:46.303 回答
0

我的解决方案是使用以下代码将后功能添加到“重新打开”转换(假设您已安装并启用了Script Runner插件;您还必须将自定义字段“重新打开计数”添加到相应的视图屏幕):

import com.atlassian.jira.ComponentManager
import com.atlassian.jira.issue.CustomFieldManager
import com.atlassian.jira.issue.util.DefaultIssueChangeHolder
import com.atlassian.jira.issue.ModifiedValue

def componentManager = ComponentManager.getInstance()
def customFieldManager = componentManager.getCustomFieldManager() 
def reopenCount = customFieldManager.getCustomFieldObjects(issue).find {it.name == 'Reopen count'}
def changeHolder = new DefaultIssueChangeHolder();
def reopenCountValue = issue.getCustomFieldValue(reopenCount)
if(reopenCountValue == null) reopenCountValue = 0.0d
reopenCount.updateValue(
    null, 
    issue, 
    new ModifiedValue(
        reopenCountValue, 
        ++reopenCountValue
    ), 
    changeHolder
);
于 2017-01-31T10:16:33.573 回答