首页 > 解决方案 > 如何以编程方式批准 Jenkins System Groovy 脚本

问题描述

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

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

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

标签: jenkinsgroovy

解决方案


下面是在 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()

推荐阅读