我想删除现有作业的authToken。当我们运行配置脚本时,它创建了authToken = secret,现在我们要删除它。
这就是它的创建方式:
configure { project ->
( project / 'authToken' ).setValue('secret')
}
删除该代码不会删除实际的作业设置。
答案 0 :(得分:0)
我能够通过删除问题中描述的Jobs DSL来解决问题,但之后还通过在Jenkins UI的控制台窗口中使用以下命令运行脚本来跟进它:
import hudson.security.*
def h = Hudson.getInstance()
for (item in h.items) {
if(item instanceof org.jenkinsci.plugins.workflow.job.WorkflowJob) {
println item.name + ' ' + item.getClass()
if(item.name == 'test-job-with-token-equals-secret-defined') {
def pipeline = org.jenkinsci.plugins.workflow.job.WorkflowJob.class
def field = pipeline.getDeclaredField("authToken")
field.setAccessible(true)
field.set(item, null)
}
}
}
通过运行此脚本,取消选中作业配置触发器远程构建(例如,从脚本中),这是我正在寻找的最终状态,所以现在它应该在初始化时保持这种状态使用上述Jobs DSL的所有工作。
答案 1 :(得分:0)
这是Jenkins的已知问题,请参阅JENKINS-21017。它已在Jenkins 2.99中修复。