2017-09-18 2 views
0

현재 JIRA 7.3을 사용하고 있으며 scriptRunner가 설치되어 있고 groovy에 익숙하지 않아 어디서부터 시작해야하는지, 그리고 각각의 JIRA 관리자는 이러한 관리자와 설명 목록을 어디에서 찾을 수 있는지를 의미합니다.링크 된 스토리가 진행중 일 때 에픽을 진행중으로 자동 전환하기

연결된 문제 중 하나가 움직일 때 에픽이 자동으로 "진행 중"으로 전환되는 기능을 원합니다. 또한 모든 이야기가 "To Do"또는 "Done"으로 이동하면 에픽이 연결된 문제와 동일한 상태로 자동 전환됩니다.

자습서, 비디오 또는 설명이있는 스크립트에 대한 링크가 도움이 될 것입니다. 귀하의 도움을 매우 높이 평가합니다.

답변

0

문제의 연결된 서사를 찾는 방법과 전환을 수행하여 서사의 상태를 업데이트하는 방법을 보여주는 아래의 예를 찾으십시오. 이것은 ScriptRunner를위한 Groovy 스크립트입니다. 나는 이것을 스크립트 콘솔에서 신속하게 테스트했지만 워크 플로 전환의 게시 기능과 함께 이러한 스크립트를 사용할 수 있습니다.

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

도움을 주셔서 감사합니다. 한 가지 질문이 생각났습니다. 문제를 찾아보기없이 코딩 할 수있는 방법이 있습니까? – kya

+0

물론 가능합니다. ScriptRunner를 사용하면 워크 플로 전환에 대한 게시 기능 또는 (이벤트) 수신기를 만들 수 있습니다. SR 문서는 [이 이슈 이벤트 처리 방법] (https://scriptrunner.adaptavist.com/5.0.0/jira/listeners.html#_custom_listeners) – mdo

관련 문제