fix: Get copilot refresh token asynchronously (#918)

This commit is contained in:
Arkuna 2024-12-01 14:00:42 +08:00 committed by GitHub
parent 71c9a7911b
commit 57311bf8cd
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 not M.state.github_token
or (M.state.github_token.expires_at and M.state.github_token.expires_at < math.floor(os.time())) or (M.state.github_token.expires_at and M.state.github_token.expires_at < math.floor(os.time()))
then then
local response = curl.get(H.chat_auth_url, { curl.get(H.chat_auth_url, {
headers = { headers = {
["Authorization"] = "token " .. M.state.oauth_token, ["Authorization"] = "token " .. M.state.oauth_token,
["Accept"] = "application/json", ["Accept"] = "application/json",
@ -99,16 +99,17 @@ H.refresh_token = function()
timeout = Config.copilot.timeout, timeout = Config.copilot.timeout,
proxy = Config.copilot.proxy, proxy = Config.copilot.proxy,
insecure = Config.copilot.allow_insecure, insecure = Config.copilot.allow_insecure,
callback = function(response)
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,
}) })
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
end end