Jenkins TFS凭证绑定

时间:2018-01-03 12:16:17

标签: powershell jenkins tfs jenkins-plugins credentials

我有一大群用户使用相同的Active Directory凭据登录TFS和Jenkins。

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

  • 公司\ JohnSmith对
  • 公司\ MaryJones
  • 公司\ ServiceAccount

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

目前,PowerShell脚本使用 Company \ ServiceAccount 在TFS中完成合并和签入。 这样做的问题是,即使公司\ JohnSmith 公司\ MaryJones 启动Jenkins工作, Company \ ServiceAccount 也会记录在TFS中完成办理登机手续。

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

我安装了以下Jenkins插件:

  • 凭据绑定插件
  • 凭据插件
  • 普通凭证
  • 插件Team Foundation Server插件

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

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

1 个答案:

答案 0 :(得分:0)

该脚本使用在Jenkins TFS插件中配置的用户/ TFS凭据Company\ServiceAccount来执行TFS连接并签入操作。

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

作为一种解决方法,您可以通过TFS构建管道执行此操作。由于您的源代码管理是在TFS中管理的,因此只需使用Jenkins构建。

您只需添加一个Jenkins Queue Job任务,该任务将在TFS构建定义中将作业排入Jenkins服务器上。

然后添加powershell脚本任务以执行合并和签入操作。关于如何使用powerShell将代码提交到TFS,请参阅此blog。最后,用户将Jenkins Job排队,然后在TFS中检入代码。