Jenkins TFS 凭据绑定



我有一个庞大的用户团队,使用相同的Active Directory凭据登录到TFS和Jenkins。

可用于访问TFS 和 Jenkins的 AD 帐户示例:

  • 公司\约翰史密斯
  • 公司\玛丽琼斯
  • 公司\服务帐户

在 Jenkins 中,我创建了一个作业,该作业将通过执行 PowerShell 脚本来合并代码并签入到 TFS。

目前,PowerShell 脚本使用公司\服务帐户在 TFS 中完成合并和签入。 这样做的问题是,即使Company\JohnSmithCompany\MaryJones启动了 Jenkins 作业,TFS 中也会将Company\ServiceAccount记录为已完成签入。

为了更好的可追溯性,我希望能够使用当前登录到 Jenkins 的用户的凭据(无论是 JohnSmith 还是 MaryJones 或其他数百个用户中的任何一个), 并将该用户名和密码传递给 PowerShell 脚本以连接到 TFS。结果将是,在TFS中,它将显示JohnSmith/MaryJones而不是ServiceAccount进行了签入。

我已经安装了以下 Jenkins 插件:

  • 凭据绑定插件
  • 凭据插件
  • 普通凭据
  • 插件
  • 团队基础服务器插件

我希望能够自动将当前登录用户的凭据传递给 PowerShell 脚本。这可能吗,我该怎么做?

我不想每次都传递相同的凭据,也不想让用户重新输入他们的用户名/密码作为参数。

该脚本使用用户/TFS凭据CompanyServiceAccount在Jenkins TFS插件中配置了该凭据来执行TFS连接和签入操作。

无法自动将当前登录的 Jenkins 用户的凭据传递给 PowerShell 脚本。

解决方法是,可以通过 TFS 生成管道执行此操作。由于源代码管理在 TFS 中管理,并且仅使用 Jenkins 生成。

只需添加一个Jenkins 队列作业任务,该任务将在 TFS 生成定义中的 Jenkins 服务器上对作业进行排队。

然后添加 Powershell 脚本任务以执行合并和签入操作。有关如何使用 powerShell 将代码提交到 TFS 的信息,请参阅此博客。最后,将是将 Jenkins 作业排队的用户,然后在 TFS 中签入代码。

最新更新