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;