由于身份验证问题导致抓取

Fab*_*cio 8 git tfs jenkins

我有一台运行在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
Run Code Online (Sandbox Code Playgroud)

Jenkins在服务帐户下运行,没有交互式会话.此服务帐户是构建服务器上本地管理组的成员,并且已正确配置为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/*
Run Code Online (Sandbox Code Playgroud)

对我而言,似乎很明显它被卡住了,要求提供凭据,即使我已将其设置为使用git-credential-manager.我还尝试使用GCM中的"store"命令存储服务帐户凭据,但它失败并出现一个奇怪的错误(使用它的语法非常混乱,所以我可能做错了什么时候尝试它).

Nic*_*nes 44

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

git config --global --unset credential.helper
git config --system --unset credential.helper
Run Code Online (Sandbox Code Playgroud)

无需重启或卸载/重新安装.之后,Git的构建成功了.

Jenkins Git客户端插件似乎依赖于设置的GIT_ASKPASS变量,根据凭证帮助程序文档,在没有定义凭证帮助程序时使用该变量.