gpt4 book ai didi

rest - 预验证对 Team City 8.0 REST API 的 Powershell WebClient 请求

转载 作者:行者123 更新时间:2023-12-02 23:04:43 26 4
gpt4 key购买 nike

我正在尝试在 Team City 构建步骤中运行 Powershell 脚本。

脚本使用 WebClient 连接到 Team City 的 REST API;目前,我必须登录 Team City 并将用户名和密码硬编码为 Powershell 构建步骤中的参数。

我想知道是否有人知道如何在我的 Powershell 脚本中传递我当前用于向 Team City 进行身份验证的凭据,而无需对任何密码进行硬编码

最佳答案

如果您只需要 REST api 中的读取访问权限(即您不想执行 POST/PUT/DELETE,只需 GET),则使用 teamcity 生成的用户名和密码。

此用户名/密码对是在每次构建时生成的,并且仅在构建运行期间有效。您可以通过以下方式在 powershell 脚本中访问它们:

  • 读取 $env:TEAMCITY_BUILD_PROPERTIES_FILE 环境变量,该变量保存为此构建生成/有效的构建属性文件的完整路径

  • 这个文件是一个简单的 key=value java prop 文件。您需要解析 teamcity.auth.userId 和 teamcity.auth.password 属性的值。或者更好的是,始终在脚本初始化阶段解析所有 props 并将它们放入 powershell 脚本中的哈希表中。

如果您需要对 REST api 进行写访问,则不能使用此 uid/pwd 对。为此,我在 osx 上使用钥匙串(keychain),在 Windows 上使用 keepass 数据库。 Keepass 有一个很好的 .net api,您可以从 powershell 访问它。创建一个新的 keepass 数据库,使其可使用 key 解锁,而不是使用密码,确保运行构建代理的用户有权访问此 key 而没有其他人,然后使用 keepass api 解锁数据库,读出您的 teamcity 管理员可以在其余API中执行POST/PUT/DELETE的帐户和密码。

关于rest - 预验证对 Team City 8.0 REST API 的 Powershell WebClient 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18383220/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com