This release introduces a new, optional approval process that can be added to Issue workflows. The new feature, called Request to change status, is configured within issue type workflows and can be used when an issue's transition from one status to another must first be approved. 


Among other things, one can configure the following using SystemWeaver Path expressions: 


  • When an issue status change requires approval by adding the new <Request> tag to the target status.


<Status name="Ready for test">

     <NextStatuses>

         <NextStatus name="Done"/>

     </NextStatuses>

     <Request>

         <Users select="@TEST"/>

     </Request>

</Status>


  • Who is assigned to review the status change. One can, e.g., use a User attribute type, as shown in the above example, using an optional <Users>tag. 




  • Restrictions  on request operations, i.e., restricted operations are operations not available to all project members. 
    • 'EditAssignee' controls who can add and remove assignees to a request.
    • 'RequestDueDate' controls who can modify the due date for an active request.
    • 'RequestResolution' controls who can "Complete", "Abort" and "Delete" a request.


<Status name="In progress">

   <NextStatuses>

     <NextStatus name="Ready for test"/>

  </NextStatuses>

  <Restrictions>

   <Restriction field="EditAssignee" test="CurrentUser = AssignedTo"/>

   <Restriction field="RequestDueDate" test="CurrentUser.Name = 'john.doe'"/>

   <Restriction field="RequestResolution" test="CurrentUser.Name = 'john.doe'"/>

  </Restrictions>

</Status>


Example workflow


Example Request to change status from "In progress" to "Ready for test":



The approval process involves adding Assignee(s) to the status change request, and allows them to approve or reject the request. 



A comment can be included with the approval/rejection. 



A Due date option is also available for the request.



When the issue is approved and/or completed, it will move to the "target" status. 


For each operation in the request process, a note is added to the issue: