【问题标题】:JIRA / Greenhopper update stories when sub tasks are updatedJIRA / Greenhopper 在子任务更新时更新故事
【发布时间】:2011-08-10 16:09:24
【问题描述】:

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

此外,当我关闭故事中的所有任务时,它可以自动将我的故事移至关闭。

【问题讨论】:

    标签: task jira jira-agile user-stories


    【解决方案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

    【讨论】:

      【解决方案2】:
      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") 
      

      如果我遗漏了什么,请告诉我

      【讨论】:

        【解决方案3】:

        安装免费的JIRA Misc Workflow Extensions plugin 编辑您的“进行中”转换,使用相同的“进行中”转换(一种对自身的引用)添加一个发布函数来转换父问题。

        注意:最好使用转换 ID,因为如果您有多个具有相同名称的转换,它会静默失败。

        【讨论】:

        • 遗憾的是不再免费。
        猜你喜欢
        • 1970-01-01
        • 2011-05-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-08
        • 1970-01-01
        相关资源
        最近更新 更多