Hello all,
I'm wanting to have a merge check that requires at least one of the approvers to be in a list.
I tried something like this as a conditonal but for whatever reason it's not behaving like I expected.
def ops_team = ['Spongebob', 'Squidward', 'Patrick']
mergeRequest.pullRequest.reviewers.find {it.approved && it.user.name in ops_team}
Any ideas?
Sorry about the delay... if you use the plugin's tag you will get a faster response. I added it now.
The only problem with your code is that you need to call .veto on the mergeRequest to block it, as described in Working with Custom Merge Checks.
I rewrote your code as the following and it worked:
import com.atlassian.bitbucket.scm.pull.MergeRequest def mergeRequest = mergeRequest as MergeRequest def ops_team = ['Spongebob', 'Squidward', 'Patrick', 'admin'] def ok = mergeRequest.pullRequest.reviewers.any {it.approved && it.user.name in ops_team} if (! ok) { mergeRequest.veto("Ops approval required", "Need at least one member of Ops to approve") }
Thank you for the reply!
One shortcoming I noticed is that this way requires a member to listed as a reviewer, as opposed to being 'just' approver.
Would something like this work:
def ok = mergeRequest.pullRequest.approvers.any { it.user.name in ops_team}
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Matthew,
I'm not sure what your asking, a pull request just has reviewers which can approve it.
Can you explain a bit more how you would like the merge check to behave?
Thanks,
Adam
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.