From 030c6c80ed22e6063530547794ef7c5f89ea267a Mon Sep 17 00:00:00 2001 From: Shingil Kim Date: Wed, 26 Mar 2025 18:43:19 +0900 Subject: [PATCH] fix: Improve GitHub API rate limit handling with PAT support --- src/serverDownloader.ts | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/src/serverDownloader.ts b/src/serverDownloader.ts index 5870256..30880ed 100644 --- a/src/serverDownloader.ts +++ b/src/serverDownloader.ts @@ -29,10 +29,24 @@ export class ServerDownloader { ) {} private async latestReleaseInfo(): Promise { - const rawJson = await requestPromise.get(`https://api.github.com/repos/fwcd/${this.githubProjectName}/releases/latest`, { - headers: { "User-Agent": "vscode-kotlin-ide" } - }); - return JSON.parse(rawJson) as GitHubReleasesAPIResponse; + const headers: { [key: string]: string } = { + "User-Agent": "vscode-kotlin-ide" + }; + + const token = process.env.GITHUB_TOKEN; + if (token) { + headers["Authorization"] = `Bearer ${token}`; + } + + try { + const rawJson = await requestPromise.get(`https://api.github.com/repos/fwcd/${this.githubProjectName}/releases/latest`, { headers }); + return JSON.parse(rawJson) as GitHubReleasesAPIResponse; + } catch (error) { + if (error.statusCode === 403 && !token) { + LOG.warn("GitHub API rate limit exceeded. Consider setting GITHUB_TOKEN environment variable to increase the rate limit."); + } + throw error; + } } private serverInfoFile(): string {