aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWilliam Boman <william@redwill.se>2023-12-29 07:46:43 +0100
committerGitHub <noreply@github.com>2023-12-29 07:46:43 +0100
commita09da6ac634926a299dd439da08bdb547a8ca011 (patch)
tree1bd436c7e8fca5383257467b048cae51eaf0b2a4
parentchore(main): release 1.8.3 (#1555) (diff)
downloadmason-a09da6ac634926a299dd439da08bdb547a8ca011.tar
mason-a09da6ac634926a299dd439da08bdb547a8ca011.tar.gz
mason-a09da6ac634926a299dd439da08bdb547a8ca011.tar.bz2
mason-a09da6ac634926a299dd439da08bdb547a8ca011.tar.lz
mason-a09da6ac634926a299dd439da08bdb547a8ca011.tar.xz
mason-a09da6ac634926a299dd439da08bdb547a8ca011.tar.zst
mason-a09da6ac634926a299dd439da08bdb547a8ca011.zip
fix(cargo): don't attempt to fetch versions when version targets commit SHA (#1585)
-rw-r--r--lua/mason-core/installer/registry/providers/cargo.lua7
-rw-r--r--tests/mason-core/installer/registry/providers/cargo_spec.lua12
2 files changed, 19 insertions, 0 deletions
diff --git a/lua/mason-core/installer/registry/providers/cargo.lua b/lua/mason-core/installer/registry/providers/cargo.lua
index af43db86..f4904b73 100644
--- a/lua/mason-core/installer/registry/providers/cargo.lua
+++ b/lua/mason-core/installer/registry/providers/cargo.lua
@@ -60,7 +60,14 @@ end
function M.get_versions(purl)
---@type string?
local repository_url = _.path({ "qualifiers", "repository_url" }, purl)
+ local rev = _.path({ "qualifiers", "rev" }, purl)
if repository_url then
+ if rev == "true" then
+ -- When ?rev=true we're targeting a commit SHA. It's not feasible to retrieve all commit SHAs for a
+ -- repository so we fail instead.
+ return Result.failure "Unable to retrieve commit SHAs."
+ end
+
---@type Result?
local git_tags = _.cond {
{
diff --git a/tests/mason-core/installer/registry/providers/cargo_spec.lua b/tests/mason-core/installer/registry/providers/cargo_spec.lua
index d3468909..1bdad5f4 100644
--- a/tests/mason-core/installer/registry/providers/cargo_spec.lua
+++ b/tests/mason-core/installer/registry/providers/cargo_spec.lua
@@ -136,4 +136,16 @@ describe("cargo provider :: versions", function()
assert.spy(providers.github.get_all_tags).was_called(1)
assert.spy(providers.github.get_all_tags).was_called_with "rust-lang/rust-analyzer"
end)
+
+ it("should not provide git commit SHAs", function()
+ local result = cargo.get_versions(purl {
+ qualifiers = {
+ repository_url = "https://github.com/rust-lang/rust-analyzer",
+ rev = "true",
+ },
+ })
+
+ assert.is_false(result:is_success())
+ assert.equals("Unable to retrieve commit SHAs.", result:err_or_nil())
+ end)
end)