I have Jira 5.2.11 integrated with Crucible 3.0.3 but I want to enforce the process that a Jira workflow transition will not be available unless there is at least one review associated/linked with the Jira issues and all linked reviews must be closed. I know about the two builtin conditions:
1/ "No Open Reviews" condition but the condition won't failed if no reviews are linked to the Jira issue.
2/ "Unreviewed Code" condition doesn't help because I allow for patch files to be used not just changesets.
I'm familiar with writing groovy scripts with scriptRunner so I just wanted to find the original Atlassian source code for this condition. I downloaded the 5.2.11 source zip file from MyAtlassian account but had no luck finding(greping) the source code.
A // Does that source zip contain all the source or do I download other associated zip files?
B // If someone else has a similar groovy script that can extract the reviews associated with a jira issue then that would be great.
Thanks Brent
My solution as a workflow validator:
// Validator will check that at least one review is associated with this issue // and all this issue's associated reviews must be closed. import com.atlassian.jira.ComponentManager; import com.atlassian.plugin.PluginAccessor ComponentManager componentManager = ComponentManager.getInstance(); PluginAccessor pluginAccessor = componentManager.getPluginAccessor(); Class reviewManagerClass = pluginAccessor.getClassLoader().findClass("com.atlassian.jirafisheyeplugin.domain.crucible.ReviewManager"); Class reviewListClass = pluginAccessor.getClassLoader().findClass("com.atlassian.jirafisheyeplugin.domain.crucible.ReviewList"); Class reviewClass = pluginAccessor.getClassLoader().findClass("com.atlassian.jirafisheyeplugin.domain.crucible.Review"); def reviewManager = componentManager.getOSGiComponentInstanceOfType(reviewManagerClass); def list = reviewManager.getReviewsForIssue(issue); if (list.hasErrors()) { log.error("<<BW>> Error retrieving reviews for ReviewsCompleteCondition (" + issue.getKey() + ")."); return false; } else if ( list.getReviews().isEmpty() ) { return false; } else { for (def review : list.getReviews()) { if (review.isOpen()) { // all reviews must be closed return false; } } } return true;
This solution doesn't work with JIRA 7. (No JiraFisheye plugin)
Do you have any solution that would work with the JIRA Development Integration plugin? Thanks!
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.