【问题标题】:Jenkins TFS Credential BindingJenkins TFS 凭证绑定
【发布时间】:2018-06-13 02:51:00
【问题描述】:

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

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

  • 公司\约翰史密斯
  • 公司\MaryJones
  • 公司\服务帐户

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

目前 PowerShell 脚本使用 Company\ServiceAccount 来完成 TFS 中的合并和签入。 这样做的问题是,即使 Company\JohnSmithCompany\MaryJones 启动 Jenkins 工作,Company\ServiceAccount 也会在 TFS 中记录为已完成签到。

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

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

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

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

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

【问题讨论】:

  • 不要认为这是可能的,但可以在 Merge 中使用解决方法,您可以使用 Jenkins 中的当前用户变量并将其放在合并注释/注释字段中。
  • 谢谢@RyanMcVicar。如果没有其他办法,我会使用你的建议

标签: powershell jenkins tfs jenkins-plugins credentials


【解决方案1】:

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

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

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

您可以简单地添加一个Jenkins Queue Job 任务,该任务将在 TFS 构建定义中将 Jenkins 服务器上的作业排队。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-07
    • 1970-01-01
    • 1970-01-01
    • 2016-06-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多