From f398af116903cbbcff60c1705f5f700f12a78b43 Mon Sep 17 00:00:00 2001 From: "Quentin McGaw (desktop)" Date: Fri, 29 Oct 2021 01:37:45 +0000 Subject: [PATCH] Fix: check github http status code for version --- internal/version/github.go | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/internal/version/github.go b/internal/version/github.go index 3930ea78..791b0099 100644 --- a/internal/version/github.go +++ b/internal/version/github.go @@ -3,6 +3,8 @@ package version import ( "context" "encoding/json" + "errors" + "fmt" "net/http" "time" ) @@ -23,17 +25,25 @@ type githubCommit struct { } } +var errHTTPStatusCode = errors.New("bad response HTTP status code") + func getGithubReleases(ctx context.Context, client *http.Client) (releases []githubRelease, err error) { const url = "https://api.github.com/repos/qdm12/gluetun/releases" request, err := http.NewRequestWithContext(ctx, http.MethodGet, url, nil) if err != nil { return nil, err } + response, err := client.Do(request) if err != nil { return nil, err } defer response.Body.Close() + + if response.StatusCode != http.StatusOK { + return nil, fmt.Errorf("%w: %s", errHTTPStatusCode, response.Status) + } + decoder := json.NewDecoder(response.Body) if err := decoder.Decode(&releases); err != nil { return nil, err