Пароль параметра декларативной конвейерной маски Jenkins в журналах консоли - PullRequest
1 голос
/ 16 мая 2019

Я хотел бы замаскировать пароль, заданный в качестве параметра в задании Jenkins, и он использует декларативный синтаксис конвейера. Я не хочу сохранять учетные данные и использовать их. Поскольку это будут учетные данные, введенные пользователем, выполняющим задание, специфичное для них.

Я уже пробовал MaskPasswordsBuildWrapper, но он не работает. Буду признателен, если кто-нибудь сможет привести рабочий пример.

Это мой Jenkinsfile для декларативного конвейера с использованием MaskPasswordsBuildWrapper, который не работает:

pipeline {

    agent none

    options {
        skipDefaultCheckout()
        skipStagesAfterUnstable()
    }

    parameters {
        string(name: 'userid', defaultValue: 'master', description: 'Enter User ID')
        password(name: 'passwd', defaultValue: 'secret', description: 'Enter Password')
    }

    stages {
        stage('Test') {
            agent {
                label 'someLabel'
            }
            steps {
                script {
                    wrap([$class: 'MaskPasswordsBuildWrapper', varPasswordPairs: [[var: 'PSWD', password: params.passwd]], varMaskRegexes: []]) {
                        sh "echo PSWD: ${PSWD}"
                    }
                }
            }
        }
    }
}

1 Ответ

0 голосов
/ 21 мая 2019

Мне удалось замаскировать пароль в логах консоли, ниже приведен рабочий код:

pipeline {

    agent none

    options {
        skipDefaultCheckout()
        skipStagesAfterUnstable()
    }

    parameters {
        string(name: 'userid', defaultValue: 'master', description: 'Enter User ID')
        password(name: 'passwd', defaultValue: 'secret', description: 'Enter Password')
    }

    stages {
        stage('Test') {
            agent {
                label 'someLabel'
            }
            steps {
                script {
                    wrap([$class: 'MaskPasswordsBuildWrapper', varPasswordPairs: [[password: "${passwd}", var: 'PSWD']]]) {
                        sh '''echo PSWD: ${passwd}'''
                    }
                }
            }
        }
    }
}
...