bin/get-github-release.go: report body of HTTP responses with errors

This commit is contained in:
Nick Craig-Wood 2018-03-07 09:57:53 +00:00
parent 0175332987
commit 2e7e15461b

View File

@ -7,7 +7,9 @@ package main
import ( import (
"encoding/json" "encoding/json"
"flag" "flag"
"fmt"
"io" "io"
"io/ioutil"
"log" "log"
"net/http" "net/http"
"os" "os"
@ -129,6 +131,15 @@ func defaultBinDir() string {
return binDir return binDir
} }
// read the body or an error message
func readBody(in io.Reader) string {
data, err := ioutil.ReadAll(in)
if err != nil {
return fmt.Sprintf("Error reading body: %v", err.Error())
}
return string(data)
}
// Get an asset URL and name // Get an asset URL and name
func getAsset(project string, matchName *regexp.Regexp) (string, string) { func getAsset(project string, matchName *regexp.Regexp) (string, string) {
url := "https://api.github.com/repos/" + project + "/releases/latest" url := "https://api.github.com/repos/" + project + "/releases/latest"
@ -138,6 +149,7 @@ func getAsset(project string, matchName *regexp.Regexp) (string, string) {
log.Fatalf("Failed to fetch release info %q: %v", url, err) log.Fatalf("Failed to fetch release info %q: %v", url, err)
} }
if resp.StatusCode != http.StatusOK { if resp.StatusCode != http.StatusOK {
log.Printf("Error: %s", readBody(resp.Body))
log.Fatalf("Bad status %d when fetching %q release info: %s", resp.StatusCode, url, resp.Status) log.Fatalf("Bad status %d when fetching %q release info: %s", resp.StatusCode, url, resp.Status)
} }
var release Release var release Release
@ -173,6 +185,7 @@ func getFile(url, fileName string) {
log.Fatalf("Failed to fetch asset %q: %v", url, err) log.Fatalf("Failed to fetch asset %q: %v", url, err)
} }
if resp.StatusCode != http.StatusOK { if resp.StatusCode != http.StatusOK {
log.Printf("Error: %s", readBody(resp.Body))
log.Fatalf("Bad status %d when fetching %q asset: %s", resp.StatusCode, url, resp.Status) log.Fatalf("Bad status %d when fetching %q asset: %s", resp.StatusCode, url, resp.Status)
} }