【问题标题】:Create JIRA sub-tasks automatically when issue created创建问题时自动创建 JIRA 子任务
【发布时间】:2012-06-08 04:16:59
【问题描述】:

我想知道有没有一种方法可以在创建问题时自动创建子任务。

例如,我创建了一个自定义标准问题类型 XXX,以及子任务问题类型 YYY 和 ZZZ。当我创建一个类型为 XXX 的问题时,将自动创建两个问题类型为 YYY 和 ZZZ 的子任务。

【问题讨论】:

    标签: jira jira-plugin


    【解决方案1】:

    您可以使用Jira Scripting Suite 轻松实现这一点,方法是在项目工作流程的问题创建转换中使用发布功能。示例代码:

    from com.atlassian.jira.util import ImportUtils
    from com.atlassian.jira import ManagerFactory
    from com.atlassian.jira.issue import MutableIssue
    from com.atlassian.jira import ComponentManager
    from com.atlassian.jira.issue.link import DefaultIssueLinkManager
    from org.ofbiz.core.entity import GenericValue;
    
    # get issue objects
    issueManager = ComponentManager.getInstance().getIssueManager()
    issueFactory = ComponentManager.getInstance().getIssueFactory()
    authenticationContext = ComponentManager.getInstance().getJiraAuthenticationContext()
    subTaskManager = ComponentManager.getInstance().getSubTaskManager();
    issueLinkManager = ComponentManager.getInstance().getIssueLinkManager()
    customFieldManager = ComponentManager.getInstance().getCustomFieldManager()
    userUtil = ComponentManager.getInstance().getUserUtil()
    
    # define subtask
    issueObject = issueFactory.getIssue()
    issueObject.setProject(issue.getProject())
    issueObject.setIssueTypeId("5") # normal subtask
    issueObject.setParentId(issue.getId())
    
    # set subtask attributes
    issueObject.setFixVersions(issue.getFixVersions())
    issueObject.setAffectedVersions(issue.getAffectedVersions())
    issueObject.setPriority(issue.getPriority())
    issueObject.setSummary("Auto created sub task- "+issue.getSummary())
    issueObject.setAssignee(userUtil.getUserObject("joe"))
    
    # Create subtask on JIRA 4.x
    # subTask = issueManager.createIssue(authenticationContext.getUser(), issueObject)
    # subTaskManager.createSubTaskIssueLink(issue.getGenericValue(), subTask, authenticationContext.getUser())
    
    # Create subtask on JIRA 5 and higher
    subTask = issueManager.createIssueObject(authenticationContext.getLoggedInUser(), issueObject)
    subTaskManager.createSubTaskIssueLink(issue, subTask, authenticationContext.getLoggedInUser())
    
    # Link parent issue to subtask   issueLinkManager.createIssueLink(issue.getId(),issueObject.getId(),10300,1,authenticationContext.getUser())
    
    # Update search indexes
    ImportUtils.setIndexIssues(True);
    ComponentManager.getInstance().getIndexManager().reIndex(subTask)
    ImportUtils.setIndexIssues(False)
    

    【讨论】:

      【解决方案2】:

      要考虑的一件事是,如果在所有子任务关闭之前关闭父问题会发生什么。我建议在关闭问题之前加入一个钩子来提示用户解决所有子任务。

      【讨论】:

        【解决方案3】:

        我找到了一个使用附加脚本运行器的简单解决方案 - http://isolasoftware.it/2014/01/08/create-an-issue-in-jira-with-predefined-sub-tasks/

        您无需编写任何代码,只需在工作流编辑器中设置发布功能“创建子任务”即可。

        【讨论】:

          【解决方案4】:

          只需创建一个名为“模板”的工单(包含所有必要的子任务)并在创建新实例时复制/克隆它。

          【讨论】:

            猜你喜欢
            • 2016-03-16
            • 2014-03-30
            • 1970-01-01
            • 1970-01-01
            • 2022-01-27
            • 2012-08-19
            • 2016-11-03
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多