...
Code Block | ||
---|---|---|
| ||
import com.deniz.jira.versioning.componentversions.events.*; import com.deniz.jira.versioning.bundles.events.*; import com.deniz.jira.versioning.bundles.*; import com.deniz.jira.versioning.*; import com.atlassian.jira.component.*; //We need to load WorklogPROConf. Man. classes differently using getOSGiComponentInstanceOfType def bundleService = ComponentAccessor.getOSGiComponentInstanceOfType(BundleService.class); def triggerBuildComponentAndVersionPair(long componentId, long versionId) { log.debug("Triggering build for component:{} and version:{}", componentId, versionId); def post = new URL("https://httpbin.org/post").openConnection(); def message = """{\"componentId\":\"${componentId}\", \"versionId\": \"${versionId}\""""; post.setRequestMethod("POST") post.setDoOutput(true) post.setRequestProperty("Content-Type", "application/json") post.getOutputStream().write(message.getBytes("UTF-8")); def postRC = post.getResponseCode(); log.debug("==>" + postRC.toString()); if(postRC.equals(200)) { log.debug(post.getInputStream().getText()); } else { log.error("Request failed"); } } def event = parameters.event; //since we are listening for both events we need to handle them differently if (event instanceof ComponentVersionReleasedEvent) { def componentVersion = event.componentVersion; triggerBuildComponentAndVersionPair(componentVersion.componentId, componentVersion.versionId); } else if (event instanceof BundleReleasedEvent) { def componentsOfBundle = bundleService.getComponentsOfBundle(event.bundle.getID()); componentsOfBundle.each{content -> triggerBuildComponentAndVersionPair(content.componentId, content.versionId)} } |
...