From 24f9ec51d2aa26e06e692b9c92e262ad9bd66616 Mon Sep 17 00:00:00 2001 From: Kevin Zhao Date: Tue, 14 Apr 2026 04:45:52 +0800 Subject: [PATCH] fix: correct redirect count increment in fetchJson (#24896) Co-authored-by: Tommaso Sciortino --- packages/cli/src/config/extensions/github_fetch.test.ts | 2 ++ packages/cli/src/config/extensions/github_fetch.ts | 6 +++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/cli/src/config/extensions/github_fetch.test.ts b/packages/cli/src/config/extensions/github_fetch.test.ts index fe6edbedb2..c1eca8c9c7 100644 --- a/packages/cli/src/config/extensions/github_fetch.test.ts +++ b/packages/cli/src/config/extensions/github_fetch.test.ts @@ -62,6 +62,7 @@ describe('fetchJson', () => { const res = new EventEmitter() as IncomingMessage; res.statusCode = 302; res.headers = { location: 'https://example.com/final' }; + res.resume = vi.fn(); (callback as (res: IncomingMessage) => void)(res); res.emit('end'); return new EventEmitter() as ClientRequest; @@ -85,6 +86,7 @@ describe('fetchJson', () => { const res = new EventEmitter() as IncomingMessage; res.statusCode = 301; res.headers = { location: 'https://example.com/final-permanent' }; + res.resume = vi.fn(); (callback as (res: IncomingMessage) => void)(res); res.emit('end'); return new EventEmitter() as ClientRequest; diff --git a/packages/cli/src/config/extensions/github_fetch.ts b/packages/cli/src/config/extensions/github_fetch.ts index 33a9cb674f..7afd235605 100644 --- a/packages/cli/src/config/extensions/github_fetch.ts +++ b/packages/cli/src/config/extensions/github_fetch.ts @@ -31,7 +31,11 @@ export async function fetchJson( if (!res.headers.location) { return reject(new Error('No location header in redirect response')); } - fetchJson(res.headers.location, redirectCount++) + res.resume(); + fetchJson( + new URL(res.headers.location, url).toString(), + redirectCount + 1, + ) .then(resolve) .catch(reject); return;