aboutsummaryrefslogtreecommitdiffstats
path: root/lua/mason-core/managers/github
diff options
context:
space:
mode:
authorWilliam Boman <william@redwill.se>2022-10-05 20:33:21 +0200
committerGitHub <noreply@github.com>2022-10-05 20:33:21 +0200
commit738684097dfdd9a4a67cd217b0beda3e169bd85d (patch)
treed2eb8485dedcac66061b0d99ad7f810828911073 /lua/mason-core/managers/github
parenttest(cargo): stub crates.io http call (#508) (diff)
downloadmason-738684097dfdd9a4a67cd217b0beda3e169bd85d.tar
mason-738684097dfdd9a4a67cd217b0beda3e169bd85d.tar.gz
mason-738684097dfdd9a4a67cd217b0beda3e169bd85d.tar.bz2
mason-738684097dfdd9a4a67cd217b0beda3e169bd85d.tar.lz
mason-738684097dfdd9a4a67cd217b0beda3e169bd85d.tar.xz
mason-738684097dfdd9a4a67cd217b0beda3e169bd85d.tar.zst
mason-738684097dfdd9a4a67cd217b0beda3e169bd85d.zip
feat(cargo): improve handling of git-based crates (#512)
This is all pretty overkill, especially considering the small amount of packages based on git-based crates.
Diffstat (limited to 'lua/mason-core/managers/github')
-rw-r--r--lua/mason-core/managers/github/client.lua26
1 files changed, 25 insertions, 1 deletions
diff --git a/lua/mason-core/managers/github/client.lua b/lua/mason-core/managers/github/client.lua
index 8f4545e8..788b402b 100644
--- a/lua/mason-core/managers/github/client.lua
+++ b/lua/mason-core/managers/github/client.lua
@@ -8,10 +8,16 @@ local M = {}
---@alias GitHubReleaseAsset {url: string, id: integer, name: string, browser_download_url: string, created_at: string, updated_at: string, size: integer, download_count: integer}
---@alias GitHubRelease {tag_name: string, prerelease: boolean, draft: boolean, assets:GitHubReleaseAsset[]}
---@alias GitHubTag {name: string}
+---@alias GitHubCommit {sha: string}
---@param path string
+---@param opts { params: table<string, any>? }?
---@return Result # JSON decoded response.
-local function api_call(path)
+local function api_call(path, opts)
+ if opts and opts.params then
+ local params = _.join("&", _.map(_.join "=", _.sort_by(_.head, _.to_pairs(opts.params))))
+ path = ("%s?%s"):format(path, params)
+ end
return spawn