Create JIRA sub-tasks automatically when issue created

后端 未结 4 1101
佛祖请我去吃肉
佛祖请我去吃肉 2021-02-05 19:58

I am wondering there is a way to create sub-tasks automatically when issue created.

For example, I create a custom Standard Issue Type, XXX, and Sub-tasks Issue Type YYY

4条回答
  •  小鲜肉
    小鲜肉 (楼主)
    2021-02-05 20:11

    You could so this easily using Jira Scripting Suite by using post function on issue creation transition on the project's workflow. Sample code:

    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)
    

提交回复
热议问题