Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Current »

In this example issue key is hardcoded to "ERP-23" but in your case you will probably get the issue key from another API for example current issue inside script listener. In this example I'm converting list of component versions in the bundle to a table markup and adding it as a comment to issue. 


Getting Issues Containing a Bundle
import com.deniz.jira.versioning.subcomponents.SubcomponentsService;
import com.deniz.jira.versioning.subcomponents.ComponentHierarchy;
import com.onresolve.scriptrunner.runner.customisers.PluginModule;
import com.onresolve.scriptrunner.runner.customisers.WithPlugin;
import com.atlassian.jira.issue.IssueManager;
import com.atlassian.jira.component.ComponentAccessor;
import com.deniz.jira.versioning.bundles.BundleService;
import com.deniz.jira.versioning.CmpVersionMappingService;
import com.deniz.jira.versioning.bundles.BundleNameFormatter;
import com.atlassian.jira.bc.issue.comment.CommentService;
import com.atlassian.jira.project.version.VersionManager

@WithPlugin("com.deniz.jira.versioning")
@PluginModule
BundleService bundleService;
@WithPlugin("com.deniz.jira.versioning")
@PluginModule
CmpVersionMappingService cmpVersionMappingService;

//get the issue
def im = ComponentAccessor.getIssueManager();
def versionManager = ComponentAccessor.getVersionManager();
def issue = im.getIssueObject("ERP-23");


def versions = issue.getAffectedVersions();  //for found in bundle we use affect(s) version, for fixed in bundle we use fix versions
def components = issue.getComponents();

if (versions.size() == 0 || components.size() == 0) {
    return;
}

//def bundleNameFormatter = new BundleNameFormatter(cmpVersionMappingService, null, null); FOR VERSIONS BEFORE 1.3.0
def bundleNameFormatter = new BundleNameFormatter(versionManager, null, null); //FOR VERSIONS 1.3.0+

//get all bundles (affected) containing the version and component pairs of the issue
def affectedBundles = bundleService.getBundles(bundleNameFormatter, versions, components);
System.out.println("affectedBundles:"+affectedBundles)

//get content of bundle as String
def tableMarkup = new StringBuilder("||Component||Version||\n");
for (bundle in affectedBundles) {
	//def bundleContents = cmpVersionMappingService.getComponentsOfBundle(bundle.getId()); FOR VERSIONS BEFORE 1.3.0
	def bundleContents = bundleService.getComponentsOfBundle(bundle.getId()); //FOR VERSIONS 1.3.0+
    for (componentVersion in bundleContents) {
        System.out.println("component:" + componentVersion.getComponentName());
        System.out.println("version:" + componentVersion.getVersionName());
        tableMarkup.append("|" + componentVersion.getComponentName());
        tableMarkup.append("|" + componentVersion.getVersionName() + "|\n");
    }    
}
System.out.println(tableMarkup)

//add bundle table as a comment to issue
def cm = ComponentAccessor.getCommentManager();
def user = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser();
cm.create(issue, user, tableMarkup.toString(), true)
  • No labels