notes:groovy-jenkins-credential
JENKINS: Script groovy pour explorer les magazins Credentials
Le script suivant permet de produire une liste de paramètres composée des id|username|passd enregistrés dans Credantials
import jenkins.*
import jenkins.model.*
import hudson.*
import hudson.model.*
import com.cloudbees.plugins.credentials.Credentials
import com.cloudbees.plugins.credentials.CredentialsProvider;
import com.cloudbees.plugins.credentials.common.StandardUsernamePasswordCredentials;
def getPassword = { userid ->
def password = ""
def creds = com.cloudbees.plugins.credentials.CredentialsProvider.lookupCredentials(
com.cloudbees.plugins.credentials.Credentials.class
)
Jenkins.instance.getAllItems(com.cloudbees.hudson.plugins.folder.Folder.class).each{ f ->
creds = com.cloudbees.plugins.credentials.CredentialsProvider.lookupCredentials(
com.cloudbees.plugins.credentials.Credentials.class, f)
def c = creds.findResult { it.id == userid ? it : null }
if ( c ) {
password = c.password
} else {
password = "n-a"
}
}
return password
}
Set<Credentials> allCredentials = new HashSet<Credentials>();
def creds = com.cloudbees.plugins.credentials.CredentialsProvider.lookupCredentials(
com.cloudbees.plugins.credentials.Credentials.class
);
allCredentials.addAll(creds)
Jenkins.instance.getAllItems(com.cloudbees.hudson.plugins.folder.Folder.class).each{ f ->
creds = com.cloudbees.plugins.credentials.CredentialsProvider.lookupCredentials(
com.cloudbees.plugins.credentials.Credentials.class, f)
allCredentials.addAll(creds)
}
def choices=[]
for (c in allCredentials) {
def passwd = getPassword(c.id)
choices.add(c.id + "|" + c.username + "|" + passwd)
}
return choices
Il retourne l'ensemble des couples username/password de la config active, pour ne retourner que les credentials attachés à un dossier il faut réduire la portée de la déclaration dans la classe Folder
Jenkins.instance.getAllItems(com.cloudbees.hudson.plugins.folder.Folder.class).each{ f ->
creds = com.cloudbees.plugins.credentials.CredentialsProvider.lookupCredentials(
com.cloudbees.plugins.credentials.Credentials.class, f)
allCredentials.addAll(creds)
}
de cette manière
jenkins.instance.getAllItems(com.cloudbees.hudson.plugins.folder.Folder.class).findAll{it.name.equals('reseau')}.each{ f ->
creds = com.cloudbees.plugins.credentials.CredentialsProvider.lookupCredentials(
com.cloudbees.plugins.credentials.Credentials.class, f)
allCredentials.addAll(creds)
}
où 'reseau' est le nom du dossier dnas lequel la recherche doit être limitée.
notes/groovy-jenkins-credential.txt · Last modified: 2025/02/19 10:59 by 127.0.0.1
