2012-06-04 10 views
9

Zastanawiam się, czy istnieje sposób automatycznego tworzenia pod zadań po utworzeniu wydania.Tworzenie zadań podrzędnych JIRA automatycznie po utworzeniu wydania

Na przykład tworzę niestandardowy standardowy typ problemu, XXX i podwłoki Typ problemu YYY i ZZZ. Gdy utworzę problem z typem XXX, automatycznie zostaną utworzone dwa zadania dodatkowe z odpowiednim typem problemu YYY i ZZZ.

Odpowiedz

10

Można to łatwo za pomocą Jira Scripting Suite za pomocą funkcji postu podczas przejścia tworzenia problemu w obiegu pracy projektu. Przykładowy kod:

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) 
+0

Miał 'com.atlassian.jira.exception.CreateException' aż do odkomentowania linii z' setIssueType'. – Nakilon

+0

@Nakilonless thanks! naprawiony.. – Kuf

0

Jedną rzeczą do rozważenia jest to, co się dzieje, jeśli problem rodzic jest zamknięty, zanim wszystkie podzadania są zamknięte. Zalecam wstawienie haka, aby zachęcić użytkownika do adresowania wszystkich podzadań przed zamknięciem problemu.

1

Po prostu utwórz bilet o nazwie "szablon" (ze wszystkimi niezbędnymi podzadaniami) i skopiuj/sklonuj go przy każdym tworzeniu nowych instancji.

Powiązane problemy