2017-09-18 1 views
0

Ich bin derzeit auf JIRA 7.3 und ich habe ScriptRunner installiert und ich bin nicht vertraut mit groovy, ich habe auch keine Ahnung, wo ich anfangen soll, und was jeder der JIRA Manager bedeutet, wo Sie eine Liste dieser Manager und deren Beschreibungen finden.automatisch Übergang Epic in Bearbeitung, wenn eine verknüpfte Geschichte in Bewegung

Ich hätte gerne eine Funktionalität, bei der die Epic automatisch in "In Bearbeitung" übergeht, wenn eines der verknüpften Probleme verschoben wird. Wenn alle Stories zu "To Do" oder "Done" verschoben werden, wechselt der Epic automatisch in den gleichen Status wie die verknüpften Ausgaben.

Alle Links zu Tutorials, Videos oder ein Skript mit Erklärungen helfen. Ihre Hilfe wird sehr geschätzt.

Antwort

0

Unten finden Sie ein Beispiel, das zeigt, wie Sie das verknüpfte Epic eines Problems finden und den Status des Epics durch einen Übergang aktualisieren können. Dies ist ein Groovy-Skript für ScriptRunner. Ich habe das in der Skriptkonsole getestet, aber Sie könnten ein solches Skript mit einer Post-Funktion eines Workflow-Übergangs verwenden.

import com.atlassian.jira.component.ComponentAccessor; 
import com.atlassian.jira.issue.CustomFieldManager; 
import com.atlassian.jira.issue.fields.CustomField; 
import com.atlassian.jira.issue.Issue; 
import com.atlassian.jira.issue.MutableIssue; 
import com.atlassian.jira.issue.IssueManager; 

import com.atlassian.jira.issue.IssueInputParameters; 
import com.atlassian.jira.issue.IssueInputParametersImpl; 
import com.atlassian.jira.bc.issue.IssueService 

CustomFieldManager customFieldManager = ComponentAccessor.getCustomFieldManager(); 
IssueManager issueManager = ComponentAccessor.getIssueManager(); 
IssueService issueService = ComponentAccessor.getComponent(IssueService); 
CustomField epicLinkField = customFieldManager.getCustomFieldObjectByName('Epic Link'); 

//hardcode lookup to issue for script console: 
MutableIssue issue = issueManager.getIssueObject("FID-15"); 

IssueInputParameters issueInputParameters = new IssueInputParametersImpl([:]); 

//lookup the corresponding epic via the subtask's parent 
MutableIssue epic = issueManager.getIssueObject(
    (String)issue.getCustomFieldValue(epicLinkField) 
); 

// 21 is the transition ID in my workflow 
IssueService.TransitionValidationResult validationResult = 
    issueService.validateTransition(epic.getAssignee(), 
    epic.id, 21 as Integer, issueInputParameters) 

def errorCollection = validationResult.errorCollection 
log.error(errorCollection) 
if (! errorCollection.hasAnyErrors()) { 
    issueService.transition(epic.getAssignee(), validationResult) 
    log.error("OK") 
} 
else { 
    log.error("ERROR") 
} 
+0

Vielen Dank für Ihre Hilfe. Eine Frage dachte nach. Gibt es einen Weg, ich kann es tun, ohne hart zu programmieren das Problem nachschlagen? – kya

+0

Ja, natürlich. Mit ScriptRunner könnten Sie entweder eine Post-Funktion für einen Workflow-Übergang oder einen (Ereignis-) Listener erstellen. In den SR-Dokumenten wird erläutert, wie Sie mit diesen Problemereignissen umgehen können (https://scriptrunner.adaptavist.com/5.0.0/jira/listeners.html#_custom_listeners). – mdo

Verwandte Themen