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

标签 jenkins 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,并且不允许通过 UI 完成任何配置,因此我们也禁用了以管理员身份登录的功能。

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

最佳答案

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

关于jenkins - 如何以编程方式批准 Jenkins 系统 Groovy 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50979027/

相关文章:

jenkins - 将参数从Jenkins传递到Gradle插件

jenkins - Docker "Jenkins"图像无法访问互联网

jenkins - 按需触发下游项目

jenkins - 如何将工件放在远程服务器中并解压缩

xml - 将 XML 片段插入 Groovy 中的另一个 XML 文档

grails - 我们如何使用Grails域或GORM截断表?

java - 无法在自定义 gradle 插件实现中使用外部依赖项

找不到 Jenkinsfile 不符合标准

groovy - Elasticsearch-geo_point数组上运行distanceInKm的MissingMethodException

groovy - SLF4J groovy 注释编译错误。 'log' 在静态范围内找到,但未引用局部变量、静态字段或类