我不确定我在这里做错了什么,并希望别人有同样的问题。我没有收到任何错误,我的json与Jira的docs和jira-python在线问题都应该是正确的。我的版本是有效的Jira版本。我也可以通过API直接执行此操作,但我们正在重新编写所有内容以通过jira-python来实现清洁/易用性。
这完全清除了Jira中的fixVersions字段。
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'})
有什么想法吗?
答案 0 :(得分:12)
这是一个代码示例,说明我如何让以后遇到这种情况的人工作......
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})
答案 1 :(得分:1)
我用其他方式做到了
更新票证。
ver = jira.create_version(name ='version_name',project ='PROJECT_NAME')
问题= jira.issue('ISSUE_NUM')
i.update(fields = {'fixVersions':[{'name':ver.name}]})}
在我看来是可行的。
答案 2 :(得分:0)
user797963解决方案的更多Python版本,可能看起来像这样。
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'])