fix(copilot): refresh token before sending the request (#791)

Co-authored-by: Aaron Pham <contact@aarnphm.xyz>
This commit is contained in:
Christopher Brewin 2024-11-06 15:07:02 +10:00 committed by GitHub
parent 9fbe0256f2
commit c516883b99
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -91,7 +91,7 @@ H.refresh_token = function()
not M.state.github_token
or (M.state.github_token.expires_at and M.state.github_token.expires_at < math.floor(os.time()))
then
curl.get(H.chat_auth_url, {
local response = curl.get(H.chat_auth_url, {
headers = {
["Authorization"] = "token " .. M.state.oauth_token,
["Accept"] = "application/json",
@ -99,14 +99,16 @@ H.refresh_token = function()
timeout = Config.copilot.timeout,
proxy = Config.copilot.proxy,
insecure = Config.copilot.allow_insecure,
on_error = function(err) error("Failed to get response: " .. vim.inspect(err)) end,
callback = function(output)
M.state.github_token = vim.json.decode(output.body)
local file = Path:new(copilot_path)
file:write(vim.json.encode(M.state.github_token), "w")
if not vim.g.avante_login then vim.g.avante_login = true end
end,
})
if response.status == 200 then
M.state.github_token = vim.json.decode(response.body)
local file = Path:new(copilot_path)
file:write(vim.json.encode(M.state.github_token), "w")
if not vim.g.avante_login then vim.g.avante_login = true end
else
error("Failed to get success response: " .. vim.inspect(response))
end
end
end
@ -168,7 +170,8 @@ M.setup = function()
oauth_token = H.get_oauth_token(),
}
end
H.refresh_token()
vim.schedule(function() H.refresh_token() end)
require("avante.tokenizers").setup(M.tokenizer_id)
vim.g.avante_login = true