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

如何使用python-jira查找JIRA工单更新用户并解决过渡权限问题

解决python-jira查找状态变更用户的问题

嘿,我来帮你理清这个问题~首先得纠正一个误区:你用的[(t['id'],t['name']) for t in j.transitions(issue)]这段代码,获取的是当前你的账号有权限执行的工单过渡操作,不是历史上已经发生过的变更记录。所以它返回空列表,说明你没有执行过渡的权限,但这不影响你查看历史变更——毕竟你在网页上能看到工单和它的状态变化记录。

要找到把工单从“Assigned”改成“Fixed”的用户,你需要去查询工单的变更历史(changelog),具体步骤如下:

1. 加载工单的变更历史

默认情况下,调用j.issue()获取工单时不会加载变更历史,所以需要显式指定expand='changelog'参数来获取这部分数据:

from jira import JIRA

# 初始化JIRA客户端(根据你的配置调整)
j = JIRA(server='https://your-jira-instance.com', basic_auth=('username', 'password'))

# 获取工单并加载变更历史
issue = j.issue('YOUR-ISSUE-KEY', expand='changelog')

2. 遍历历史记录筛选目标变更

遍历工单的变更历史,找到状态从“Assigned”变为“Fixed”的条目,对应的author就是执行该操作的用户:

# 遍历所有历史变更条目
for history in issue.changelog.histories:
    for item in history.items:
        # 匹配状态变更:从Assigned到Fixed
        if item.field == 'status' and item.fromString == 'Assigned' and item.toString == 'Fixed':
            print(f"执行状态变更的用户:{history.author.displayName}")
            print(f"用户账号:{history.author.name}")
            print(f"变更时间:{history.created}")

可能的注意事项

  • 如果你的python-jira版本较旧,fromString和toString可能会变成from_和to_,可以打印item的属性来确认:print(dir(item))
  • 如果你还是获取不到变更历史,需要确认你的账号在JIRA系统中拥有查看工单历史的权限(比如“View Issue History”权限)——既然网页能看,这个权限应该是有的,但可以联系管理员确认。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 06:22:37