получить доступ к привязкам учетных данных jenkins из сценария dsl задания jenkins - PullRequest
0 голосов
/ 25 октября 2019

Я не создаю новое задание

Я хочу получить доступ к привязке секретной строки jenkins из внутри сценария dsl задания. Я не смог найти примеры этого

Если у меня в Jenkins есть привязка секретной строки с именем «my-secret-string», как я могу получить значение этого в сценарии dsl? Я хочу, чтобы dsl делал вызовы покоя и другие вещи, используя секреты, которые я надежно хранил в jenkins

Я не могу использовать credentials('<idCredentials>'), потому что я не создаю новую работу или что-то еще, я хочу использовать эти секретные значения в dslсам скрипт

1 Ответ

0 голосов
/ 26 октября 2019

Я не понимаю сценарий. Вы не создаете новую работу, но вы все еще в работе? Что это обозначает? Я понял, что вы определили секретный текст в Jenkinks и хотите получить к нему доступ с работы? Это стандартный сценарий:

withCredentials([string(credentialsId: 'my-secret-string', variable: 'mySecretStringVar')]){
    println mySecretStringVar
}

Из консоли Jenkins или скрипта Groovy, в котором находятся учетные данные:

def getFolderCredsScript(def pipelineFolder, def credId){
    def credentialsStore =
    jenkins.model.Jenkins.instance.getAllItems(com.cloudbees.hudson.plugins.folder.Folder.class).findAll{it.name.equals(pipelineFolder)}
    .each{
        com.cloudbees.hudson.plugins.folder.AbstractFolder<?> folderAbs = com.cloudbees.hudson.plugins.folder.AbstractFolder.class.cast(it)
        com.cloudbees.hudson.plugins.folder.properties.FolderCredentialsProvider.FolderCredentialsProperty property = folderAbs.getProperties().get(com.cloudbees.hudson.plugins.folder.properties.FolderCredentialsProvider.FolderCredentialsProperty.class)
        if(property != null){
            for (cred in property.getCredentials()){
                if ( cred.id == credId ) {
                    return "${cred.username}:${cred.password}"
                }
            }
        }
    }
}

def getGlobalCredsScript(def credId){
    def creds = com.cloudbees.plugins.credentials.CredentialsProvider.lookupCredentials(com.cloudbees.plugins.credentials.common.StandardUsernameCredentials.class, Jenkins.instance, null, null);
    for (cred in creds) {     
        if (cred.id == credId){
            return "${cred.username}:${cred.password}"
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...