有时候新建自定义字段选项可能有几百个,手动操作很慢,通过脚本来批量添加单选列表的选项。


import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.customfields.manager.OptionsManager
import com.atlassian.jira.issue.customfields.impl.SelectCFType
import com.atlassian.jira.issue.fields.CustomField

def customFieldName = "控制器"
def values = 
[
'AAS',
'ABM',
'ACP',
'ACU',
'ADB',
'ADCC',
'AFS',
'AGS',
'AIM',
'AIPM',
'AIPMR'
]

def customFieldManager = ComponentAccessor.getCustomFieldManager()
def optionsManager = ComponentAccessor.getComponent(OptionsManager)

CustomField customField = customFieldManager.getCustomFieldObjectByName(customFieldName)

if (!(customField?.getCustomFieldType() instanceof SelectCFType)) {
    throw new IllegalArgumentException("字段 '${customFieldName}' 不是单选列表类型")
}

// 获取字段所有配置(适用于多项目或全局)
def fieldConfigs = customField.getConfigurationSchemes().collectMany { it.configs.values() }

fieldConfigs.each { config ->

    #####注意!清空全部选项先#######
    optionsManager.getOptions(config).each {
        optionsManager.deleteOptionAndChildren(it)
    }

    //添加新选项
    values.eachWithIndex { value, index ->
        optionsManager.createOption(config, null, index.toLong(), value)
    }
}

return "已成功为字段 [${customFieldName}] 的 ${fieldConfigs.size()} 个配置添加 ${values.size()} 个选项"