diff --git a/docs/dev-tools/backends/github.md b/docs/dev-tools/backends/github.md index 82f5625a29..8a5859f1ab 100644 --- a/docs/dev-tools/backends/github.md +++ b/docs/dev-tools/backends/github.md @@ -62,7 +62,7 @@ Specifies a custom version prefix for release tags. By default, mise handles the When `version_prefix` is configured, mise will: -- Strip the prefix when listing available versions +- Filter available versions with the prefix and strip it - Add the prefix when searching for releases - Try both prefixed and non-prefixed versions during installation diff --git a/docs/dev-tools/backends/gitlab.md b/docs/dev-tools/backends/gitlab.md index aba8cdff03..adb8e6276a 100644 --- a/docs/dev-tools/backends/gitlab.md +++ b/docs/dev-tools/backends/gitlab.md @@ -63,7 +63,7 @@ Specifies a custom version prefix for release tags. By default, mise handles the When `version_prefix` is configured, mise will: -- Strip the prefix when listing available versions +- Filter available versions with the prefix and strip it - Add the prefix when searching for releases - Try both prefixed and non-prefixed versions during installation diff --git a/src/backend/github.rs b/src/backend/github.rs index c05f1d7dab..999becec88 100644 --- a/src/backend/github.rs +++ b/src/backend/github.rs @@ -45,6 +45,10 @@ impl Backend for UnifiedGitBackend { let releases = gitlab::list_releases_from_url(api_url.as_str(), &repo).await?; Ok(releases .into_iter() + .filter(|r| { + opts.get("version_prefix") + .is_none_or(|p| r.tag_name.starts_with(p)) + }) .map(|r| self.strip_version_prefix(&r.tag_name)) .rev() .collect()) @@ -52,6 +56,10 @@ impl Backend for UnifiedGitBackend { let releases = github::list_releases_from_url(api_url.as_str(), &repo).await?; Ok(releases .into_iter() + .filter(|r| { + opts.get("version_prefix") + .is_none_or(|p| r.tag_name.starts_with(p)) + }) .map(|r| self.strip_version_prefix(&r.tag_name)) .rev() .collect())