我在我的
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)
在管理 Jenkins 中转到进程内脚本批准。将有一份等待批准的脚本和签名列表。批准您尝试使用的那些。您可能需要为每个步骤多次执行此操作。您会执行
getInstance
,但运行失败,然后您再次执行 getItem
,如此反复,直至清除。