脚本运行程序:更新版本时更新 Jira 子任务



更新父任务版本时,我需要更新 Jira 子任务版本字段。并且仅在更新父任务版本时。

我一直在使用 Atlassian 社区论坛 https://community.atlassian.com/t5/Jira-questions/Custom-update-listener-to-set-subtask-s-fix-version/qaq-p/591808(由 Martin Hanus 编写(中的现有脚本。

import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.event.type.EventDispatchOption
import com.atlassian.jira.issue.Issue
import com.atlassian.jira.issue.IssueManager
import com.atlassian.jira.issue.MutableIssue
import com.atlassian.jira.project.version.Version
IssueManager issueManager = ComponentAccessor.getComponent(IssueManager.class)
Issue updatedIssue = event.getIssue()
Collection<Version> fixVersions = new ArrayList<Version>()
fixVersions = updatedIssue.getFixVersions()
Collection<Issue> subTasks = updatedIssue.getSubTaskObjects()
subTasks.each {
if (it instanceof MutableIssue) {
((MutableIssue) it).setFixVersions(fixVersions)
issueManager.updateIssue(event.getUser(), it, EventDispatchOption.ISSUE_UPDATED, false)
}
}

这会正确更改子任务版本,但每次更新父任务时都会更改子任务版本。如何使其仅在父任务版本更新时更新?

我无法测试下面的代码,所以把它作为一个建议。

来源: https://community.atlassian.com/t5/Marketplace-Apps-Integrations/Find-out-if-a-JIRA-update-event-changes-a-specific-issue-field/qaq-p/618091

您可以检查您感兴趣的字段的旧值,如果未执行,则中止脚本:

def change = event?.getChangeLog()?.getRelated("ChildChangeItem")?.find {it.field == "FixVersions"}
if (!change) {
return
}

最新更新