Недавно я столкнулся с ситуацией, когда наши конфигурации сборки TeamCity должны быть составлены с использованием данной бизнес-логики, а не вручную. Kotlin DSL отлично соответствует нашим потребностям, поэтому я довольно быстро написал скрипт .KTS. Единственная проблема, которую я имею до сих пор, это шаг загрузки FTP, а именно параметр пароля. Все мои попытки поставить пароль заканчивались ошибкой FTP 503.
Как это:
param("jetbrains.buildServer.deployer.username", "abc")
param("jetbrains.buildServer.deployer.password", "secret-password")
или что-то в этом роде (как я выяснил, что параметр незащищенного пароля устарел):
param("jetbrains.buildServer.deployer.username", "abc")
param("secure:jetbrains.buildServer.deployer.password", "secret-password")
Если я вручную ввожу пароль в TeamCity и проверяю сгенерированный DSL, я вижу, что пароль каким-то образом защищен:
param("secure:jetbrains.buildServer.deployer.password", "zxx5a3133fc69ef3252") <- "abc" password
param("secure:jetbrains.buildServer.deployer.password", "zxx4469c7c25073dd9f") <- "123" password
Какая кодировка / шифрование используется здесь? Любая подсказка, как передать произвольный пароль (в идеале, через% параметр%) в сценариях Kotlin DSL?