gpt4 book ai didi

proxy - 使用 LibGit2Sharp 抛出企业防火墙背后的 Git 网络操作

转载 作者:行者123 更新时间:2023-12-04 21:35:14 24 4
gpt4 key购买 nike

我正在尝试使用 LibGit2Sharp 到 git push 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);
}

我收到一个 LibGit2SharpException 说

Additional information: Failed to set proxy: The parameter is incorrect.



但是在 git bash 中,当我做 git push origin 时一切都很好.

我们有 NTLM 代理在工作,我正在推送到 Intranet https 远程 URI。我已将代理配置为 http://username:password@proxy.fqdn:80在下面的:
  • 环境变量:HTTP_PROXY 和 HTTPS_PROXY
  • repo .git/config:
  • remote.origin.proxy
  • http.proxy
  • https.proxy
  • http.sslCAInfo & https.sslCAInfo - 这是主机的根 CA 的路径

  • 已通读 this SO and links there似乎 libgit2sharp 应该可以很好地找到代理参数。有没有人让它在 ntlm 下工作?

    我在用:
    Windows 7、LibGit2Sharp.0.22.0、Git 2.10.1.windows.1、bash 4.3.46、.net4.5.2

    任何通过替代方案实现插入的想法/技巧也非常受欢迎!

    最佳答案

    这来自“ libgit2 src/transports/winhttp.c ”,它直接调用Windows API WinHttpSetOption function .

    它通过了 WINHTTP_OPTION_PROXY 设置或检索 WINHTTP_PROXY_INFO 包含现有 session 句柄或请求句柄上的代理数据的结构。

    该函数返回 ERROR_INVALID_PARAMETER (参数无效)仅当 WINHTTP_OPTION_WEB_SOCKET_KEEPALIVE_INTERVAL设置为低于 15000 的值.

    不知道为什么LibGit2Sharp有这个问题,但首先尝试只设置环境变量 HTTP_PROXY & HTTPS_PROXY (不是 http.proxyhttps.proxy ),并确保对两个代理环境变量使用相同的 http url(不是 https url for HTTPS_PROXY )

    关于这个的官方 libgit2 错误是 issue 2106 ,这应该用 PR 3110 解决, 和 commit 1dc4491 .
    但是,该修复程序还不是发布的一部分。

    关于proxy - 使用 LibGit2Sharp 抛出企业防火墙背后的 Git 网络操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39907956/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com