import com.cloudbees.plugins.credentials.* import com.cloudbees.plugins.credentials.domains.* // When called without paramters will returns all global credentials retrieveCredentials() // To retrieve specific credentials, just pass their ids as parameter. // For instance to retrieve credentials credId_1 and credId_2, just perform // such call: // retrieveCredentials('credId_1','credId_2') def retrieveCredentials(String... credIds) { def credentialsProvider = Jenkins.instance.getExtensionList('com.cloudbees.plugins.credentials.SystemCredentialsProvider')[0] credentialsProvider.domainCredentials.each { domainCredentials -> credentialsProvider.getCredentials(domainCredentials.domain).findAll{ credential -> credIds.size() == 0 || credential.id in credIds }.each { credential -> displayCredential(domainCredentials.domain.name,credential) } } // Prevent any returns on console script null } def displayCredential(def domain, def cred) { // Closure in charge to display credentials details def showRow = { credentialType, domainName, secretId, username = null, password = null, description = null -> println("${credentialType} : ".padLeft(20) + (domainName?:'global')?.padRight(20) + "|" + secretId?.padRight(38)+" | " +username?.padRight(20)+" | " +password?.padRight(40) + " | " +description) } cred.with { switch(it.class.name) { case "com.cloudbees.plugins.credentials.impl.UsernamePasswordCredentialsImpl": showRow("user/password", domain, id, username, password?.plainText, description) break case "com.cloudbees.jenkins.plugins.sshcredentials.impl.BasicSSHUserPrivateKey": showRow("ssh priv key", domain, id, privateKeySource?.privateKey?.plainText, passphrase?.decrypt()?:"", description) break case "com.cloudbees.jenkins.plugins.awscredentials.AWSCredentialsImpl": showRow("aws", domain, id, accessKey, secretKey?.plainText, description) break case "org.jenkinsci.plugins.plaincredentials.impl.StringCredentialsImpl": showRow("secret text", domain, id, secret?.plainText, '', description) break case "org.jenkinsci.plugins.plaincredentials.impl.FileCredentialsImpl": showRow("secret file", domain, id, content?.text, '', description) break case "com.microsoft.azure.util.AzureCredentials": showRow("azur", domain, id, subscriptionId, "${clientId}:${hudson.util.Secret.decrypt(clientSecret)}", description) break case "org.jenkinsci.plugins.docker.commons.credentials.DockerServerCredentials": showRow("docker", domain, id, clientCertificate, clientKey, description) break case "com.dabsquared.gitlabjenkins.connection.GitLabApiTokenImpl": showRow("gitlab", domain, id, apiToken?.plainText, '' , description) break default: showRow("something else", domain, id, it.class.name, '', description) } } }