From d9e0f98d3fc6adb07d1e3d37f3043649ddad06a1 Mon Sep 17 00:00:00 2001 From: Kevin Stillhammer Date: Tue, 12 Aug 2025 22:50:05 +0200 Subject: [PATCH] Improve error messages on GitHub API errors (#518) Fixes: #513 --- .vscode/extensions.json | 3 +++ .vscode/settings.json | 16 ++++++++++++++++ dist/setup/index.js | 19 +++++++++++++------ src/download/download-version.ts | 26 ++++++++++++++++++-------- 4 files changed, 50 insertions(+), 14 deletions(-) create mode 100644 .vscode/extensions.json create mode 100644 .vscode/settings.json diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..699ed73 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,3 @@ +{ + "recommendations": ["biomejs.biome"] +} diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..e66be98 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,16 @@ +{ + "editor.codeActionsOnSave": { + "source.action.useSortedAttributes.biome": "explicit", + "source.action.useSortedKeys.biome": "explicit", + "source.fixAll.biome": "explicit" + }, + "editor.defaultFormatter": "biomejs.biome", + "editor.formatOnSave": true, + "explorer.excludeGitIgnore": false, + "search.defaultViewMode": "list", + "search.exclude": { + "**/node_modules": true + }, + "typescript.enablePromptUseWorkspaceTsdk": true, + "typescript.tsdk": "node_modules/typescript/lib" +} diff --git a/dist/setup/index.js b/dist/setup/index.js index 74cfc85..de73858 100644 --- a/dist/setup/index.js +++ b/dist/setup/index.js @@ -126195,7 +126195,11 @@ async function getReleaseTagNames(octokit) { owner: constants_1.OWNER, repo: constants_1.REPO, }); - return response.map((release) => release.tag_name); + const releaseTagNames = response.map((release) => release.tag_name); + if (releaseTagNames.length === 0) { + throw Error("Github API request failed while getting releases. Check the GitHub status page for outages. Try again later."); + } + return releaseTagNames; } async function getLatestVersion(githubToken) { core.debug("Getting latest version..."); @@ -126207,12 +126211,15 @@ async function getLatestVersion(githubToken) { latestRelease = await getLatestRelease(octokit); } catch (err) { - core.info("No (valid) GitHub token provided. Falling back to anonymous. Requests might be rate limited."); - if (err instanceof Error) { - core.debug(err.message); + if (err.message.includes("Bad credentials")) { + core.info("No (valid) GitHub token provided. Falling back to anonymous. Requests might be rate limited."); + const octokit = new octokit_1.Octokit(); + latestRelease = await getLatestRelease(octokit); + } + else { + core.error("Github API request failed while getting latest release. Check the GitHub status page for outages. Try again later."); + throw err; } - const octokit = new octokit_1.Octokit(); - latestRelease = await getLatestRelease(octokit); } if (!latestRelease) { throw new Error("Could not determine latest release."); diff --git a/src/download/download-version.ts b/src/download/download-version.ts index 92e07dc..134452a 100644 --- a/src/download/download-version.ts +++ b/src/download/download-version.ts @@ -184,7 +184,13 @@ async function getReleaseTagNames( owner: OWNER, repo: REPO, }); - return response.map((release) => release.tag_name); + const releaseTagNames = response.map((release) => release.tag_name); + if (releaseTagNames.length === 0) { + throw Error( + "Github API request failed while getting releases. Check the GitHub status page for outages. Try again later.", + ); + } + return releaseTagNames; } async function getLatestVersion(githubToken: string) { @@ -197,14 +203,18 @@ async function getLatestVersion(githubToken: string) { try { latestRelease = await getLatestRelease(octokit); } catch (err) { - core.info( - "No (valid) GitHub token provided. Falling back to anonymous. Requests might be rate limited.", - ); - if (err instanceof Error) { - core.debug(err.message); + if ((err as Error).message.includes("Bad credentials")) { + core.info( + "No (valid) GitHub token provided. Falling back to anonymous. Requests might be rate limited.", + ); + const octokit = new Octokit(); + latestRelease = await getLatestRelease(octokit); + } else { + core.error( + "Github API request failed while getting latest release. Check the GitHub status page for outages. Try again later.", + ); + throw err; } - const octokit = new Octokit(); - latestRelease = await getLatestRelease(octokit); } if (!latestRelease) {