如何以编程方式批准 Jenkins 系统 Groovy 脚本

Hig*_*ife 3 groovy jenkins

Jenkins Job DSL 在 1.6 中引入了 Script Security,这给一些构建带来了以下错误:

ERROR: Build step failed with exception
org.jenkinsci.plugins.scriptsecurity.scripts.UnapprovedUsageException: script not yet approved for use
Run Code Online (Sandbox Code Playgroud)

我们完全通过使用 plugins.txt 和一组 Groovy 脚本的配置来运行 Jenkins 主站来配置 Jenkins,并且不允许通过 UI 完成任何配置,因此我们也禁用了以管理员身份登录的功能。

我们如何通过 Jenkins groovy 配置以编程方式预先批准脚本?

小智 8

下面是在 jenkins 上用 groovy 批准两种方法。

def scriptApproval = org.jenkinsci.plugins.scriptsecurity.scripts.ScriptApproval.get()

String[] signs = [
    "method org.jenkinsci.plugins.workflow.steps.FlowInterruptedException getCauses",
    "method org.jenkinsci.plugins.workflow.support.steps.input.Rejection getUser"
    ]

for( String sign : signs ) {
    scriptApproval.approveSignature(sign)
}

scriptApproval.save()
Run Code Online (Sandbox Code Playgroud)