Tom*_*son 7 tfs tfsbuild libgit2 libgit2sharp tfs2013
我目前正在使用TFS 2013(本地安装)尝试使用LDAP身份验证从内部GitHub Enterprise安装进行构建.
我得到的问题是它无法访问源代码,如何配置TFS Build以使用特定的身份验证?
从TFS构建日志
异常消息:libgit2引发了一个错误.Category = Net(错误).
VS30063:您无权访问https:// user:password@githubrepository.corp.company.net.(输入LibGit2SharpException)
异常数据字典:
libgit2.code = -1
libgit2.category = 11
异常堆栈跟踪:
服务器堆栈跟踪:
在LibGit2Sharp.Core.Ensure.HandleError(的Int32结果)在LibGit2Sharp.Core.Proxy.git_clone(字符串URL,字符串WORKDIR,GitCloneOptions选择采用)在LibGit2Sharp.Repository.Clone(字符串sourceUrl,字符串workdirPath,布尔裸露,布尔结帐,TransferProgressHandler System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md,Object []上的Microsoft.TeamFoundation.Build.Activities.Git.GitPull.GitClone.GetRepository(String repositoryUrl,String workingFolder)上的onTransferProgress,CheckoutProgressHandler onCheckoutProgress,Credentials credentials)指定参数时,对象服务器,对象[]&outArgs)在System.Runtime.Remoting.Messaging.StackBuilderSink.AsyncProcessMessage(即时聊天味精,IMessageSink replySink)
在[0]处重新抛出异常:
在System.Runtime.Remoting.Proxies.RealProxy.EndInvokeHelper(消息reqMsg,布尔bProxyCase)在System.Runtime.Remoting.Proxies.RemotingProxy.Invoke(对象NOTUSED,MessageData&MSGDATA)在System.Func
3.EndInvoke(IAsyncResult result) at Microsoft.TeamFoundation.Build.Activities.Git.GitPull.GitRepositoryBase.EndExecute(AsyncCodeActivityContext context, IAsyncResult result) at System.Activities.AsyncCodeActivity1.System.Activities.IAsyncCodeActivity. FinishExecution(AsyncCodeActivityContext上下文,IAsyncResult的结果)在System.Activities.AsyncCodeActivity.CompleteAsyncCodeActivityData.CompleteAsyncCodeActivityWorkItem.Execute(ActivityExecutor执行者,bookmarkManager bookmarkManager)
跟进
我尝试过URL params进行身份验证(示例)
更多跟进
完全卸载并更新到2013 RC,错误消息也已更新,因为它是不同的.
我还尝试将构建控制器设置为在github企业安装中作为经过身份验证的LDAP用户运行.
这很奇怪。看起来 HTTP 传输应该遵循 url 编码的凭据。
无论如何,设置遥控器以从其他地方获取凭据可能会更好、更安全。克隆代码是如何执行此操作的一个很好的示例:以下是如何设置回调,以下是如何生成凭证对象的示例。