From 95ca710e47fdd65407d4a776a966963e455b56c7 Mon Sep 17 00:00:00 2001 From: William Boman Date: Fri, 14 Oct 2022 16:38:32 +0200 Subject: feat(fetch): add Accept headers where appropriate (#554) --- lua/mason-core/managers/cargo/client.lua | 6 +++++- lua/mason-core/managers/github/client.lua | 6 +++++- lua/mason-registry/api.lua | 6 +++++- tests/mason-registry/api_spec.lua | 6 +++++- 4 files changed, 20 insertions(+), 4 deletions(-) diff --git a/lua/mason-core/managers/cargo/client.lua b/lua/mason-core/managers/cargo/client.lua index d5ecb283..82dc85aa 100644 --- a/lua/mason-core/managers/cargo/client.lua +++ b/lua/mason-core/managers/cargo/client.lua @@ -8,7 +8,11 @@ local M = {} ---@param crate string ---@return Result # Result function M.fetch_crate(crate) - return fetch(("https://crates.io/api/v1/crates/%s"):format(crate)):map_catching(vim.json.decode) + return fetch(("https://crates.io/api/v1/crates/%s"):format(crate), { + headers = { + Accept = "application/json", + }, + }):map_catching(vim.json.decode) end return M diff --git a/lua/mason-core/managers/github/client.lua b/lua/mason-core/managers/github/client.lua index e375c45a..9583ab6d 100644 --- a/lua/mason-core/managers/github/client.lua +++ b/lua/mason-core/managers/github/client.lua @@ -25,7 +25,11 @@ local function gh_api_call(path, opts) .gh({ "api", path, env = { CLICOLOR_FORCE = 0 } }) :map(_.prop "stdout") :recover_catching(function() - return fetch(("https://api.github.com/%s"):format(path)):get_or_throw() + return fetch(("https://api.github.com/%s"):format(path), { + headers = { + Accept = "application/vnd.github.v3+json; q=1.0, application/json; q=0.8", + }, + }):get_or_throw() end) :map_catching(vim.json.decode) end diff --git a/lua/mason-registry/api.lua b/lua/mason-registry/api.lua index 3fcd9423..037d7fd6 100644 --- a/lua/mason-registry/api.lua +++ b/lua/mason-registry/api.lua @@ -17,7 +17,11 @@ function api.get(path, opts) local params = stringify_params(opts.params) path = ("%s?%s"):format(path, params) end - return fetch(("%s%s"):format(BASE_URL, path)):map_catching(vim.json.decode) + return fetch(("%s%s"):format(BASE_URL, path), { + headers = { + Accept = "application/vnd.mason-registry.v1+json; q=1.0, application/json; q=0.8", + }, + }):map_catching(vim.json.decode) end return api diff --git a/tests/mason-registry/api_spec.lua b/tests/mason-registry/api_spec.lua index b871520b..f7b1bf45 100644 --- a/tests/mason-registry/api_spec.lua +++ b/tests/mason-registry/api_spec.lua @@ -24,7 +24,11 @@ describe("mason-registry API", function() }) assert.spy(fetch).was_called(1) - assert.spy(fetch).was_called_with "https://api.mason-registry.dev/api/data?page=2&page_limit=10&sort=ASC" + assert.spy(fetch).was_called_with("https://api.mason-registry.dev/api/data?page=2&page_limit=10&sort=ASC", { + headers = { + Accept = "application/vnd.mason-registry.v1+json; q=1.0, application/json; q=0.8", + }, + }) end) it("should deserialize JSON", function() -- cgit v1.2.3-70-g09d2