jenkins:groovy sandbox不允许使用jenkins.model.Jenkins getInstance

5tmbdcev  于 8个月前  发布在  Jenkins
关注(0)|答案(1)|浏览(111)

我在我的deploy_job中给出了一个groovy脚本来成功构建我的build_job。当我运行groovy脚本时,它给出一个错误“不允许使用静态方法jenkins.model.JenkinsgetInstance”
我只能通过使用groovy sandbox来运行脚本。我没有管理员权限来批准脚本或在做任何更改后重新启动Jenkins。我尝试使用try和catch块来捕获异常,但没有成功。是否有方法将示例方法列入白名单?

def builds = []
def job = jenkins.model.Jenkins.instance.getItem("build_job")
job.builds.each {
    def build = it
    if (it.getResult().toString().equals("SUCCESS")) {
        it.badgeActions.each {
            builds.add(build.displayName[1..-1])
        }
    }
}
builds.unique();

预期:希望将jenkins.model.Jenkins.instance.getItem列入白名单
实际:无法执行脚本
org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException:不允许在org.jenkinsci.plugins.scriptsecurity.sandbox.whitelists.StaticWhitelist.rejectStaticMethod(StaticWhitelist.java:276)上使用Jenkins.model.Jenkins getInstance

3xiyfsfu

3xiyfsfu1#

在manage Jenkins中,转到In-Process Script Approval。将有一个名单的脚本和签名等待批准。把你试过用的那些都去掉。您可能需要为每个步骤执行多次。你会为getInstance做这件事,运行失败,然后你再为getItem做一次,直到它清除。

相关问题