TeamCity、Kotlin DSL:如何传递 FTP 密码
TeamCity, KotlinDSL: how to pass FTP password
最近我遇到了一种情况,我们的 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
这里用的encoding/encryption是什么?知道如何在 Kotlin DSL 脚本中传递任意密码(理想情况下,通过 %parameter%)吗?
当您需要不通过 TeamCity UI 将密码添加到版本化设置时(例如,使用 Kotlin-based [=19= 添加设置]DSL),您需要将密码添加到 TeamCity 并获取相应的令牌以在设置中使用。可以通过 Project | 中可用的 "Generate Token for password" 操作生成令牌。 操作菜单。
此时项目层次结构无法继承密码。如果项目中的设置(VCS 根目录、OAuth 连接、云配置文件)需要密码,则为此密码生成的令牌只能在该项目中使用。例如,不可能获取生成的令牌并在子项目的类似设置中使用它。应在此生成一个新令牌 case.If 您需要在嵌套项目中使用安全值,请考虑在嵌套项目中的参数中添加 password parameter with the secure value and using a reference。
生成令牌的其他方式是
mvn -Dtext="mysecret" org.jetbrains.teamcity:teamcity-configs-maven-plugin:scramble
最近我遇到了一种情况,我们的 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
这里用的encoding/encryption是什么?知道如何在 Kotlin DSL 脚本中传递任意密码(理想情况下,通过 %parameter%)吗?
当您需要不通过 TeamCity UI 将密码添加到版本化设置时(例如,使用 Kotlin-based [=19= 添加设置]DSL),您需要将密码添加到 TeamCity 并获取相应的令牌以在设置中使用。可以通过 Project | 中可用的 "Generate Token for password" 操作生成令牌。 操作菜单。
此时项目层次结构无法继承密码。如果项目中的设置(VCS 根目录、OAuth 连接、云配置文件)需要密码,则为此密码生成的令牌只能在该项目中使用。例如,不可能获取生成的令牌并在子项目的类似设置中使用它。应在此生成一个新令牌 case.If 您需要在嵌套项目中使用安全值,请考虑在嵌套项目中的参数中添加 password parameter with the secure value and using a reference。
生成令牌的其他方式是
mvn -Dtext="mysecret" org.jetbrains.teamcity:teamcity-configs-maven-plugin:scramble