2016-02-10 112 views
1

我使用較新的「p4」perforce plugin,我有幾十個工作。我現在需要更改Perforce憑據。以下groovy腳本(在腳本控制檯中運行)將打印出來,但PerforceScm.java中的「憑證」字段是最終的,因此我無法對其進行修改。有沒有更新此配置的方法?我可以使用jenkins groovy腳本修改perforce憑證嗎?

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

我覺得必須有一些配置項用於構造一個PerforceScm對象。例如。有一個描述符,可以使用「scm.getDescriptor()」,它有一個憑證字段。但是,當我打印它時,該字段爲空。

+0

我避免使用P4 plugin..we可以導出所需的憑證在生成步驟的執行殼..(像..export P4PORT = someValue中),同樣地對於P4USER, P4CLIENT ..等等......在groovy腳本中可能會有一個配置來獲取Hudson中構建步驟的shell。您可以導出這些值 – prvn

回答

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(); 
    } 
} 
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") 
} 
相關問題