Jira - 单选自定义字段 通过接口添加选项
Max.Bai
2019-10
1. 背景
Jira里面自定义字段的选择需要在admin页面配置
Administration panel > Custom fields > configure > Edit options
有没有可以自动添加的接口什么的,经过查找,找到如下资源,先行mark,待有空来验证。
2020-03-13 更新,发现插件可以实现,看第3节
2. 信息
摘抄一下,以免信息丢失。
Followed this tutorial: https://developer.atlassian.com/server/framework/atlassian-sdk/developing-a-rest-service-plugin/
Added following method to the Rest Resource class (MyRestResrouce.java in the tutorial).
/**
* This method is to be used whenever a new option is to be added to a custom field. It will add it to the top of the list.
* @param fieldId - custom field id, e.g,. customfield_10000
* @param optionVal - option value, e.g,. 4.1r1.24.67643_70
* @return
*/
@GET
@AnonymousAllowed
@Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
@Path("/addOptionsToCustomField")
public Response addOptionToCustomField(@QueryParam("fieldId") String fieldId, @QueryParam("optionVal") String optionVal)
{
CustomFieldManager customFldMgr = ComponentAccessor.getCustomFieldManager();
OptionsManager optionsManager = ComponentAccessor.getComponentOfType(OptionsManager.class);
if (fieldId == null || fieldId.trim().equals("")) {
return Response.ok(new ZRestResourceModel("default","Missing custom field id")).build();
}
//error checking code snipped
CustomField customField = customFldMgr.getCustomFieldObject(fieldId);
//error checking code snipped
List<FieldConfigScheme> schemes = customField.getConfigurationSchemes();
if (schemes != null && !schemes.isEmpty()) {
FieldConfigScheme sc = schemes.get(0);
MultiMap configs = sc.getConfigsByConfig();
if (configs != null && !configs.isEmpty()) {
FieldConfig config = (FieldConfig) configs.keySet().iterator().next();
Options ops = optionsManager.getOptions(config);
if(ops != null && ops.getOptionForValue(optionVal, null) != null)
return Response.ok(... snipped
Option op = optionsManager.createOption(config, null,
new Long(1),
optionVal);
ops = optionsManager.getOptions(config);
ops.moveToStartSequence(op);
}
}
return Response.ok(new ZRestResourceModel("default","SUCCESS")).build();
}
3. 插件可以实现接口
发现了这个插件,可以通过接口实现对单选选项的设置
custom filed plugin
https://codeclou.io/customfield-editor-for-jira/1.3.0/rest-api/
请求头带账号密码:
13500 为custom field ID
POST http://10.10.11.18:8080/rest/jiracustomfieldeditorplugin/1/user/customfields/13500/contexts/default/options HTTP/1.1
content-type: application/json
Authorization: Basic administrator 1231231232
{ "optionvalue": "BBB品牌" }
失败信息:
HTTP/1.1 400
{
"message": "validation errors",
"statusCode": 400,
"subCode": 400000,
"errors": [
{
"name": "optionvalue",
"message": "This option value does already exist. Option values need to be unique."
}
]
}
成功信息:
HTTP/1.1 200
{
"optionvalue": "BBB品牌",
"id": 15718,
"sequence": 264,
"disabled": false
}