skir 1.2.15 → 1.2.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -57,7 +57,7 @@ export async function downloadPackage(packageId, version, githubToken) {
|
|
|
57
57
|
},
|
|
58
58
|
};
|
|
59
59
|
}
|
|
60
|
-
async function fetchWithRetry(url, headers, maxRetries =
|
|
60
|
+
async function fetchWithRetry(url, headers, maxRetries = 8) {
|
|
61
61
|
let lastResponse;
|
|
62
62
|
for (let attempt = 0; attempt <= maxRetries; attempt++) {
|
|
63
63
|
const response = await fetch(url, { headers });
|
|
@@ -68,11 +68,24 @@ async function fetchWithRetry(url, headers, maxRetries = 3) {
|
|
|
68
68
|
if (attempt === maxRetries) {
|
|
69
69
|
break;
|
|
70
70
|
}
|
|
71
|
+
// Primary rate limit is fully exhausted: X-RateLimit-Remaining is 0 and a
|
|
72
|
+
// future reset time is known. Retrying within the cap won't help since the
|
|
73
|
+
// window won't reset for potentially hours. Fail fast with a clear error.
|
|
74
|
+
if (isPrimaryRateLimitExhausted(response)) {
|
|
75
|
+
break;
|
|
76
|
+
}
|
|
71
77
|
const waitMs = getRetryWaitMs(response, attempt);
|
|
72
78
|
await new Promise((resolve) => setTimeout(resolve, waitMs));
|
|
73
79
|
}
|
|
74
80
|
return lastResponse;
|
|
75
81
|
}
|
|
82
|
+
function isPrimaryRateLimitExhausted(response) {
|
|
83
|
+
const remaining = parseHeaderInt(response.headers.get("X-RateLimit-Remaining"));
|
|
84
|
+
const resetEpochSeconds = parseHeaderInt(response.headers.get("X-RateLimit-Reset"));
|
|
85
|
+
return (remaining === 0 &&
|
|
86
|
+
resetEpochSeconds !== undefined &&
|
|
87
|
+
resetEpochSeconds > Date.now() / 1000);
|
|
88
|
+
}
|
|
76
89
|
function getRetryWaitMs(response, attempt) {
|
|
77
90
|
const retryAfterSeconds = parseHeaderInt(response.headers.get("Retry-After"));
|
|
78
91
|
if (retryAfterSeconds !== undefined && retryAfterSeconds > 0) {
|
|
@@ -139,7 +152,7 @@ async function getGithubTree(repo, version, githubToken) {
|
|
|
139
152
|
}
|
|
140
153
|
}
|
|
141
154
|
else {
|
|
142
|
-
throw
|
|
155
|
+
throw await buildGithubApiError(response, githubToken);
|
|
143
156
|
}
|
|
144
157
|
}
|
|
145
158
|
const githubTree = (await response.json());
|
|
@@ -152,7 +165,7 @@ async function downloadFileContent(repo, sha, githubToken) {
|
|
|
152
165
|
const url = `https://api.github.com/repos/${repo}/git/blobs/${sha}`;
|
|
153
166
|
const response = await fetchWithRetry(url, makeHeaders(githubToken));
|
|
154
167
|
if (!response.ok) {
|
|
155
|
-
throw
|
|
168
|
+
throw await buildGithubApiError(response, githubToken);
|
|
156
169
|
}
|
|
157
170
|
const data = (await response.json());
|
|
158
171
|
// Github API returns base64 encoded content
|
|
@@ -253,4 +266,57 @@ function makeHeaders(githubToken) {
|
|
|
253
266
|
return headers;
|
|
254
267
|
}
|
|
255
268
|
const MAX_RETRY_WAIT_MS = 60 * 1000;
|
|
269
|
+
async function buildGithubApiError(response, githubToken) {
|
|
270
|
+
const statusPrefix = `Github API request failed: ${response.status} ${response.statusText}`;
|
|
271
|
+
const githubMessage = await readGithubErrorMessage(response);
|
|
272
|
+
if (response.status === 401) {
|
|
273
|
+
return new Error(`${statusPrefix} (invalid or expired Github token).${formatGithubMessageSuffix(githubMessage)}`);
|
|
274
|
+
}
|
|
275
|
+
if (response.status === 403 || response.status === 429) {
|
|
276
|
+
const remaining = parseHeaderInt(response.headers.get("X-RateLimit-Remaining"));
|
|
277
|
+
const resetEpochSeconds = parseHeaderInt(response.headers.get("X-RateLimit-Reset"));
|
|
278
|
+
const resetIso = resetEpochSeconds !== undefined
|
|
279
|
+
? new Date(resetEpochSeconds * 1000).toISOString()
|
|
280
|
+
: undefined;
|
|
281
|
+
const missingTokenHint = githubToken
|
|
282
|
+
? ""
|
|
283
|
+
: " No Github token configured; CI jobs without GITHUB_TOKEN are limited to a much lower unauthenticated quota.";
|
|
284
|
+
const resetHint = remaining === 0 && resetIso ? ` Rate limit resets at ${resetIso}.` : "";
|
|
285
|
+
const secondaryRateLimitHint = remaining !== 0
|
|
286
|
+
? " This may be a Github secondary rate limit; reduce parallel requests or add jitter between requests."
|
|
287
|
+
: "";
|
|
288
|
+
return new Error(`${statusPrefix} (Github rate limit exceeded).${missingTokenHint}${resetHint}${secondaryRateLimitHint}${formatGithubMessageSuffix(githubMessage)}`);
|
|
289
|
+
}
|
|
290
|
+
return new Error(`${statusPrefix}${formatGithubMessageSuffix(githubMessage)}`);
|
|
291
|
+
}
|
|
292
|
+
async function readGithubErrorMessage(response) {
|
|
293
|
+
let bodyText;
|
|
294
|
+
try {
|
|
295
|
+
bodyText = await response.text();
|
|
296
|
+
}
|
|
297
|
+
catch {
|
|
298
|
+
return undefined;
|
|
299
|
+
}
|
|
300
|
+
const trimmed = bodyText.trim();
|
|
301
|
+
if (trimmed.length === 0) {
|
|
302
|
+
return undefined;
|
|
303
|
+
}
|
|
304
|
+
try {
|
|
305
|
+
const parsed = JSON.parse(trimmed);
|
|
306
|
+
if (typeof parsed.message === "string" &&
|
|
307
|
+
parsed.message.trim().length > 0) {
|
|
308
|
+
return parsed.message.trim();
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
catch {
|
|
312
|
+
// Fall through to plain text message when the body is not JSON.
|
|
313
|
+
}
|
|
314
|
+
return trimmed;
|
|
315
|
+
}
|
|
316
|
+
function formatGithubMessageSuffix(message) {
|
|
317
|
+
if (!message) {
|
|
318
|
+
return "";
|
|
319
|
+
}
|
|
320
|
+
return ` Github response: ${message}`;
|
|
321
|
+
}
|
|
256
322
|
//# sourceMappingURL=package_downloader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package_downloader.js","sourceRoot":"","sources":["../src/package_downloader.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"package_downloader.js","sourceRoot":"","sources":["../src/package_downloader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,aAAa,EAAmB,MAAM,MAAM,CAAC;AACnE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAO5D,uCAAuC;AACvC,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,SAAiB,EACjB,OAAe,EACf,WAA+B;IAE/B,8DAA8D;IAC9D,MAAM,IAAI,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAEpC,mDAAmD;IACnD,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IACnE,IAAI,UAAU,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAChC,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;IAE7B,iDAAiD;IACjD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAChC,CAAC,IAAI,EAAE,EAAE,CACP,IAAI,CAAC,IAAI,KAAK,MAAM;QACpB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;QACjC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAC9B,CAAC;IAEF,2EAA2E;IAC3E,MAAM,OAAO,GAAqC,EAAE,CAAC;IACrD,MAAM,eAAe,GAAG,MAAM,kBAAkB,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACzE,MAAM,OAAO,GAAG,MAAM,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QACvE,mCAAmC;QACnC,MAAM,UAAU,GAAG,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACtE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;IACjC,CAAC,CAAC,CAAC;IACH,KAAK,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,eAAe,EAAE,CAAC;QACtD,OAAO,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC;IAChC,CAAC;IAED,+CAA+C;IAC/C,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAChC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,CAC3D,CAAC;IAEF,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO;YACL,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,WAAW,SAAS,IAAI,OAAO,kDAAkD;SAC3F,CAAC;IACJ,CAAC;IAED,MAAM,cAAc,GAAG,MAAM,mBAAmB,CAC9C,IAAI,EACJ,WAAW,CAAC,GAAG,EACf,WAAW,CACZ,CAAC;IACF,MAAM,YAAY,GAAG,uBAAuB,CAAC,cAAc,CAAC,CAAC;IAC7D,IAAI,YAAY,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnC,OAAO;YACL,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,YAAY,CAAC,MAAM;iBACzB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACT,qBAAqB,CAAC,CAAC,EAAE;gBACvB,cAAc,EAAE,GAAG,SAAS,WAAW;aACxC,CAAC,CACH;iBACA,IAAI,CAAC,IAAI,CAAC;SACd,CAAC;IACJ,CAAC;IACD,MAAM,YAAY,GAAG,YAAY,CAAC,YAAY,IAAI,EAAE,CAAC;IACrD,OAAO;QACL,IAAI,EAAE,SAAS;QACf,OAAO,EAAE;YACP,SAAS;YACT,OAAO;YACP,OAAO;YACP,YAAY;SACb;KACF,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,cAAc,CAC3B,GAAW,EACX,OAA+B,EAC/B,UAAU,GAAG,CAAC;IAEd,IAAI,YAAkC,CAAC;IACvC,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC;QACvD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;QAC/C,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YACvD,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,YAAY,GAAG,QAAQ,CAAC;QACxB,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;YAC3B,MAAM;QACR,CAAC;QACD,0EAA0E;QAC1E,2EAA2E;QAC3E,0EAA0E;QAC1E,IAAI,2BAA2B,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1C,MAAM;QACR,CAAC;QACD,MAAM,MAAM,GAAG,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACjD,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;IAC9D,CAAC;IACD,OAAO,YAAa,CAAC;AACvB,CAAC;AAED,SAAS,2BAA2B,CAAC,QAAkB;IACrD,MAAM,SAAS,GAAG,cAAc,CAC9B,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAC9C,CAAC;IACF,MAAM,iBAAiB,GAAG,cAAc,CACtC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAC1C,CAAC;IACF,OAAO,CACL,SAAS,KAAK,CAAC;QACf,iBAAiB,KAAK,SAAS;QAC/B,iBAAiB,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CACtC,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,QAAkB,EAAE,OAAe;IACzD,MAAM,iBAAiB,GAAG,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;IAC9E,IAAI,iBAAiB,KAAK,SAAS,IAAI,iBAAiB,GAAG,CAAC,EAAE,CAAC;QAC7D,OAAO,IAAI,CAAC,GAAG,CAAC,iBAAiB,GAAG,IAAI,EAAE,iBAAiB,CAAC,CAAC;IAC/D,CAAC;IAED,MAAM,SAAS,GAAG,cAAc,CAC9B,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAC9C,CAAC;IACF,MAAM,iBAAiB,GAAG,cAAc,CACtC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAC1C,CAAC;IACF,IACE,SAAS,KAAK,CAAC;QACf,iBAAiB,KAAK,SAAS;QAC/B,iBAAiB,GAAG,CAAC,EACrB,CAAC;QACD,MAAM,gBAAgB,GAAG,iBAAiB,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC/D,MAAM,QAAQ,GAAG,GAAG,CAAC;QACrB,OAAO,IAAI,CAAC,GAAG,CACb,IAAI,CAAC,GAAG,CAAC,gBAAgB,GAAG,QAAQ,EAAE,IAAI,CAAC,EAC3C,iBAAiB,CAClB,CAAC;IACJ,CAAC;IAED,gFAAgF;IAChF,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,OAAO,EAAE,KAAM,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,cAAc,CAAC,KAAoB;IAC1C,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACnC,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;AACtD,CAAC;AAED,KAAK,UAAU,kBAAkB,CAC/B,KAAmB,EACnB,EAA0C;IAE1C,MAAM,OAAO,GAAQ,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC7C,IAAI,SAAS,GAAG,CAAC,CAAC;IAElB,MAAM,MAAM,GAAG,KAAK,IAAmB,EAAE;QACvC,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,OAAO,GAAG,SAAS,CAAC;YAC1B,IAAI,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBAC5B,OAAO;YACT,CAAC;YACD,SAAS,IAAI,CAAC,CAAC;YACf,OAAO,CAAC,OAAO,CAAC,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,CAAE,EAAE,OAAO,CAAC,CAAC;QACxD,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,cAAc,GAAG,CAAC,CAAC;IACzB,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IACvE,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACtE,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,KAAK,UAAU,aAAa,CAC1B,IAAY,EACZ,OAAe,EACf,WAAoB;IAEpB,MAAM,GAAG,GAAG,gCAAgC,IAAI,cAAc,OAAO,cAAc,CAAC;IACpF,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,GAAG,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC;IAErE,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC5B,6DAA6D;YAC7D,MAAM,YAAY,GAAG,gCAAgC,IAAI,EAAE,CAAC;YAC5D,MAAM,YAAY,GAAG,MAAM,cAAc,CACvC,YAAY,EACZ,WAAW,CAAC,WAAW,CAAC,CACzB,CAAC;YAEF,IAAI,YAAY,CAAC,EAAE,EAAE,CAAC;gBACpB,qCAAqC;gBACrC,OAAO;oBACL,IAAI,EAAE,OAAO;oBACb,OAAO,EAAE,yCAAyC,IAAI,iBAAiB,OAAO,EAAE;iBACjF,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,qBAAqB;gBACrB,OAAO;oBACL,IAAI,EAAE,OAAO;oBACb,OAAO,EAAE,4CAA4C,IAAI,EAAE;iBAC5D,CAAC;YACJ,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,mBAAmB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IAED,MAAM,UAAU,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAe,CAAC;IACzD,OAAO;QACL,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,UAAU;KACjB,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,mBAAmB,CAChC,IAAY,EACZ,GAAW,EACX,WAAoB;IAEpB,MAAM,GAAG,GAAG,gCAAgC,IAAI,cAAc,GAAG,EAAE,CAAC;IACpE,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,GAAG,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC;IAErE,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,MAAM,mBAAmB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IACzD,CAAC;IAED,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAGlC,CAAC;IAEF,4CAA4C;IAC5C,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC/B,OAAO,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC;IAED,OAAO,IAAI,CAAC,OAAO,CAAC;AACtB,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAc;IACtC,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;IAChC,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IACpE,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACzC,CAAC;AAaD,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;AACzE,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;AAEzD,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CACvD,CAAC,CAAC;AAEH,SAAS,uBAAuB,CAAC,QAAgB;IAI/C,MAAM,MAAM,GAA8B,EAAE,CAAC;IAE7C,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;IACtC,MAAM,GAAG,GAAG,aAAa,CAAC,QAAQ,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;IAErD,MAAM,WAAW,GAAG,CAAC,MAAc,EAA8B,EAAE;QACjE,MAAM,GAAG,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACxC,OAAO;YACL,MAAM;YACN,UAAU,EAAE,GAAG,CAAC,IAAI;YACpB,SAAS,EAAE,GAAG,CAAC,GAAG;SACnB,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,kBAAkB,GAAG,CACzB,KAAa,EACb,GAAW,EACmB,EAAE,CAAC,CAAC;QAClC,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC;QACzB,GAAG,EAAE,WAAW,CAAC,GAAG,CAAC;KACtB,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,CAClB,IAA4B,EACc,EAAE;QAC5C,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAiC,CAAC;QACnE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;YACjB,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1D,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG,CACtB,YAAoC,EACpC,OAAe,EACT,EAAE;QACR,IAAI,IAAI,GAAG,YAAY,CAAC;QACxB,MAAM,aAAa,GAAkB,EAAE,CAAC;QACxC,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;YAChC,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM;YACR,CAAC;YACD,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC;YACjC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC3B,CAAC;QACD,aAAa,CAAC,OAAO,EAAE,CAAC;QACxB,MAAM,gBAAgB,GAAG,aAAa;aACnC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CACnB,OAAO,IAAI,KAAK,QAAQ;YACtB,CAAC,CAAC,IAAI,IAAI,GAAG;YACb,CAAC,CAAC,KAAK,KAAK,CAAC;gBACX,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,CACzB;aACA,IAAI,CAAC,EAAE,CAAC,CAAC;QACZ,MAAM,aAAa,GAAG,aAAa,CAAC,MAAM;YACxC,CAAC,CAAC,qBAAqB,gBAAgB,KAAK;YAC5C,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,CAAC,IAAI,CAAC;YACV,OAAO,EAAE,aAAa,GAAG,OAAO;YAChC,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC;SACzB,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YAC/B,MAAM,CAAC,IAAI,CAAC;gBACV,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,KAAK,EAAE,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;aACtD,CAAC,CAAC;QACL,CAAC;QACD,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;IAC7C,CAAC;IAED,MAAM,MAAM,GAAG,sBAAsB,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IAC5D,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YACxC,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAC7C,CAAC;QACD,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;IAC7C,CAAC;IAED,OAAO;QACL,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY;QACtC,MAAM;KACP,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,WAAoB;IACvC,MAAM,OAAO,GAA2B;QACtC,MAAM,EAAE,gCAAgC;KACzC,CAAC;IAEF,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,CAAC,aAAa,GAAG,SAAS,WAAW,EAAE,CAAC;IACjD,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAyBD,MAAM,iBAAiB,GAAG,EAAE,GAAG,IAAI,CAAC;AAEpC,KAAK,UAAU,mBAAmB,CAChC,QAAkB,EAClB,WAAoB;IAEpB,MAAM,YAAY,GAAG,8BAA8B,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;IAC5F,MAAM,aAAa,GAAG,MAAM,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IAE7D,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QAC5B,OAAO,IAAI,KAAK,CACd,GAAG,YAAY,sCAAsC,yBAAyB,CAAC,aAAa,CAAC,EAAE,CAChG,CAAC;IACJ,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QACvD,MAAM,SAAS,GAAG,cAAc,CAC9B,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAC9C,CAAC;QACF,MAAM,iBAAiB,GAAG,cAAc,CACtC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAC1C,CAAC;QACF,MAAM,QAAQ,GACZ,iBAAiB,KAAK,SAAS;YAC7B,CAAC,CAAC,IAAI,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE;YAClD,CAAC,CAAC,SAAS,CAAC;QAEhB,MAAM,gBAAgB,GAAG,WAAW;YAClC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,8GAA8G,CAAC;QAEnH,MAAM,SAAS,GACb,SAAS,KAAK,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,yBAAyB,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAE1E,MAAM,sBAAsB,GAC1B,SAAS,KAAK,CAAC;YACb,CAAC,CAAC,sGAAsG;YACxG,CAAC,CAAC,EAAE,CAAC;QAET,OAAO,IAAI,KAAK,CACd,GAAG,YAAY,iCAAiC,gBAAgB,GAAG,SAAS,GAAG,sBAAsB,GAAG,yBAAyB,CAAC,aAAa,CAAC,EAAE,CACnJ,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,KAAK,CACd,GAAG,YAAY,GAAG,yBAAyB,CAAC,aAAa,CAAC,EAAE,CAC7D,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,sBAAsB,CACnC,QAAkB;IAElB,IAAI,QAAgB,CAAC;IACrB,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;IAChC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAA0B,CAAC;QAC5D,IACE,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ;YAClC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAChC,CAAC;YACD,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAC/B,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,gEAAgE;IAClE,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,yBAAyB,CAAC,OAA2B;IAC5D,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,qBAAqB,OAAO,EAAE,CAAC;AACxC,CAAC"}
|
package/package.json
CHANGED
|
@@ -93,7 +93,7 @@ export async function downloadPackage(
|
|
|
93
93
|
async function fetchWithRetry(
|
|
94
94
|
url: string,
|
|
95
95
|
headers: Record<string, string>,
|
|
96
|
-
maxRetries =
|
|
96
|
+
maxRetries = 8,
|
|
97
97
|
): Promise<Response> {
|
|
98
98
|
let lastResponse: Response | undefined;
|
|
99
99
|
for (let attempt = 0; attempt <= maxRetries; attempt++) {
|
|
@@ -105,12 +105,32 @@ async function fetchWithRetry(
|
|
|
105
105
|
if (attempt === maxRetries) {
|
|
106
106
|
break;
|
|
107
107
|
}
|
|
108
|
+
// Primary rate limit is fully exhausted: X-RateLimit-Remaining is 0 and a
|
|
109
|
+
// future reset time is known. Retrying within the cap won't help since the
|
|
110
|
+
// window won't reset for potentially hours. Fail fast with a clear error.
|
|
111
|
+
if (isPrimaryRateLimitExhausted(response)) {
|
|
112
|
+
break;
|
|
113
|
+
}
|
|
108
114
|
const waitMs = getRetryWaitMs(response, attempt);
|
|
109
115
|
await new Promise((resolve) => setTimeout(resolve, waitMs));
|
|
110
116
|
}
|
|
111
117
|
return lastResponse!;
|
|
112
118
|
}
|
|
113
119
|
|
|
120
|
+
function isPrimaryRateLimitExhausted(response: Response): boolean {
|
|
121
|
+
const remaining = parseHeaderInt(
|
|
122
|
+
response.headers.get("X-RateLimit-Remaining"),
|
|
123
|
+
);
|
|
124
|
+
const resetEpochSeconds = parseHeaderInt(
|
|
125
|
+
response.headers.get("X-RateLimit-Reset"),
|
|
126
|
+
);
|
|
127
|
+
return (
|
|
128
|
+
remaining === 0 &&
|
|
129
|
+
resetEpochSeconds !== undefined &&
|
|
130
|
+
resetEpochSeconds > Date.now() / 1000
|
|
131
|
+
);
|
|
132
|
+
}
|
|
133
|
+
|
|
114
134
|
function getRetryWaitMs(response: Response, attempt: number): number {
|
|
115
135
|
const retryAfterSeconds = parseHeaderInt(response.headers.get("Retry-After"));
|
|
116
136
|
if (retryAfterSeconds !== undefined && retryAfterSeconds > 0) {
|
|
@@ -203,9 +223,7 @@ async function getGithubTree(
|
|
|
203
223
|
};
|
|
204
224
|
}
|
|
205
225
|
} else {
|
|
206
|
-
throw
|
|
207
|
-
`Github API request failed: ${response.status} ${response.statusText}`,
|
|
208
|
-
);
|
|
226
|
+
throw await buildGithubApiError(response, githubToken);
|
|
209
227
|
}
|
|
210
228
|
}
|
|
211
229
|
|
|
@@ -225,9 +243,7 @@ async function downloadFileContent(
|
|
|
225
243
|
const response = await fetchWithRetry(url, makeHeaders(githubToken));
|
|
226
244
|
|
|
227
245
|
if (!response.ok) {
|
|
228
|
-
throw
|
|
229
|
-
`Failed to download file: ${response.status} ${response.statusText}`,
|
|
230
|
-
);
|
|
246
|
+
throw await buildGithubApiError(response, githubToken);
|
|
231
247
|
}
|
|
232
248
|
|
|
233
249
|
const data = (await response.json()) as {
|
|
@@ -397,3 +413,87 @@ type GithubTreeResult =
|
|
|
397
413
|
| DependencyError;
|
|
398
414
|
|
|
399
415
|
const MAX_RETRY_WAIT_MS = 60 * 1000;
|
|
416
|
+
|
|
417
|
+
async function buildGithubApiError(
|
|
418
|
+
response: Response,
|
|
419
|
+
githubToken?: string,
|
|
420
|
+
): Promise<Error> {
|
|
421
|
+
const statusPrefix = `Github API request failed: ${response.status} ${response.statusText}`;
|
|
422
|
+
const githubMessage = await readGithubErrorMessage(response);
|
|
423
|
+
|
|
424
|
+
if (response.status === 401) {
|
|
425
|
+
return new Error(
|
|
426
|
+
`${statusPrefix} (invalid or expired Github token).${formatGithubMessageSuffix(githubMessage)}`,
|
|
427
|
+
);
|
|
428
|
+
}
|
|
429
|
+
|
|
430
|
+
if (response.status === 403 || response.status === 429) {
|
|
431
|
+
const remaining = parseHeaderInt(
|
|
432
|
+
response.headers.get("X-RateLimit-Remaining"),
|
|
433
|
+
);
|
|
434
|
+
const resetEpochSeconds = parseHeaderInt(
|
|
435
|
+
response.headers.get("X-RateLimit-Reset"),
|
|
436
|
+
);
|
|
437
|
+
const resetIso =
|
|
438
|
+
resetEpochSeconds !== undefined
|
|
439
|
+
? new Date(resetEpochSeconds * 1000).toISOString()
|
|
440
|
+
: undefined;
|
|
441
|
+
|
|
442
|
+
const missingTokenHint = githubToken
|
|
443
|
+
? ""
|
|
444
|
+
: " No Github token configured; CI jobs without GITHUB_TOKEN are limited to a much lower unauthenticated quota.";
|
|
445
|
+
|
|
446
|
+
const resetHint =
|
|
447
|
+
remaining === 0 && resetIso ? ` Rate limit resets at ${resetIso}.` : "";
|
|
448
|
+
|
|
449
|
+
const secondaryRateLimitHint =
|
|
450
|
+
remaining !== 0
|
|
451
|
+
? " This may be a Github secondary rate limit; reduce parallel requests or add jitter between requests."
|
|
452
|
+
: "";
|
|
453
|
+
|
|
454
|
+
return new Error(
|
|
455
|
+
`${statusPrefix} (Github rate limit exceeded).${missingTokenHint}${resetHint}${secondaryRateLimitHint}${formatGithubMessageSuffix(githubMessage)}`,
|
|
456
|
+
);
|
|
457
|
+
}
|
|
458
|
+
|
|
459
|
+
return new Error(
|
|
460
|
+
`${statusPrefix}${formatGithubMessageSuffix(githubMessage)}`,
|
|
461
|
+
);
|
|
462
|
+
}
|
|
463
|
+
|
|
464
|
+
async function readGithubErrorMessage(
|
|
465
|
+
response: Response,
|
|
466
|
+
): Promise<string | undefined> {
|
|
467
|
+
let bodyText: string;
|
|
468
|
+
try {
|
|
469
|
+
bodyText = await response.text();
|
|
470
|
+
} catch {
|
|
471
|
+
return undefined;
|
|
472
|
+
}
|
|
473
|
+
|
|
474
|
+
const trimmed = bodyText.trim();
|
|
475
|
+
if (trimmed.length === 0) {
|
|
476
|
+
return undefined;
|
|
477
|
+
}
|
|
478
|
+
|
|
479
|
+
try {
|
|
480
|
+
const parsed = JSON.parse(trimmed) as { message?: unknown };
|
|
481
|
+
if (
|
|
482
|
+
typeof parsed.message === "string" &&
|
|
483
|
+
parsed.message.trim().length > 0
|
|
484
|
+
) {
|
|
485
|
+
return parsed.message.trim();
|
|
486
|
+
}
|
|
487
|
+
} catch {
|
|
488
|
+
// Fall through to plain text message when the body is not JSON.
|
|
489
|
+
}
|
|
490
|
+
|
|
491
|
+
return trimmed;
|
|
492
|
+
}
|
|
493
|
+
|
|
494
|
+
function formatGithubMessageSuffix(message: string | undefined): string {
|
|
495
|
+
if (!message) {
|
|
496
|
+
return "";
|
|
497
|
+
}
|
|
498
|
+
return ` Github response: ${message}`;
|
|
499
|
+
}
|