Как замаскировать переменную в консоли Jenkins[Groovy]

Как я могу сделать groovy на маске Дженкинса Мой заводной код:

sh "sonar-scanner -Dsonar.host.url=http://sonarurl:9000 -Dsonar.login=squ_a1111"

Консоль Дженкинса:

sonar-scanner -Dsonar.host.url=http://sonarurl:9000 -Dsonar.login=squ_a1111

Когда я запускаю его, токен появляется в консоли, но я не хочу, чтобы он появлялся. Как я могу сделать маскировку?

Я хочу так, например:

sonar-scanner -Dsonar.host.url=http://sonarurl:9000 -Dsonar.login=******
"DevOps: Jenkins & AWS Series, часть 5: Установка Gradle на Ubuntu 22.04
"DevOps: Jenkins & AWS Series, часть 5: Установка Gradle на Ubuntu 22.04
В этой статье блога мы проведем вас через процесс установки Gradle на Ubuntu 22.04, интеграции его с Jenkins и создания задания Gradle. Мы...
0
0
97
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Самый простой способ — использовать плагин Credentials Binding.

Там вы можете определить различные типы учетных данных, будь то один пароль («секретный текст»), файл или комбинация имени пользователя и пароля.

После определения вы можете использовать его следующим образом:

steps {
    withCredentials([
        string(credentialsId: "sonar-creds", variable: 'PWD_SONAR')
    ]) {
        script {
            sh "sonar-scanner -Dsonar.host.url=http://sonarurl:9000 -Dsonar.login=$PWD_SONAR"
        }
    }
}

Это сделает пароль доступным в данной переменной только внутри этого блока. Если вы попытаетесь напечатать пароль, он будет замаскирован.

Смотрите также:

Спасибо за помощь, я пытался раньше, но это не сработало, и у меня нет имени пользователя и пароля, у меня есть только токен. Я решил проблему, установив плагин Mask Passwords. Я поставлю это как комментарий.

zoroglur 15.11.2022 15:30

Это тоже работает. Впоследствии я отредактировал свой ответ, чтобы использовать только строку вместо пары имя пользователя и пароль. Оба ответа верны :)

Pexers 15.11.2022 16:18
Ответ принят как подходящий

Я установил плагин Mask Passwords в Jenkins и использовал его следующим образом. Маскировка выполнена

def token = "squ_a1111"
wrap([$class: 'MaskPasswordsBuildWrapper', varPasswordPairs: [[password: token]]]) {
    sh "sonar-scanner -Dsonar.host.url=http://sonarurl:9000 -Dsonar.login=${token}"
}

Другие вопросы по теме