groovy - 使用 "Scriptrunner for Jira"自定义监听器更新自定义字段值

标签 groovy jira jira-plugin

您好,我们正在使用 Jira,目前正在评估 Adaptavist 的插件“Scriptrunner for Jira”。

我想创建一个自定义监听器,它只是更新自定义字段的值。该字段的类型是默认文本框,没什么特别的。

关于插件的文档和各种网络搜索,我想出了以下代码:

import com.atlassian.jira.issue.CustomFieldManager
import com.atlassian.jira.issue.Issue
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.MutableIssue

def issue = event.issue as Issue
MutableIssue issueToUpdate = (MutableIssue) issue;
CustomFieldManager customFieldManager = ComponentAccessor.getCustomFieldManager();
def cf = customFieldManager.getCustomFieldObjects(issue).find {it.name == 'My CustomField'}
issueToUpdate.setCustomFieldValue(cf, "myvalue");

验证器在这里没有提示任何事情,并且脚本似乎在没有任何错误的情况下执行。问题是自定义字段的值根本没有更新。也许你们中的一些人有缺失的部分。

似乎需要每一行,因为验证器会提示。提前感谢您的帮助。

最佳答案

我刚刚从 Adaptavist 那里得到了一个终于奏效的答案。请在下面找到工作代码:

import com.atlassian.jira.issue.Issue
import com.atlassian.jira.issue.ModifiedValue
import com.atlassian.jira.issue.util.DefaultIssueChangeHolder
import com.atlassian.jira.component.ComponentAccessor

def issue = event.issue as Issue
def customFieldManager = ComponentAccessor.getCustomFieldManager()
def tgtField = customFieldManager.getCustomFieldObjects(event.issue).find {it.name == "My CustomField"}
def changeHolder = new DefaultIssueChangeHolder()
tgtField.updateValue(null, issue, new ModifiedValue(issue.getCustomFieldValue(tgtField), "myvalue"),changeHolder)

关于groovy - 使用 "Scriptrunner for Jira"自定义监听器更新自定义字段值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39483956/

相关文章:

regex - 如何使用 groovy/Gradle DSL 获取与模式匹配的目录列表?

jira - 如何在 Jira 中归档项目,以便它们从项目选择器中消失

c# - 使用集成 Windows 身份验证或 NTLM 登录 Jira

java - 添加 Jira 插件的依赖项

java - Jira小工具开发

gradle - Gradle:从任务中调用Groovy静态方法

groovy - 为什么 Gradle 中的配置和依赖不是 ExtensionAware?

performance - 为什么要玩!框架选择 Groovy 作为模板引擎

jira - 基于JIRA的任务关系图

jira-plugin - atlassian-plugin.xml 包含组件导入的定义。设置 Atlassian-Plugin-Key 时不允许这样做