From 166db75d365d6685e8c165d620a1b59fd5652a1b Mon Sep 17 00:00:00 2001 From: William Martin Date: Fri, 13 Feb 2026 19:42:44 +0100 Subject: [PATCH] pin REST API version to 2022-11-28 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- api/client.go | 3 +++ api/client_test.go | 9 ++++--- api/http_client.go | 3 ++- api/http_client_test.go | 46 +++++++++++++++++++-------------- pkg/cmd/factory/default_test.go | 1 + 5 files changed, 38 insertions(+), 24 deletions(-) diff --git a/api/client.go b/api/client.go index e6ff59c59..207fd86d3 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 1701a17a9..f988e090c 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 ab7d49063..9957f6bc5 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 9a915837f..824bc0f1b 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