Is it possible to change the password to the credentials used while authenticating using the manual mode in the TFVC section of a job?

Article ID:360016223551
2 minute readKnowledge base

Issue

  • There can be situations where you will need to change periodically the password for a credential used while authenticatin in manual mode in the Team Foundation Version Control section of a job. This will most likely happen when your security policies recommend these passwords to be rotated periodically.

  • Is it possible to script this change?

Resolution

In order to satisfy the requirement of this use case there are two approaches:

  • Change the Team Foundation Version Control type to GIT, as explained in this article. Once that you choose a Git version control type repository, you will be able to use Jenkins credentials, hence you will have scripted ways to do this such as this script.

  • The other option would be to use the script below to change the credentials for a given job. It would be relatively easy to tweak this script to affect a list of jobs or a set of jobs satisfying a condition:

def jobName="[your job name]"

// getting the job Object
def myJob= Jenkins.instance.getItemByFullName(jobName)


//Accessing the SCM object for the job
def scm = myJob.getScm()

//If the job is configured to use this specific Credential Configurer class
if(scm!=null && (scm.getCredentialsConfigurer() instanceof hudson.plugins.tfs.model.ManualCredentialsConfigurer)){

//Resetting the password to the Manual Credentials configurer
scm.password= new hudson.util.Secret("[new pass]")

 myJob.save()

  println "You have set the password of "+ jobName + " to :"+scm.password
}
This article is part of our Knowledge Base and is provided for guidance-based purposes only. The solutions or workarounds described here are not officially supported by CloudBees and may not be applicable in all environments. Use at your own discretion, and test changes in a safe environment before applying them to production systems.