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

如何通过atlassian-python-api将Jira任务设为已完成?报错求助

解决Jira状态变更报错:The status change identifier must be an integer

错误原因

你代码里的问题有两个:

  1. jira.get_issue_status(issue_key)返回的是当前问题的状态对象(包含状态名称、ID等信息的字典),但issue_transition需要的是**状态过渡(transition)**的ID(整数)或名称(字符串),不是当前状态的信息,类型不匹配导致报错。
  2. issue_transition的参数名应该是transition,不是status,参数传参错误。

解决步骤

1. 先获取问题可用的状态过渡

用get_transitions方法获取该问题能执行的所有状态过渡,每个过渡包含id(整数)和name(过渡名称,比如“完成”):

transitions = jira.get_transitions(issue_key)

打印transitions会得到类似结构:

[
    {'id': '10000', 'name': '开始处理'},
    {'id': '10001', 'name': '完成'}
]

2. 筛选目标过渡并执行变更

从过渡列表里找到对应“完成”的项,用它的ID来执行状态变更:

from atlassian import Jira

jira = Jira(url='example.jira.com', username=username, password=password)

# 获取可用过渡
transitions = jira.get_transitions(issue_key)
# 筛选名称为“完成”的过渡(如果你的环境中过渡名称是英文,改成'Complete')
target_transition = next(t for t in transitions if t['name'] == '完成')
# 执行状态变更
jira.issue_transition(issue_key, transition=target_transition['id'])

简化写法(已知过渡ID时)

如果你已经知道“完成”对应的过渡ID(比如10001),可以直接传整数ID:

jira.issue_transition(issue_key, transition=10001)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 06:48:22