diff --git a/gitea.go b/gitea.go index 8a3870e..3b73a6c 100644 --- a/gitea.go +++ b/gitea.go @@ -24,7 +24,14 @@ type Owner struct { Username string `json:"username"` } -func (g *GiteaClient) getRepositories(org string) (list []Repository, rerr error) { +func closeReader(rc io.ReadCloser, err *error) { + tempErr := rc.Close() + if tempErr != nil && *err == nil { + *err = tempErr + } +} + +func (g *GiteaClient) getRepositories(org string) (list []Repository, resultErr error) { url := fmt.Sprintf("%s/api/v1/orgs/%s/repos", g.BaseURL, org) req, _ := http.NewRequest("GET", url, nil) req.Header.Set("Authorization", "token "+g.Token) @@ -33,12 +40,7 @@ func (g *GiteaClient) getRepositories(org string) (list []Repository, rerr error if err != nil { return nil, err } - defer func(Body io.ReadCloser) { - err := Body.Close() - if err != nil { - rerr = err - } - }(resp.Body) + defer closeReader(resp.Body, &err) var repos []Repository if err := json.NewDecoder(resp.Body).Decode(&repos); err != nil { @@ -47,7 +49,7 @@ func (g *GiteaClient) getRepositories(org string) (list []Repository, rerr error return repos, nil } -func (g *GiteaClient) hasPKGBUILD(repo Repository) (present bool, rerr error) { +func (g *GiteaClient) hasPKGBUILD(repo Repository) (present bool, resultErr error) { url := fmt.Sprintf("%s/api/v1/repos/%s/%s/contents/PKGBUILD", g.BaseURL, repo.Owner.Username, repo.Name) req, _ := http.NewRequest("GET", url, nil) req.Header.Set("Authorization", "token "+g.Token) @@ -56,12 +58,7 @@ func (g *GiteaClient) hasPKGBUILD(repo Repository) (present bool, rerr error) { if err != nil { return false, err } - defer func(Body io.ReadCloser) { - err := Body.Close() - if err != nil { - rerr = err - } - }(resp.Body) + defer closeReader(resp.Body, &err) if resp.StatusCode == http.StatusNotFound { return false, nil