我想使用Python中的REST API在JIRA中克隆一个现有的问题,但是我也想在克隆它时更改项目和问题的类型。我该怎么办?
非常感谢您的帮助。
谢谢!
答案 0 :(得分:0)
我不认为克隆是可用的终结点,但是即使我知道将问题“移动”到另一个项目和/或问题类型也不是终结点。解决此问题的方法是执行以下操作。
1:读取Jira票证的值,并将要保留的重要字段存储为变量
2:向Jira发送请求以创建新票证,并传递您想要保留的值,这些值可能是“摘要”,“描述”,“受让人”,“报告者”以及您使用的任何其他字段。
我使用Jira库来协助请求https://jira.readthedocs.io/en/master/
示例代码:
import configuration #.py file that I store my username/password/token/server domain
from jira import JIRA
#--Initialize Jira
jira = JIRA(basic_auth=(configuration.JIRAProdUsername, configuration.JIRAProdToken), options = {'server':'https://'+configuration.JIRAProdDomain+'.atlassian.net'})
#Search for issues to be updated
issue_search_convert = jira.search_issues("SOME JQL FILTER THAT FINDS THE ISSUES YOU WANT TO CLONE",maxResults=75)
#Create New Jira Tickets
for key in issue_search_convert:
issue = jira.issue(key)
issue_description = issue.fields.description
issue_summary = issue.fields.summary
jira_dict_convert = {
'project': {'key': 'ITS'},
'summary': issue_summary,
'assignee': {'name': 'User1@example.com'},
'reporter': {'name': 'User2@example.com'},
'issuetype': {'name': 'NameOfIssueType'},
'description': issue_description,
'components': [{'name': 'Component'}],
'customfield_12761': SomeCustomFieldValue
}
jira.create_issue(jira_dict_convert)
答案 1 :(得分:0)
也添加子任务
建议采用上述方法,我们在使用 JS 和 Java 的项目中也这样做。 然而,漏掉的一点是添加子任务。
循环中的其他步骤;创建新问题后,获取其密钥并创建子任务。更改您想要的任何属性:
new_issue = jira.create_issue(jira_dict_convert)
for(subtask in range(len(subtasks)):
subtasks[subtask]["fields"]["parent"] = {
"key": new_issue.get("key")
}
subtasks[subtask]["fields"]["summary"]="new subtask summary"
jira.create_issue(subtasks[subtask])