From 34d976eeea09e396334ce8fce5c492c07e7dd32b Mon Sep 17 00:00:00 2001 From: Thomas Camlong Date: Sat, 27 Jun 2026 11:01:12 +0200 Subject: [PATCH] fix: apply version filter to LinuxServer.io provider LSIO was bypassing versionRegex unlike all other providers. --- packages/request-handler/src/release-providers.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/request-handler/src/release-providers.ts b/packages/request-handler/src/release-providers.ts index 4a6931024..33382177b 100644 --- a/packages/request-handler/src/release-providers.ts +++ b/packages/request-handler/src/release-providers.ts @@ -85,7 +85,7 @@ export const getLatestMatchingReleaseAsync = async (input: ReleasesRepositoryReq case "codeberg": return await getCodebergReleaseAsync(baseUrl, identifier, input.versionRegex, input.token); case "linuxServerIO": - return await getLinuxServerIOReleaseAsync(baseUrl, identifier); + return await getLinuxServerIOReleaseAsync(baseUrl, identifier, input.versionRegex); case "quay": return await getQuayReleaseAsync(baseUrl, identifier, input.versionRegex); } @@ -666,7 +666,7 @@ const linuxServerIOReleasesSchema = z.object({ }), }); -const getLinuxServerIOReleaseAsync = async (baseUrl: string, identifier: string): Promise => { +const getLinuxServerIOReleaseAsync = async (baseUrl: string, identifier: string, versionRegex?: string): Promise => { const parsed = parseOwnerName(identifier); if (!parsed) return { success: false, error: { code: "invalidIdentifier", message: `Cannot parse "${identifier}" as owner/name` } }; @@ -679,6 +679,10 @@ const getLinuxServerIOReleaseAsync = async (baseUrl: string, identifier: string) const release = result.data.data.repositories.linuxserver.find((repo) => repo.name === parsed.name); if (!release) return { success: false, error: { code: "noReleasesFound", message: `Image "${parsed.name}" not found in LinuxServer.io registry` } }; + if (versionRegex && !new RegExp(versionRegex).test(release.version)) { + return { success: false, error: { code: "noMatchingVersion", message: `Regex /${versionRegex}/ does not match LSIO version "${release.version}"` } }; + } + return { success: true, data: {