我正在使用较新的“p4”perforce plugin,我有几十个工作。我现在需要更改Perforce凭据。以下groovy脚本(在脚本控制台中运行)将打印出来,但PerforceScm.java中的“凭证”字段是最终的,所以我无法修改它。有没有办法更新此配置?
projects = Hudson.instance.projects
projects.each(proj ->
println(scm.credential)
}
我觉得必须有一些用于构造PerforceScm对象的配置项。例如。有一个描述符,可以使用“scm.getDescriptor()”获得,它有一个凭证字段。但是当我打印它时,该字段为空。
答案 0 :(得分:1)
如果循环遍历Hudson.instance.items,则可以使用item.scm.setP4Passwd(“”)更新值。
实施例
for(item in Hudson.instance.items) {
if(item.scm instanceof hudson.plugins.perforce.PerforceSMC) {
item.scm.setP4Passwd("asdf");
item.save();
}
}
答案 1 :(得分:0)
def jenkins = hudson.model.Hudson.instance
def srcJob = jenkins.getItemByFullName(<SOURCE_JOB>)
scm = srcJob.scm;
if(scm instanceof hudson.plugins.git.GitSCM){
print "need to check for git or simply ignore."
}else if(scm instanceof hudson.plugins.perforce.PerforceSCM){
scm.setP4Passwd("*******")
scm.setP4User("newUser")
}