Proxy 使用LibGit2Sharp抛出的公司防火墙后面的Git网络操作
我正在尝试使用LibGit2Sharp来Proxy 使用LibGit2Sharp抛出的公司防火墙后面的Git网络操作,proxy,ntlm,git-push,libgit2sharp,Proxy,Ntlm,Git Push,Libgit2sharp,我正在尝试使用LibGit2Sharp来git推送origin,方法如下 using(var repo = new Repository("path\to\repo\.git")) { var commit = repo.Commit("Commit message", author, committer); var options = new PushOptions{ CredentialsProvider = (u, s, t) => new UserNamePasswo
git推送origin
,方法如下
using(var repo = new Repository("path\to\repo\.git"))
{
var commit = repo.Commit("Commit message", author, committer);
var options = new PushOptions{ CredentialsProvider = (u, s, t) => new UserNamePasswordCredentials { Username = "username", Password = "password" } };
repo.Network.Push(repo.Branches("master"), options);
}
我听到一个libgit2sharp异常说
其他信息:设置代理失败:参数不正确
但是在git bash中,当我执行git push origin时,一切都很好
我们有NTLM代理在工作,我正在推一个内部网https远程URI。我已将代理配置为http://username:password@proxy.fqdn:80
,如下所示:
- Env-vars:HTTP\u代理和HTTPS\u代理
- repos.git/config:
- remote.origin.proxy
- http.proxy
- https.proxy
- http.sslCAInfo&https.sslCAInfo-这是主机根CA的路径
WINHTTP\u OPTION\u WEB\u SOCKET\u KEEPALIVE\u INTERVAL
设置为低于15000
的值时,该函数才会返回ERROR\u INVALID\u参数(参数无效)
我不知道为什么会出现这个问题,但请首先尝试只设置环境变量HTTP\u PROXY
&HTTPS\u PROXY
(而不是HTTP.PROXY
&HTTPS.PROXY
),并确保对两个代理环境变量使用相同的HTTP url(不是HTTPS\u PROXY
的HTTPS url)
这方面的官方libgit2错误是,应该通过和解决。
但是,该修复程序尚未发布。@aateeque您的用户名或代理密码中是否有任何特殊字符?没有,没有。就是信,numbers@aateeque我在编辑答案时引用了一个补丁(尚未发布)@aateeque从技术上讲,应该可以获取libgit2主源代码(包括补丁:),然后重新编译它,然后基于新编译的库重建LibGitSharp:这至少可以测试这个问题是否通过最新的libgit2.spot解决!刚刚试用了0.23.0-pre20160922233542,效果不错!谢谢