diff --git a/api/client.go b/api/client.go index e6ff59c592b..207fd86d368 100644 --- a/api/client.go +++ b/api/client.go @@ -16,6 +16,8 @@ import ( const ( accept = "Accept" + apiVersion = "X-GitHub-Api-Version" + apiVersionValue = "2022-11-28" authorization = "Authorization" cacheTTL = "X-GH-CACHE-TTL" graphqlFeatures = "GraphQL-Features" @@ -264,6 +266,7 @@ func clientOptions(hostname string, transport http.RoundTripper) ghAPI.ClientOpt AuthToken: "none", Headers: map[string]string{ authorization: "", + apiVersion: apiVersionValue, }, Host: hostname, SkipDefaultHeaders: true, diff --git a/api/client_test.go b/api/client_test.go index 1701a17a967..f988e090c3a 100644 --- a/api/client_test.go +++ b/api/client_test.go @@ -245,10 +245,11 @@ func TestHTTPHeaders(t *testing.T) { assert.NoError(t, err) wantHeader := map[string]string{ - "Accept": "application/vnd.github.merge-info-preview+json, application/vnd.github.nebula-preview", - "Authorization": "token MYTOKEN", - "Content-Type": "application/json; charset=utf-8", - "User-Agent": "GitHub CLI v1.2.3", + "Accept": "application/vnd.github.merge-info-preview+json, application/vnd.github.nebula-preview", + "Authorization": "token MYTOKEN", + "Content-Type": "application/json; charset=utf-8", + "User-Agent": "GitHub CLI v1.2.3", + "X-GitHub-Api-Version": "2022-11-28", } for name, value := range wantHeader { assert.Equal(t, value, gotReq.Header.Get(name), name) diff --git a/api/http_client.go b/api/http_client.go index ab7d490632f..9957f6bc51d 100644 --- a/api/http_client.go +++ b/api/http_client.go @@ -49,7 +49,8 @@ func NewHTTPClient(opts HTTPClientOptions) (*http.Client, error) { } headers := map[string]string{ - userAgent: fmt.Sprintf("GitHub CLI %s", opts.AppVersion), + userAgent: fmt.Sprintf("GitHub CLI %s", opts.AppVersion), + apiVersion: apiVersionValue, } clientOpts.Headers = headers diff --git a/api/http_client_test.go b/api/http_client_test.go index 9a915837fe8..824bc0f1b13 100644 --- a/api/http_client_test.go +++ b/api/http_client_test.go @@ -39,9 +39,10 @@ func TestNewHTTPClient(t *testing.T) { }, host: "github.com", wantHeader: map[string][]string{ - "authorization": {"token MYTOKEN"}, - "user-agent": {"GitHub CLI v1.2.3"}, - "accept": {"application/vnd.github.merge-info-preview+json, application/vnd.github.nebula-preview"}, + "authorization": {"token MYTOKEN"}, + "user-agent": {"GitHub CLI v1.2.3"}, + "x-github-api-version": {"2022-11-28"}, + "accept": {"application/vnd.github.merge-info-preview+json, application/vnd.github.nebula-preview"}, }, wantStderr: "", }, @@ -53,9 +54,10 @@ func TestNewHTTPClient(t *testing.T) { }, host: "example.com", wantHeader: map[string][]string{ - "authorization": {"token GHETOKEN"}, - "user-agent": {"GitHub CLI v1.2.3"}, - "accept": {"application/vnd.github.merge-info-preview+json, application/vnd.github.nebula-preview"}, + "authorization": {"token GHETOKEN"}, + "user-agent": {"GitHub CLI v1.2.3"}, + "x-github-api-version": {"2022-11-28"}, + "accept": {"application/vnd.github.merge-info-preview+json, application/vnd.github.nebula-preview"}, }, wantStderr: "", }, @@ -68,9 +70,10 @@ func TestNewHTTPClient(t *testing.T) { }, host: "github.com", wantHeader: map[string][]string{ - "authorization": nil, // should not be set - "user-agent": {"GitHub CLI v1.2.3"}, - "accept": {"application/vnd.github.merge-info-preview+json, application/vnd.github.nebula-preview"}, + "authorization": nil, // should not be set + "user-agent": {"GitHub CLI v1.2.3"}, + "x-github-api-version": {"2022-11-28"}, + "accept": {"application/vnd.github.merge-info-preview+json, application/vnd.github.nebula-preview"}, }, wantStderr: "", }, @@ -83,9 +86,10 @@ func TestNewHTTPClient(t *testing.T) { }, host: "example.com", wantHeader: map[string][]string{ - "authorization": nil, // should not be set - "user-agent": {"GitHub CLI v1.2.3"}, - "accept": {"application/vnd.github.merge-info-preview+json, application/vnd.github.nebula-preview"}, + "authorization": nil, // should not be set + "user-agent": {"GitHub CLI v1.2.3"}, + "x-github-api-version": {"2022-11-28"}, + "accept": {"application/vnd.github.merge-info-preview+json, application/vnd.github.nebula-preview"}, }, wantStderr: "", }, @@ -98,9 +102,10 @@ func TestNewHTTPClient(t *testing.T) { }, host: "github.com", wantHeader: map[string][]string{ - "authorization": {"token MYTOKEN"}, - "user-agent": {"GitHub CLI v1.2.3"}, - "accept": {"application/vnd.github.merge-info-preview+json, application/vnd.github.nebula-preview"}, + "authorization": {"token MYTOKEN"}, + "user-agent": {"GitHub CLI v1.2.3"}, + "x-github-api-version": {"2022-11-28"}, + "accept": {"application/vnd.github.merge-info-preview+json, application/vnd.github.nebula-preview"}, }, wantStderr: heredoc.Doc(` * Request at