Teamcity 版本化设置:如何使用令牌

Teamcity 版本化设置:如何使用令牌

当将配置作为 Kotlin DSL 存储在 VCS 中时,您不应该硬编码密码和令牌,而应该使用“令牌”。问题是,它没有正确记录。

假设我有一个credentialsJSON:78098495-5f8c-4935-82b5-03eafaf2adde包含 VCS 密钥密码的令牌。如何在 Kotlin DSL 代码中使用它?

我尝试了以下方法:

params {
    password("GitHub-key-passphrase", "credentialsJSON:78098495-5f8c-4935-82b5-03eafaf2adde")
}

但是,TeamCity 会抱怨未指定参数“GitHub-key-passphrase”。如何获取要替换的令牌?

答案1

我的理解是,这是一个多部分的事情。

  1. 在 TeamCity GUI 中添加令牌(版本设置 > 令牌)
  2. 在你的 Kotlin 中引用该 Token(你上面已经完成了)
  3. 在您的构建配置中,使用您在 Kotlin 中定义的参数。

所以如果你做类似的事情:

params{
    add {
        param("system.myGithubPassword)", "credentialsJSON:78098495-5f8c-4935-82b5-03eafaf2adde")
    }
}

然后您应该看到(在 GUI 中)您的项目现在有一个名为 myGithubPassword 的系统参数,其值为(隐藏)。您还应该看到(在 GUI 中)使用该令牌的项目/参数 - 显示在“令牌”页面中。然后您可以%system.mygithubpassword%在任何可以处理 TeamCity 参数替换的构建位置中引用,并且 TeamCity 应该处理参数 -> 令牌 -> 密码替换。

根据您的描述,您可能正确设置了令牌和参数,但没有在构建配置中按照您想要/期望的方式使用该参数。

我就是这样思考它应该可以工作,但是像你一样,我发现文档有点难以理解......

https://www.jetbrains.com/help/teamcity/storing-project-settings-in-version-control.html#Managing+Tokens

答案2

尝试命名构造函数参数

params {
    password(name = "GitHub-key-passphrase", value "credentialsJSON:78098495-5f8c-4935-82b5-03eafaf2adde")
}

相关内容