jira python-如何更新fixVersions字段?
我不确定我做错了什么,我希望其他人也有同样的问题。我没有得到任何错误,我的json与Jira的文档和Jira python在线问题上应该正确的内容相匹配。我的版本是有效的Jira版本。我也可以直接通过API来实现这一点,但我们正在重新编写所有内容,以通过jira python实现清洁度/易用性 这将完全清除Jira中的fixVersions字段jira python-如何更新fixVersions字段?,jira,jira-rest-api,python-jira,Jira,Jira Rest Api,Python Jira,我不确定我做错了什么,我希望其他人也有同样的问题。我没有得到任何错误,我的json与Jira的文档和Jira python在线问题上应该正确的内容相匹配。我的版本是有效的Jira版本。我也可以直接通过API来实现这一点,但我们正在重新编写所有内容,以通过jira python实现清洁度/易用性 这将完全清除Jira中的fixVersions字段 issue=jira.issue("TKT-100") issue.update(fields={'fixVersions':[{'add': {'na
issue=jira.issue("TKT-100")
issue.update(fields={'fixVersions':[{'add': {'name': 'add_me'}},{'remove': {'name': 'remove_me'}}]})
我可以使用issue.add_field_value()向fixVersions添加新版本,但这不起作用,因为我需要在一个请求中添加和删除票据的历史记录
issue.add_field_value('fixVersions', {'name': 'add_me'})
有什么想法吗?这里有一个代码示例,说明我是如何让它为后来遇到这个问题的人工作的
fixVersions = []
issue = jira.issue('issue_key')
for version in issue.fields.fixVersions:
if version.name != 'version_to_remove':
fixVersions.append({'name': version.name})
fixVersions.append({'name': 'version_to_add'})
issue.update(fields={'fixVersions': fixVersions})
我用另一种方式:
issue=jira.issue('issue_NUM')
i、 更新(字段={'fixVersions':[{'name':ver.name}]})
在我的例子中,这是有效的。用户797963解决方案的pythonic版本可能看起来是这样的
def change_fix_version(tickets, remove_versions=[], add_versions=[]):
fix_versions={version.name for version in ticket.fields.fixVersions}
fix_versions.difference_update(set(remove_versions))
fix_versions.update(set(add_versions))
ticket.update(fields={'fixVersions':fix_versions})
你会这样称呼它:
change_fix_versions(jira.issue('my_issue'), remove_versions=['draft'], add_versions=['master', 'release'])
事实上,我发现可以这样做:首先在一个票证中找到所有的fixVersions,将除了要删除的fixVersions之外的所有fixVersions都放到一个列表中,附加新的fixVersion,并使用“set”动词,而不是“add”和“remove”。Jira不会覆盖其他fixVersion值。实际上,我从这个方法开始,注意到它正在清除现有版本。只有最后一个版本卡住了。但是使用add_field_value()实现了这一点。您忘记了fix_版本应该是一个dict列表<代码>修复版本=[version.raw代表票证中的版本。fields.fixVersions]。然后你应该假设你的用法是这样的
change\u-fix\u-versions(jira.issue('my\u-issue'),remove\u-versions=[{'name':'draft'}],add\u-versions=[{'name':'master'},{'name':'release'}])