summaryrefslogtreecommitdiff
path: root/ext/git/workaround.go
diff options
context:
space:
mode:
authorjannfis <jann@mistrust.net>2024-05-27 19:38:30 +0000
committerjannfis <jann@mistrust.net>2024-05-27 19:40:33 +0000
commit67f3d349f9fb60bb232cf6f0734a090bc48f5a4e (patch)
treef8b3731f82b98982d4f26ee598635d7932efed19 /ext/git/workaround.go
parenteb1d8d30bb22cb82928df64fd5028fa978f8cb5b (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.go20
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