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
}