如何在JIRA中克隆问题?

时间:2018-11-30 00:32:06

标签: jira-rest-api python-jira

我想使用Python中的REST API在JIRA中克隆一个现有的问题,但是我也想在克隆它时更改项目和问题的类型。我该怎么办?

非常感谢您的帮助。

谢谢!

2 个答案:

答案 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])