From 67f3d349f9fb60bb232cf6f0734a090bc48f5a4e Mon Sep 17 00:00:00 2001 From: jannfis Date: Mon, 27 May 2024 19:38:30 +0000 Subject: chore(deps): Pull in Git client changes from Argo CD v2.11.2 Signed-off-by: jannfis --- ext/git/workaround.go | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'ext/git/workaround.go') diff --git a/ext/git/workaround.go b/ext/git/workaround.go index c364c09..4763612 100644 --- a/ext/git/workaround.go +++ b/ext/git/workaround.go @@ -1,6 +1,9 @@ package git import ( + "fmt" + neturl "net/url" + "github.com/go-git/go-git/v5" "github.com/go-git/go-git/v5/plumbing" "github.com/go-git/go-git/v5/plumbing/transport" @@ -30,6 +33,23 @@ func newClient(url string, insecure bool, creds Creds, proxy string) (transport. if !IsHTTPSURL(url) && !IsHTTPURL(url) { // use the default client for protocols other than HTTP/HTTPS + ep.InsecureSkipTLS = insecure + if proxy != "" { + parsedProxyURL, err := neturl.Parse(proxy) + if err != nil { + return nil, nil, fmt.Errorf("failed to create client for url '%s', error parsing proxy url '%s': %w", url, proxy, err) + } + var proxyUsername, proxyPasswd string + if parsedProxyURL.User != nil { + proxyUsername = parsedProxyURL.User.Username() + proxyPasswd, _ = parsedProxyURL.User.Password() + } + ep.Proxy = transport.ProxyOptions{ + URL: fmt.Sprintf("%s://%s:%s", parsedProxyURL.Scheme, parsedProxyURL.Hostname(), parsedProxyURL.Port()), + Username: proxyUsername, + Password: proxyPasswd, + } + } c, err := client.NewClient(ep) if err != nil { return nil, nil, err -- cgit v1.2.3