From c26e37e5fa437b6b288a48ba5071c3bfa9774ab7 Mon Sep 17 00:00:00 2001 From: Asaf Gabai Date: Thu, 1 Jun 2023 14:14:47 +0300 Subject: [PATCH 1/3] Send CLI version check request without printing warnings to the log and with a timeout. --- utils/cliutils/utils.go | 33 ++++++++++++++++++++++++++------- 1 file changed, 26 insertions(+), 7 deletions(-) diff --git a/utils/cliutils/utils.go b/utils/cliutils/utils.go index 37a25833f..339bde7a3 100644 --- a/utils/cliutils/utils.go +++ b/utils/cliutils/utils.go @@ -4,8 +4,6 @@ import ( "encoding/json" "fmt" "github.com/jfrog/gofrog/version" - "github.com/jfrog/jfrog-client-go/http/httpclient" - "github.com/jfrog/jfrog-client-go/utils/io/httputils" "io" "net/http" "os" @@ -822,13 +820,16 @@ func shouldCheckLatestCliVersion() (shouldCheck bool, err error) { } func getLatestCliVersionFromGithubAPI() (githubVersionInfo githubResponse, err error) { - client, err := httpclient.ClientBuilder().Build() - if err != nil { + client := &http.Client{Timeout: time.Second * 2} + if errorutils.CheckError(err) != nil { return } - resp, body, _, err := client.SendGet("https://api.github.com/repos/jfrog/jfrog-cli/releases/latest", true, httputils.HttpClientDetails{HttpTimeout: time.Second * 2}, "") - if err != nil { - err = errors.New("couldn't get latest JFrog CLI latest version info from GitHub API: " + err.Error()) + req, err := http.NewRequest("GET", "https://api.github.com/repos/jfrog/jfrog-cli/releases/latest", nil) + if errorutils.CheckError(err) != nil { + return + } + resp, body, err := doHttpRequest(client, req) + if errorutils.CheckError(err) != nil { return } err = errorutils.CheckResponseStatusWithBody(resp, body, http.StatusOK) @@ -838,3 +839,21 @@ func getLatestCliVersionFromGithubAPI() (githubVersionInfo githubResponse, err e err = json.Unmarshal(body, &githubVersionInfo) return } + +func doHttpRequest(client *http.Client, req *http.Request) (resp *http.Response, body []byte, err error) { + req.Close = true + resp, err = client.Do(req) + if errorutils.CheckError(err) != nil { + return + } + defer func() { + if resp != nil && resp.Body != nil { + e := resp.Body.Close() + if err == nil { + err = errorutils.CheckError(e) + } + } + }() + body, err = io.ReadAll(resp.Body) + return resp, body, errorutils.CheckError(err) +} From 85e242000bb2cbd00e8b3554d1ae821c4817ceb4 Mon Sep 17 00:00:00 2001 From: Asaf Gabai Date: Thu, 1 Jun 2023 16:04:32 +0300 Subject: [PATCH 2/3] PR fixes --- utils/cliutils/utils.go | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/utils/cliutils/utils.go b/utils/cliutils/utils.go index 339bde7a3..3039c3330 100644 --- a/utils/cliutils/utils.go +++ b/utils/cliutils/utils.go @@ -2,6 +2,7 @@ package cliutils import ( "encoding/json" + "errors" "fmt" "github.com/jfrog/gofrog/version" "io" @@ -26,7 +27,6 @@ import ( "github.com/jfrog/jfrog-client-go/utils/errorutils" "github.com/jfrog/jfrog-client-go/utils/io/content" "github.com/jfrog/jfrog-client-go/utils/log" - "github.com/pkg/errors" "github.com/urfave/cli" ) @@ -824,7 +824,7 @@ func getLatestCliVersionFromGithubAPI() (githubVersionInfo githubResponse, err e if errorutils.CheckError(err) != nil { return } - req, err := http.NewRequest("GET", "https://api.github.com/repos/jfrog/jfrog-cli/releases/latest", nil) + req, err := http.NewRequest(http.MethodGet, "https://api.github.com/repos/jfrog/jfrog-cli/releases/latest", nil) if errorutils.CheckError(err) != nil { return } @@ -848,10 +848,8 @@ func doHttpRequest(client *http.Client, req *http.Request) (resp *http.Response, } defer func() { if resp != nil && resp.Body != nil { - e := resp.Body.Close() - if err == nil { - err = errorutils.CheckError(e) - } + e := errorutils.CheckError(resp.Body.Close()) + err = errors.Join(err, e) } }() body, err = io.ReadAll(resp.Body) From ff480251925ef3afea0e2bcb7f67c84a73833734 Mon Sep 17 00:00:00 2001 From: Asaf Gabai Date: Thu, 1 Jun 2023 16:16:46 +0300 Subject: [PATCH 3/3] PR fixes --- utils/cliutils/utils.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/utils/cliutils/utils.go b/utils/cliutils/utils.go index 3039c3330..41fb661d8 100644 --- a/utils/cliutils/utils.go +++ b/utils/cliutils/utils.go @@ -829,7 +829,8 @@ func getLatestCliVersionFromGithubAPI() (githubVersionInfo githubResponse, err e return } resp, body, err := doHttpRequest(client, req) - if errorutils.CheckError(err) != nil { + if err != nil { + err = errors.New("couldn't get latest JFrog CLI latest version info from GitHub API: " + err.Error()) return } err = errorutils.CheckResponseStatusWithBody(resp, body, http.StatusOK)