我可以使用jenkins groovy脚本修改perforce凭证吗?

时间:2016-02-10 18:06:43

标签: jenkins groovy perforce

我正在使用较新的“p4”perforce plugin,我有几十个工作。我现在需要更改Perforce凭据。以下groovy脚本(在脚本控制台中运行)将打印出来,但PerforceScm.java中的“凭证”字段是最终的,所以我无法修改它。有没有办法更新此配置?

projects = Hudson.instance.projects
projects.each(proj ->
    println(scm.credential)
}

我觉得必须有一些用于构造PerforceScm对象的配置项。例如。有一个描述符,可以使用“scm.getDescriptor()”获得,它有一个凭证字段。但是当我打印它时,该字段为空。

2 个答案:

答案 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")
}