diff --git a/app/cmd/crumbIssuer.go b/app/cmd/crumbIssuer.go index b260b0162ddd0e8b7ebfab34e089047fc9e0a2d1..c98f7ba78afca07a746f2a9200a7445e7b23fab8 100644 --- a/app/cmd/crumbIssuer.go +++ b/app/cmd/crumbIssuer.go @@ -2,11 +2,13 @@ package cmd import ( "crypto/tls" + "encoding/base64" "encoding/json" "fmt" "io/ioutil" "log" "net/http" + "net/url" "github.com/spf13/cobra" ) @@ -53,6 +55,18 @@ func getCrumb() (CrumbIssuer, *JenkinsServer) { tr := &http.Transport{ TLSClientConfig: &tls.Config{InsecureSkipVerify: true}, } + + if config.ProxyAuth != "" { + basicAuth := "Basic " + base64.StdEncoding.EncodeToString([]byte(config.ProxyAuth)) + req.Header.Add("Proxy-Authorization", basicAuth) + + tr.ProxyConnectHeader = http.Header{} + tr.ProxyConnectHeader.Add("Proxy-Authorization", basicAuth) + + if proxyURL, err := url.Parse(config.Proxy); err == nil { + tr.Proxy = http.ProxyURL(proxyURL) + } + } client := &http.Client{Transport: tr} if response, err := client.Do(req); err == nil { if data, err := ioutil.ReadAll(response.Body); err == nil {