当子任务更新时,JIRA / Greenhopper更新故事

时间:2011-08-10 16:09:24

标签: task jira jira-agile user-stories

在我的JIRA / Greenhopper中,当我将故事中的子任务移动到“正在进行中”时,我可以自动将我的故事移至“正在进行中”吗?

当我关闭故事中的所有任务时,它会自动将我的故事关闭。

3 个答案:

答案 0 :(得分:1)

您要做的是将后期功能添加到任务的工作流程从“打开”转换为“正在进行”。后期功能应将父级用户素材从“打开”转换为“正在进行”。我使用Jira Scripting Suite插件和Jython脚本来做类似的事情。

你的算法会是这样的:

parentUserStory = task.getParentObject()
if (parentUserStory.getStatusObject().getName() == "Open"):
    inProgressTransitionID = 41 # This is the id of the transition from Open -> In Progress in the User Story workflow*
    workflowManager = ComponentManager.getInstance().getWorkflowManager()
    userStoryWorkflow = workflowManager.getWorkflow(parentObject)
    usCurrentStep = userStoryWorkflow.getLinkedStep(parentObject.getStatus())
    listOfActions = usCurrentStep.getActions()
    for act in listOfActions:
        if str(act) == "In Progress":
            break
        else: 
            log.debug("No match: " + str(act))
    iIP = IssueInputParametersImpl()

    issueService = ComponentManager.getInstance().getIssueService()
transitionValidationResult = issueService.validateTransition(issue.getAssignee(),parentObject.getId(),act.getId(),iIP)

关键点:

  • 您不想随意更改问题状态。那种疯狂就是谎言。相反,请通过其工作流程转换问题。
  • 实现转换的实际代码取决于您的Jira版本和您选择的语言。它可能很复杂。复制和粘贴上面的内容无疑会失败。希望这足以让你开始。
  • 额外资源:answers.atlassian.com

答案 1 :(得分:1)

currUser = ComponentManager.getInstance().getJiraAuthenticationContext().getUser()
currUserName = currUser.getName()
issueServiceObj = ComponentManager.getInstance().getIssueService()
issueParamImpl = IssueInputParametersImpl()
issueParamImpl.setAssigneeId(currUserName)
issueId = issue.getId()
transValiRes = issueServiceObj.validateTransition(currUser,issueId,91,issueParamImpl)
if(transValiRes.isValid()):
   System.out.println("Transition validated")
   transitionResult = issueServiceObj.transition(currUser,transValiRes)
else:
   System.out.println("in else") 

如果我遗失了某些内容,请告诉我

答案 2 :(得分:0)

免费安装JIRA Misc Workflow Extensions plugin 编辑“进行中”转换以使用相同的“进行中”转换(对自身的引用类型)添加后期函数以转换父问题。

注意:首选使用转换ID,因为如果您有多个具有相同名称的转换,它会无声地失败。