Add option to skip Astral mirror downloads (#387)

## Summary
- add `download-from-astral-mirror` input defaulting to `true`
- skip mirror URL rewriting and download directly from GitHub Releases
when disabled
- document the input and add unit coverage

Fixes #384

Refs: pi-session 019f31bc-bd1c-7276-9b4e-9734fa0aa367

## Testing
- npm run build
- npm run check
- npm run test:unit
This commit is contained in:
Kevin Stillhammer
2026-07-05 10:17:44 +00:00
committed by GitHub
parent c35f46c92b
commit 278981a28c
7 changed files with 103 additions and 12 deletions
+10 -1
View File
@@ -35,6 +35,7 @@ export async function downloadVersion(
checksum: string | undefined,
githubToken: string,
manifestUrl?: string,
downloadFromAstralMirror = true,
): Promise<{ version: string; cachedToolDir: string }> {
const artifact = await getArtifact(version, arch, platform, manifestUrl);
@@ -57,6 +58,7 @@ export async function downloadVersion(
arch,
version,
getDownloadToken(artifact.downloadUrl, githubToken),
downloadFromAstralMirror,
);
await validateChecksum(
resolvedChecksum,
@@ -83,6 +85,10 @@ export async function downloadVersion(
return { cachedToolDir, version };
}
/**
* Rewrite a GitHub Releases URL to the Astral mirror.
* Returns `undefined` if the URL does not match the expected GitHub prefix.
*/
export function rewriteToMirror(url: string): string | undefined {
if (!url.startsWith(GITHUB_RELEASES_PREFIX)) {
return undefined;
@@ -97,8 +103,11 @@ async function downloadArtifact(
arch: Architecture,
version: string,
githubToken: string | undefined,
downloadFromAstralMirror: boolean,
): Promise<string> {
const mirrorUrl = rewriteToMirror(downloadUrl);
const mirrorUrl = downloadFromAstralMirror
? rewriteToMirror(downloadUrl)
: undefined;
const resolvedDownloadUrl = mirrorUrl ?? downloadUrl;
try {