Skip to content

Commit 24f9ec5

Browse files
KevinZhaoscidomino
andauthored
fix: correct redirect count increment in fetchJson (#24896)
Co-authored-by: Tommaso Sciortino <sciortino@gmail.com>
1 parent 050c303 commit 24f9ec5

2 files changed

Lines changed: 7 additions & 1 deletion

File tree

packages/cli/src/config/extensions/github_fetch.test.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ describe('fetchJson', () => {
6262
const res = new EventEmitter() as IncomingMessage;
6363
res.statusCode = 302;
6464
res.headers = { location: 'https://example.com/final' };
65+
res.resume = vi.fn();
6566
(callback as (res: IncomingMessage) => void)(res);
6667
res.emit('end');
6768
return new EventEmitter() as ClientRequest;
@@ -85,6 +86,7 @@ describe('fetchJson', () => {
8586
const res = new EventEmitter() as IncomingMessage;
8687
res.statusCode = 301;
8788
res.headers = { location: 'https://example.com/final-permanent' };
89+
res.resume = vi.fn();
8890
(callback as (res: IncomingMessage) => void)(res);
8991
res.emit('end');
9092
return new EventEmitter() as ClientRequest;

packages/cli/src/config/extensions/github_fetch.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,11 @@ export async function fetchJson<T>(
3131
if (!res.headers.location) {
3232
return reject(new Error('No location header in redirect response'));
3333
}
34-
fetchJson<T>(res.headers.location, redirectCount++)
34+
res.resume();
35+
fetchJson<T>(
36+
new URL(res.headers.location, url).toString(),
37+
redirectCount + 1,
38+
)
3539
.then(resolve)
3640
.catch(reject);
3741
return;

0 commit comments

Comments
 (0)