diff options
| author | jannfis <jann@mistrust.net> | 2024-05-27 19:38:30 +0000 |
|---|---|---|
| committer | jannfis <jann@mistrust.net> | 2024-05-27 19:40:33 +0000 |
| commit | 67f3d349f9fb60bb232cf6f0734a090bc48f5a4e (patch) | |
| tree | f8b3731f82b98982d4f26ee598635d7932efed19 /ext/git/workaround.go | |
| parent | eb1d8d30bb22cb82928df64fd5028fa978f8cb5b (diff) | |
chore(deps): Pull in Git client changes from Argo CD v2.11.2
Signed-off-by: jannfis <jann@mistrust.net>
Diffstat (limited to 'ext/git/workaround.go')
| -rw-r--r-- | ext/git/workaround.go | 20 |
1 files changed, 20 insertions, 0 deletions
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 |
