使用Jira Python库添加评论时指定作者和创建时间的实现问题
Jira Python库创建评论时指定作者和时间戳的实现方法
问题原因
你之前的操作无法生效的核心原因如下:
- 直接调用
jira.add_comment()默认使用当前认证账号作为评论作者,拼接时间+作者的字符串格式仅适用于CSV导入场景,Jira REST API不会识别该格式 - 调用
newIssue.update(author=xxx)修改的是工单本身的创建人,和评论的作者属性完全无关,因此不会生效
实现前提
你用于认证Jira的账号,必须拥有以下权限:
- 项目级的 编辑所有评论 权限
- 修改评论元数据(创建时间/作者) 的权限
没有对应权限的话需要先联系Jira管理员开通。
实现方法
方法1:创建评论时直接指定参数
jira-python的add_comment方法支持传入额外的payload参数,直接指定author和created字段即可:
from datetime import datetime # 构造作者信息,替换为目标用户的accountId target_author = {"accountId": "目标用户的accountId字符串"} # 构造符合Jira格式的时间,注意补充对应时区,示例为东八区 target_create_time = datetime(2024, 5, 20, 14, 30, 0).isoformat() + "+0800" # 创建评论时直接传入参数 new_comment = jira.add_comment( issue=newIssue, body=strComment, author=target_author, created=target_create_time )
方法2:创建后更新评论属性
如果方法1不生效(部分旧版本Jira不支持创建时指定元数据),可以先创建评论,再调用评论的update方法修改属性:
# 第一步先创建默认评论 new_comment = jira.add_comment(newIssue, strComment) # 第二步更新评论的作者和创建时间 new_comment.update( author=target_author, created=target_create_time )
注意事项
- Jira Cloud版本必须使用
accountId标识用户,不要传入用户名或邮箱;Jira Server旧版本可根据实际情况替换为name字段指定用户名 - 时间必须使用带时区的ISO 8601格式,格式错误会导致请求报错
内容的提问来源于stack exchange,提问作者MangoMan
相关产品推荐
相关产品推荐

