git - 由于身份验证问题卡在提取

标签 git jenkins tfs

我有一个在 Windows 2012 R2 x64 上运行的 Jenkins (2.0 Beta-2) 服务器,新构建配置为从 TFS GIT (2013) 获取源文件。我已经安装了 Microsoft 提供的 Git for Windows 版本——这个版本声称可以解决 GIT CLI 和 TFS GIT 之间的身份验证问题。

我的 .gitconfig 看起来像这样:

[credential]
    helper = manager
    interactive = never
    validate = false
    integrated = true

Jenkins 在服务帐户下运行,没有交互式 session 。此服务帐户是构建服务器上本地管理员组的成员,并已正确配置为 TFS 上的贡献者。这里的问题是,当 Jenkins 构建开始时,它会在以下命令期间挂起:

git.exe -c core.askpass=true fetch --tags --progress http://my.tfs.server:8080/tfs/collection/_git/MyProject +refs/heads/*:refs/remotes/origin/*

对我来说,很明显它卡住了,要求提供凭据,即使我已将其设置为使用 git-credential-manager。我还尝试使用 GCM 中的“store”命令存储服务帐户凭据,但它失败并出现一个奇怪的错误(使用它的语法非常困惑,所以我可能做错了什么尝试一下)。

最佳答案

对我们来说,完全取消设置“credential.helper”git 配置变量就是答案。从 Git 2.5.0 升级到 2.8.4 后,我们的作业卡在完全相同的位置,并且我们的 Jenkins 服务作为本地系统运行,因此执行以下操作取消设置变量:

git config --global --unset credential.helper
git config --system --unset credential.helper

无需重启或卸载/重新安装。之后,从 Git 构建成功。

Jenkins Git Client 插件似乎依赖于 GIT_ASKPASS正在设置的变量,根据凭证助手 documentation在没有定义凭证助手时使用。

关于git - 由于身份验证问题卡在提取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36479201/

相关文章:

git - 树和目录有什么区别?

Git 自动完成在 bash 中不起作用

git - 在 Visual Studio 中显示当前的 Git 分支?

ruby-on-rails - 由于更新到 business_time gem 版本 0.9.2 日期计算错误

TFS 构建工件正在消失

visual-studio-2010 - 处理多个 TFS 项目时,我是否需要一个父团队项目来管理它们?

Git SVN 偶尔不获取任何内容

Jenkins NoClassDefFoundError : jenkins/scm/RunWithSCM

android - 应用没有新的内容分级 - 无法上传 APK

android - 由于未就 Android 许可证达成一致,通过 TFS 运行的 Gradle 构建失败