如何使用Scriptrunner修改JIRA DC v9.x自定义字段上下文名称?
如何修改JIRA Data Center v9.x自定义字段上下文名称(ScriptRunner实现)
环境
JIRA Data Center v9.x
问题说明
已通过ScriptRunner实现获取自定义字段上下文名称,代码如下:
CustomField cField = customFieldManager.getCustomFieldObject(customFieldId) List<FieldConfigScheme> contexts = cField.getConfigurationSchemes() if ( contexts.size() == 1 ){ FieldConfigScheme tmpContext = contexts[0] log.warn("tmpContext :: ${tmpContext.name}") }
但FieldConfigScheme类未提供set方法,无法直接修改上下文名称,此前未找到可行解决办法。
解决方案
最终找到可用的实现脚本,逻辑为遍历所有自定义字段,筛选出名称包含指定关键词的上下文,通过SchemeBuilder构建更新后的配置方案,再调用fieldConfigSchemeManager完成修改:
def allCFIDs = customFieldManager.getCustomFieldObjects().collect({return it.getId()}) allCFIDs.each { customFieldId -> CustomField cField = customFieldManager.getCustomFieldObject(customFieldId) List<FieldConfigScheme> contexts = cField.getConfigurationSchemes() FieldConfigScheme tmpContext = contexts[0] if ( tmpContext.name.contains("Fred") ){ def newname = tmpContext.name + " Flintstone" log.warn("Rename Context:: ${tmpContext.name} to :: ${newname}") def schemeData = new SchemeBuilder( tmpContext ) schemeData.setName( newname ) def updatedScheme = schemeData.toFieldConfigScheme() fieldConfigSchemeManager.updateFieldConfigScheme( updatedScheme ) } }
内容的提问来源于stack exchange,提问作者user20940019
相关产品推荐
相关产品推荐

