diff --git a/pkg/api/http_client.go b/pkg/api/http_client.go index 2195306..c2f0d79 100644 --- a/pkg/api/http_client.go +++ b/pkg/api/http_client.go @@ -22,6 +22,8 @@ import ( const ( accept = "Accept" authorization = "Authorization" + apiVersion = "X-GitHub-Api-Version" + apiVersionValue = "2022-11-28" contentType = "Content-Type" github = "github.com" jsonContentType = "application/json; charset=utf-8" @@ -112,7 +114,7 @@ func NewHTTPClient(opts ClientOptions) (*http.Client, error) { opts.Headers = map[string]string{} } if !opts.SkipDefaultHeaders { - resolveHeaders(opts.Headers) + setDefaultHeaders(opts.Headers) } transport = newHeaderRoundTripper(opts.Host, opts.AuthToken, opts.Headers, transport) @@ -141,7 +143,7 @@ type headerRoundTripper struct { rt http.RoundTripper } -func resolveHeaders(headers map[string]string) { +func setDefaultHeaders(headers map[string]string) { if _, ok := headers[contentType]; !ok { headers[contentType] = jsonContentType } @@ -163,6 +165,9 @@ func resolveHeaders(headers map[string]string) { headers[timeZone] = tz } } + if _, ok := headers[apiVersion]; !ok { + headers[apiVersion] = apiVersionValue + } if _, ok := headers[accept]; !ok { // Preview for PullRequest.mergeStateStatus. a := "application/vnd.github.merge-info-preview+json" diff --git a/pkg/api/http_client_test.go b/pkg/api/http_client_test.go index 19c911d..e7cb4df 100644 --- a/pkg/api/http_client_test.go +++ b/pkg/api/http_client_test.go @@ -122,6 +122,7 @@ func TestNewHTTPClient(t *testing.T) { wantHeaders: func() http.Header { h := defaultHeaders() h.Del(accept) + h.Del(apiVersion) h.Del(contentType) h.Del(timeZone) h.Del(userAgent) @@ -169,6 +170,7 @@ func defaultHeaders() http.Header { h := http.Header{} a := "application/vnd.github.merge-info-preview+json" a += ", application/vnd.github.nebula-preview" + h.Set(apiVersion, apiVersionValue) h.Set(contentType, jsonContentType) h.Set(userAgent, "go-gh") h.Set(authorization, fmt.Sprintf("token %s", "oauth_token"))