gpt4 book ai didi

Jenkins:以编程方式添加项目默认构建授权

转载 作者:行者123 更新时间:2023-12-01 00:23:29 25 4
gpt4 key购买 nike

我使用 DSL 来创建不同的工作。但是,当我启动 Jenkins 容器时,出现以下错误:

Processing DSL script neojob.groovy
ERROR: script not yet approved for use
Finished: FAILURE

要修复此错误,我需要选择“以触发​​构建的用户身份运行”项目默认构建授权,如下所示:

enter image description here
我的问题是如何在 groovy 脚本中或以编程方式执行此操作,以便我的容器可以完全初始化 Jenkins。

任何帮助将不胜感激。

最佳答案

对我来说,以下常规代码正在以编程方式配置 Authorize Project Plugin在 Jenkins 的全局安全部分。我将脚本放在 Jenkins 的 init.groovy.d/ 中目录以在每次启动时触发它。

import jenkins.*
import jenkins.model.*
import hudson.model.*
import jenkins.model.Jenkins
import org.jenkinsci.plugins.authorizeproject.*
import org.jenkinsci.plugins.authorizeproject.strategy.*
import jenkins.security.QueueItemAuthenticatorConfiguration

def instance = Jenkins.getInstance()

// Define which strategies you want to allow to be set per project
def strategyMap = [
(instance.getDescriptor(AnonymousAuthorizationStrategy.class).getId()): true,
(instance.getDescriptor(TriggeringUsersAuthorizationStrategy.class).getId()): true,
(instance.getDescriptor(SpecificUsersAuthorizationStrategy.class).getId()): true,
(instance.getDescriptor(SystemAuthorizationStrategy.class).getId()): false
]

def authenticators = QueueItemAuthenticatorConfiguration.get().getAuthenticators()
def configureProjectAuthenticator = true
for(authenticator in authenticators) {
if(authenticator instanceof ProjectQueueItemAuthenticator) {
// only add if it does not already exist
configureProjectAuthenticator = false
}
}

if(configureProjectAuthenticator) {
authenticators.add(new ProjectQueueItemAuthenticator(strategyMap))
}

instance.save()

他们的插件 javadoc有助于了解类(class)。此外,我查看了他们在 github 上的测试。 ,弄清楚如何在 Jenkins 中配置这些对象。

从现在开始,我可以通过 JobDSL 设置作业的授权规则。插件是这样的:
job("SEED/SeedMainJobs") {
properties {
authorizeProjectProperty {
strategy {
triggeringUsersAuthorizationStrategy()
}
}
}

...
}

关于Jenkins:以编程方式添加项目默认构建授权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46796161/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com