From b55688dcf02d71793c6a2a66bbf1f948af81518a Mon Sep 17 00:00:00 2001 From: Will Norris Date: Tue, 14 Oct 2014 16:09:18 -0700 Subject: [PATCH] set user agent header only if non-empty --- github/github.go | 4 +++- github/github_test.go | 14 ++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/github/github.go b/github/github.go index f4e0dc9..c9236e2 100644 --- a/github/github.go +++ b/github/github.go @@ -165,7 +165,9 @@ func (c *Client) NewRequest(method, urlStr string, body interface{}) (*http.Requ } req.Header.Add("Accept", mediaTypeV3) - req.Header.Add("User-Agent", c.UserAgent) + if c.UserAgent != "" { + req.Header.Add("User-Agent", c.UserAgent) + } return req, nil } diff --git a/github/github_test.go b/github/github_test.go index 15ecce2..5fc347c 100644 --- a/github/github_test.go +++ b/github/github_test.go @@ -211,6 +211,20 @@ func TestNewRequest_badURL(t *testing.T) { testURLParseError(t, err) } +// ensure that no User-Agent header is set if the client's UserAgent is empty. +// This caused a problem with Google's internal http client. +func TestNewRequest_emptyUserAgent(t *testing.T) { + c := NewClient(nil) + c.UserAgent = "" + req, err := c.NewRequest("GET", "/", nil) + if err != nil { + t.Fatalf("NewRequest returned unexpected error: %v", err) + } + if _, ok := req.Header["User-Agent"]; ok { + t.Fatal("constructed request contains unexpected User-Agent header") + } +} + func TestResponse_populatePageValues(t *testing.T) { r := http.Response{ Header: http.Header{