You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python脚本更新Jira单选自定义字段customfield_11104至Staging

修复Jira单选自定义字段更新的Python脚本错误

要更新Jira的单选自定义字段customfield_11104(选项:None、PR Review、Production、Staging、Rejected)为Staging时,执行脚本出现如下错误:

{"errorMessages":[],"errors":{"customfield_11104":"Could not find valid 'id' or 'value' in the Parent Option object."}}

原脚本:

from jira import JIRA
import urllib3
import sys
urllib3.disable_warnings()
API_token = 'xxx'
jiraOptions = {'server': 'https://xxx','verify': False}
authedJira = JIRA(jiraOptions, token_auth=API_token,max_retries=0)
#example
ticket = sys.argv[1]
issue = authedJira.issue(ticket)
issue.update(fields={'customfield_11104': [{'value':'Staging'}]})

错误原因

问题出在字段值的格式上——单选自定义字段不需要用数组包裹,你用了[{'value':'Staging'}]这种数组格式,这是给多选字段设计的,Jira API无法识别单选字段的数组传参,因此触发报错。

修正后的脚本

from jira import JIRA
import urllib3
import sys
urllib3.disable_warnings()
API_token = 'xxx'
jiraOptions = {'server': 'https://xxx','verify': False}
authedJira = JIRA(jiraOptions, token_auth=API_token,max_retries=0)
#example
ticket = sys.argv[1]
issue = authedJira.issue(ticket)
# 去掉外层数组,直接传字典格式
issue.update(fields={'customfield_11104': {'value':'Staging'}})

可选优化方案

如果想让脚本更稳定(避免选项名称变更导致失效),可以用字段选项的ID替代名称传参。先通过以下代码获取选项ID:

# 获取字段详情
field = authedJira.field('customfield_11104')
# 获取字段所有选项
options = authedJira.custom_field_options(field['id'])
for opt in options:
    print(f"选项名称: {opt.name}, ID: {opt.id}")

之后将更新语句改为:

issue.update(fields={'customfield_11104': {'id': '对应Staging的选项ID'}})

内容的提问来源于stack exchange,提问作者Deepak Rohilla

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 23:15:43