Hi
I'm trying to check the build status of the last commit in a pull request but can't get the BuildStatusService to get resolved using ComponentLocator.getComponent(BuildStatusService). It always returns null.
This is my script which runs as Merge Check script.
import com.atlassian.sal.api.component.ComponentLocator
import com.atlassian.bitbucket.build.BuildStatusService
import com.atlassian.bitbucket.build.BuildState
import com.atlassian.bitbucket.build.BuildStatus
import com.atlassian.bitbucket.util.Page
import com.onresolve.scriptrunner.canned.bitbucket.util.BitbucketBaseScript
import groovy.transform.BaseScript
@BaseScript BitbucketBaseScript baseScript
def commitId = mergeRequest.pullRequest.fromRef.latestCommit
def buildStatusService = ComponentLocator.getComponent(BuildStatusService)
String debugMessage = "commitId=" + commitId + ", buildStatusService=" + buildStatusService
mergeRequest.veto("Pull request can't be merged", "Pull request can't be merged: " + debugMessage)
I copied the basic code from this link, but the result that I'm getting on the pull request 'Merge' button is:
Pull request can't be merged: commitId=c933d15fd5222d5d79e16b58c76de2a5874c6173, buildStatusService=null
I'm running on Atlassian Bitbucket Server v4.8.3. Any ideas why this does not work?
Thx, Andi
You should be able to get the BuildStatusService by using:
import com.atlassian.bitbucket.build.BuildStatusService
import com.onresolve.scriptrunner.runner.ScriptRunnerImpl
import com.onresolve.scriptrunner.runner.customisers.WithPlugin
@WithPlugin("com.atlassian.bitbucket.server.bitbucket-build")
def buildStatusService = ScriptRunnerImpl.getOsgiService(BuildStatusService)
As it's listed as an OSGI service in the bitbucket-build plugin you need to use @WithPlugin and ScriptRunnerImpl.getOsgiService
Thanks a lot for the info! Using this approach it works perfectly.
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.