aboutsummaryrefslogtreecommitdiffstats
path: root/lua
diff options
context:
space:
mode:
Diffstat (limited to 'lua')
-rw-r--r--lua/mason-core/installer/registry/providers/cargo.lua14
1 files changed, 14 insertions, 0 deletions
diff --git a/lua/mason-core/installer/registry/providers/cargo.lua b/lua/mason-core/installer/registry/providers/cargo.lua
index 312a2938..af43db86 100644
--- a/lua/mason-core/installer/registry/providers/cargo.lua
+++ b/lua/mason-core/installer/registry/providers/cargo.lua
@@ -58,6 +58,20 @@ end
---@async
---@param purl Purl
function M.get_versions(purl)
+ ---@type string?
+ local repository_url = _.path({ "qualifiers", "repository_url" }, purl)
+ if repository_url then
+ ---@type Result?
+ local git_tags = _.cond {
+ {
+ _.matches "github.com/(.+)",
+ _.compose(providers.github.get_all_tags, _.head, _.match "github.com/(.+)"),
+ },
+ }(repository_url)
+ if git_tags then
+ return git_tags
+ end
+ end
return providers.crates.get_all_versions(purl.name)
end