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.