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?