Improve error message for askpass.

When endpoint returns non-200 status, include the body in the error
message since it can contain useful information for debugging.  Also
defer closing the response body ReadCloser as this may have leaked in
the past.
This commit is contained in:
Brian Kennedy 2021-06-15 11:22:44 -07:00
parent 903d86dd66
commit a87c78665d
1 changed files with 8 additions and 2 deletions

View File

@ -1365,11 +1365,17 @@ func (git *repoSync) CallAskPassURL(ctx context.Context) error {
if err != nil {
return fmt.Errorf("can't access auth URL: %w", err)
}
defer func() {
_ = resp.Body.Close()
}()
if resp.StatusCode != 200 {
return fmt.Errorf("auth URL returned status %d", resp.StatusCode)
errMessage, err := ioutil.ReadAll(resp.Body)
if err != nil {
return fmt.Errorf("auth URL returned status %d, failed to read body: %w", resp.StatusCode, err)
}
return fmt.Errorf("auth URL returned status %d, body: %q", resp.StatusCode, string(errMessage))
}
authData, err := ioutil.ReadAll(resp.Body)
resp.Body.Close()
if err != nil {
return fmt.Errorf("can't read auth response: %w", err)
}