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

问题描述 投票:0回答:1

我在我的

deploy_job
中给出了一个groovy脚本来成功构建我的
build_job
。当我运行 groovy 脚本时,出现错误“脚本不允许使用 staticMethod jenkins.model.Jenkins getInstance”

我只能使用groovy沙箱运行脚本。我没有管理员权限来批准脚本或在进行任何更改后重新启动 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: 不允许脚本使用 staticMethod jenkins.model.Jenkins 获取实例于 org.jenkinsci.plugins.scriptsecurity.sandbox.whitelists.StaticWhitelist.rejectStaticMethod(StaticWhitelist.java:276)

groovy sandbox jenkins-groovy
1个回答
2
投票

在管理 Jenkins 中转到进程内脚本批准。将有一份等待批准的脚本和签名列表。批准您尝试使用的那些。您可能需要为每个步骤多次执行此操作。您会执行

getInstance
,但运行失败,然后您再次执行
getItem
,如此反复,直至清除。

© www.soinside.com 2019 - 2024. All rights reserved.