沙盒阻止我格式化字符串

Sandbox is preventing me from formatting a string

我有一个简单的 groovy 脚本:

node ("master")
{
  echo "I am about to try to use String.format"
  def jjj = String.format("bob")
  echo jjj 
}

如果我将此脚本直接放入我的作业配置中 运行,它 运行 没问题。

但是如果我将该脚本放入一个文件中,然后通过 "Workflow script from SCM" 加载该文件,我会得到错误

org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException: unclassified staticMethod java.lang.String format java.lang.String

我该如何解决这个问题?是否可以像 "Workflow script" 一样关闭 "Workflow script from SCM" 的沙箱?

或者在 groovy 中是否有某种沙盒批准的字符串格式化方式?

为什么它一开始就阻止我格式化字符串?

我认为在使用 来自 SCM 的工作流脚本时无法禁用沙盒

但是您可以在这里批准使用:

http://<jenkins_host>:<port>/scriptApproval/

How do I work around this?

可能(未测试)

String.format("bob", [])

而不是使用可变参数。无论如何,您应该在 JIRA(组件 script-security-plugin,标签 workflow)中提交错误并附上重现步骤。

Is it possible to turn off the sandbox for "Workflow script from SCM" like it is for "Workflow script"?

否:JENKINS-28178