2016-10-07 50 views
5

Próbuję użyć LibGit2Sharp do git push origin użyciu następującychoperacje sieciowe Git za firmowym firewallem wykorzystaniem LibGit2Sharp rzuca

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); 
} 

dostaję LibGit2SharpException mówiąc

Informacje dodatkowe: Nie można ustawić proxy: Parametr jest niepoprawny.

Ale w git bash wszystko jest w porządku, gdy robię git push origin.

Mamy serwer proxy NTLM w pracy i naciskam na zdalny identyfikator URI HTTP w intranecie. Mam skonfigurowane proxy jako http://username:[email protected]:80 w następujący:

  • Env vars: HTTP_PROXY & HTTPS_PROXY
  • repo .git/config:
    • remote.origin.proxy
    • http.proxy
    • https.proxy
    • http.sslCAInfo & https.sslCAInfo - jest to ścieżka do głównego urzędu certyfikacji dla hosta

Po przeczytaniu przez this SO and links there wydaje się libgit2sharp powinien znaleźć parametr proxy dobrze. Czy ktoś dostał to do pracy behing ntlm?

Używam: Windows 7, LibGit2Sharp.0.22.0, Git 2.10.1.windows.1, bash 3.4.46, .net4.5.2

Wszelkie pomysły/sztuczki na osiągnięcie przez push alternatywy są również bardzo mile widziane!

Odpowiedz

0

To pochodzi z "libgit2 src/transports/winhttp.c", który bezpośrednio wywołuje interfejs API systemu Windows WinHttpSetOption function.

Przekazuje WINHTTP_OPTION_PROXY, aby ustawić lub pobrać strukturę WINHTTP_PROXY_INFO, która zawiera dane proxy w istniejącym dojściu sesji lub uchwycie żądania.

Ta funkcja zwraca ERROR_INVALID_PARAMETER (parametr jest nieprawidłowy) tylko wtedy, gdy WINHTTP_OPTION_WEB_SOCKET_KEEPALIVE_INTERVAL ma wartość niższą niż 15000.

nie wiem dlaczego LibGit2Sharp ma ten problem, ale spróbuj najpierw tylko ustawić zmienne środowiskowe HTTP_PROXY & HTTPS_PROXY (nie http.proxy & https.proxy) i upewnij się, aby korzystać z tego samego adresu URL http proxy dla obu zmiennych środowiskowych (nie https url dla HTTPS_PROXY)

oficjalna bug libgit2 na to issue 2106, który ma być rozwiązany z PR 3110 i commit 1dc4491.
Jednak ta poprawka to , a nie część wydania.

+0

Ten sam błąd przy ustawianiu env vars – aateeque

+0

@aateeque Czy masz jakiś specjalny znak w nazwie użytkownika lub haśle proxy? – VonC

+0

Nie, nic. Tylko litery i cyfry – aateeque