Missed Team ’24? Catch up on announcements here.

×
Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in

Pre-hook exluding PRs

Daniel Schneider September 4, 2020

Hi all - I am trying to write a custom pre-hook using scriptrunner that will block direct pushes to a repo (non-PRs) that include a certain filename:

if (pathsMatchExcludingDeletes('glob:something.yml')) { 
return false
}
return true

 However, seems like this hook runs even when it's a PR and it errors out:

2020-09-04 11:26:37,080 ERROR [c.o.s.c.b.h.e.PreRepositoryHookExecutor]: *************************************************************************************
2020-09-04 11:26:37,081 ERROR [c.o.s.c.b.h.e.PreRepositoryHookExecutor]: Script pre-hook failed:, repository: gps
java.lang.IllegalStateException: At least one commit must be provided to include
	at com.atlassian.bitbucket.commit.CommitsBetweenRequest.<init>(CommitsBetweenRequest.java:108)
	at com.atlassian.bitbucket.commit.CommitsBetweenRequest.<init>(CommitsBetweenRequest.java:83)
	at com.atlassian.bitbucket.commit.CommitsBetweenRequest$Builder.build(CommitsBetweenRequest.java:216)
	at com.atlassian.bitbucket.commit.CommitsBetweenRequest$Builder$build$1.call(Unknown Source)
	at com.onresolve.scriptrunner.canned.bitbucket.util.BitbucketConditionExtensions.createCommitsBetweenRequest(BitbucketConditionExtensions.groovy:167)
	at com.onresolve.scriptrunner.canned.bitbucket.util.BitbucketConditionExtensions$createCommitsBetweenRequest.call(Unknown Source)
	at com.onresolve.scriptrunner.canned.bitbucket.util.PathsMatchExtensions.streamAllMatchingChanges(PathsMatchExtensions.groovy:79)
	at com.onresolve.scriptrunner.canned.bitbucket.util.PathsMatchExtensions.pathsMatchWithConfig(PathsMatchExtensions.groovy:67)
	at com.onresolve.scriptrunner.canned.bitbucket.util.PathsMatchExtensions$pathsMatchWithConfig.call(Unknown Source)
	at com.onresolve.scriptrunner.canned.bitbucket.util.BitbucketExtensions.pathsMatchExcludingDeletes(BitbucketExtensions.groovy:74)
	at com.onresolve.scriptrunner.canned.bitbucket.util.BitbucketConditionUtils$_setupBinding_closure3$_closure4.doCall(BitbucketConditionUtils.groovy:243)
	at com.onresolve.scriptrunner.canned.bitbucket.util.BitbucketConditionUtils$_setupBinding_closure3$_closure4.doCall(BitbucketConditionUtils.groovy)
	at Script11.run(Script11.groovy:1)
at com.atlassian.bitbucket.commit.CommitsBetweenRequest.<init>(CommitsBetweenRequest.java:108)
at com.atlassian.bitbucket.commit.CommitsBetweenRequest.<init>(CommitsBetweenRequest.java:83)
at com.atlassian.bitbucket.commit.CommitsBetweenRequest$Builder.build(CommitsBetweenRequest.java:216)
at com.atlassian.bitbucket.commit.CommitsBetweenRequest$Builder$build$1.call(Unknown Source)
at com.onresolve.scriptrunner.canned.bitbucket.util.BitbucketConditionExtensions.createCommitsBetweenRequest(BitbucketConditionExtensions.groovy:167)
at com.onresolve.scriptrunner.canned.bitbucket.util.BitbucketConditionExtensions$createCommitsBetweenRequest.call(Unknown Source)
at com.onresolve.scriptrunner.canned.bitbucket.util.PathsMatchExtensions.streamAllMatchingChanges(PathsMatchExtensions.groovy:79)
at com.onresolve.scriptrunner.canned.bitbucket.util.PathsMatchExtensions.pathsMatchWithConfig(PathsMatchExtensions.groovy:67)
at com.onresolve.scriptrunner.canned.bitbucket.util.PathsMatchExtensions$pathsMatchWithConfig.call(Unknown Source)
at com.onresolve.scriptrunner.canned.bitbucket.util.BitbucketExtensions.pathsMatchExcludingDeletes(BitbucketExtensions.groovy:74)
at com.onresolve.scriptrunner.canned.bitbucket.util.BitbucketConditionUtils$_setupBinding_closure3$_closure4.doCall(BitbucketConditionUtils.groovy:243)
at com.onresolve.scriptrunner.canned.bitbucket.util.BitbucketConditionUtils$_setupBinding_closure3$_closure4.doCall(BitbucketConditionUtils.groovy)

How can I make this hook ignore (or evaluate to true?) if the trigger is a PR?

2 answers

0 votes
Antony Jordan November 26, 2020

I have found that the following works for me:

refChanges != [] && !pathsMatchExcludingDeletes('glob:something.yml')
0 votes
Antony Jordan November 24, 2020

Did you ever find a solution to this issue?

 

I am facing the same thing at the moment.

Suggest an answer

Log in or Sign up to answer
DEPLOYMENT TYPE
SERVER
TAGS
AUG Leaders

Atlassian Community Events