From 3b53614f9b66ffc024eded162efa0cde2b37e630 Mon Sep 17 00:00:00 2001 From: Zoupers Date: Tue, 20 May 2025 08:35:05 +0800 Subject: [PATCH] feat: new option server-url to support custom github url Signed-off-by: Zoupers --- action.yml | 4 ++++ src/download/download-version.ts | 4 ++-- src/setup-uv.ts | 4 ++-- src/utils/inputs.ts | 11 ++++------- 4 files changed, 12 insertions(+), 11 deletions(-) diff --git a/action.yml b/action.yml index 6882851..165ca44 100644 --- a/action.yml +++ b/action.yml @@ -18,6 +18,10 @@ inputs: checksum: description: "The checksum of the uv version to install" required: false + server-url: + description: "The server url to use when downloading uv" + required: false + default: "https://github.com" github-token: description: "Used to increase the rate limit when retrieving versions and downloading uv." diff --git a/src/download/download-version.ts b/src/download/download-version.ts index cf3c5ae..894560f 100644 --- a/src/download/download-version.ts +++ b/src/download/download-version.ts @@ -24,7 +24,7 @@ export function tryGetFromToolCache( } export async function downloadVersion( - githubUrl: string, + serverUrl: string, platform: Platform, arch: Architecture, version: string, @@ -37,7 +37,7 @@ export async function downloadVersion( if (platform === "pc-windows-msvc") { extension = ".zip"; } - const downloadUrl = `${githubUrl}/${OWNER}/${REPO}/releases/download/${resolvedVersion}/${artifact}${extension}`; + const downloadUrl = `${serverUrl}/${OWNER}/${REPO}/releases/download/${resolvedVersion}/${artifact}${extension}`; core.info(`Downloading uv from "${downloadUrl}" ...`); const downloadPath = await tc.downloadTool( diff --git a/src/setup-uv.ts b/src/setup-uv.ts index 93a4c79..8fac7cb 100644 --- a/src/setup-uv.ts +++ b/src/setup-uv.ts @@ -25,7 +25,7 @@ import { toolDir, version as versionInput, workingDirectory, - githubUrl, + serverUrl, } from "./utils/inputs"; import * as exec from "@actions/exec"; import fs from "node:fs"; @@ -96,7 +96,7 @@ async function setupUv( } const downloadVersionResult = await downloadVersion( - githubUrl, + serverUrl, platform, arch, resolvedVersion, diff --git a/src/utils/inputs.ts b/src/utils/inputs.ts index 44d8ed8..7851003 100644 --- a/src/utils/inputs.ts +++ b/src/utils/inputs.ts @@ -17,7 +17,7 @@ export const ignoreEmptyWorkdir = core.getInput("ignore-empty-workdir") === "true"; export const toolBinDir = getToolBinDir(); export const toolDir = getToolDir(); -export const githubUrl = getGithubUrl(); +export const serverUrl = getServerUrl(); export const githubToken = core.getInput("github-token"); function getEnableCache(): boolean { @@ -86,13 +86,10 @@ function expandTilde(input: string): string { return input; } -function getGithubUrl(): string { - let url = "https://github.com"; - if(process.env.GITHUB_URL) { - url = process.env.GITHUB_URL; - } +function getServerUrl(): string { + const url = core.getInput("server-url"); if(url.endsWith("/")) { - url = url.replaceAll(/\/+$/g, "") + return url.replaceAll(/\/+$/g, "") } return url; } \ No newline at end of file