diff options
| author | William Boman <william@redwill.se> | 2023-12-29 07:46:43 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-12-29 07:46:43 +0100 |
| commit | a09da6ac634926a299dd439da08bdb547a8ca011 (patch) | |
| tree | 1bd436c7e8fca5383257467b048cae51eaf0b2a4 | |
| parent | chore(main): release 1.8.3 (#1555) (diff) | |
| download | mason-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.lua | 7 | ||||
| -rw-r--r-- | tests/mason-core/installer/registry/providers/cargo_spec.lua | 12 |
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) |
