有哪些技术可以避免使用Jenkins工作流Groovy脚本进行脚本批准?

Ray*_*ero 11 groovy jenkins-workflow

Jenkins Workflow插件的以下脚本:

def mapping = readFile 'a file'
mapping.eachLine {
      def line = it.tokenize('|')
      sh "${line[1]}"
}
Run Code Online (Sandbox Code Playgroud)

需要脚本批准:

staticMethod org.codehaus.groovy.runtime.DefaultGroovyMethods tokenize java.lang.String java.lang.String
staticMethod org.codehaus.groovy.runtime.DefaultGroovyMethods eachLine java.lang.String java.lang.String
Run Code Online (Sandbox Code Playgroud)

为了使脚本成功运行,必须尝试构建,必须授予手动批准,然后必须再次尝试另一个构建,依此类推.

对于大型脚本,保持白名单方法是一个相当繁琐的过程.

是否有一些groovy方法的子集不需要脚本批准和/或白名单?

Jes*_*ick 5

您只需要批准新运行的方法.

Script Security插件附带了一些已列入白名单的方法.您在此处列出的方法尚未实现.JENKINS-25804默认跟踪白名单常规计算方法的愿望.

请注意,如果您使用来自SCM脚本源的Groovy CPS DSL,则有意禁用沙盒模式,即使用整个脚本批准模式.这是因为管理员需要在每次提交的编辑后批准整个脚本,无论多么微不足道.相比之下,使用Groovy CPS DSL源,管理员进行的每次编辑都会立即记录为已批准,而无需单独执行.