From 7892cb23624826b766a794f0b556f535be85ce12 Mon Sep 17 00:00:00 2001 From: Nick Rolfe Date: Tue, 7 Oct 2025 11:54:12 +0100 Subject: [PATCH 1/6] Overlays: allow any build mode for Go We have a check that a traced language can only run overlay analysis with build-mode: none, but Go does not currently declare support for BMN, even though it has a similar autobuild mode that will work for overlay analysis. This commit adds a hard-coded exception to that check, allowing any build mode for Go. This is intended as a short-term solution until Go declares BMN support. It should be safe, since we can choose not to enable the feature flag for Go repos using traced builds. --- lib/init-action.js | 8 +++++++- src/config-utils.ts | 9 ++++++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/lib/init-action.js b/lib/init-action.js index 2f509ad0e..c7419b09a 100644 --- a/lib/init-action.js +++ b/lib/init-action.js @@ -87860,7 +87860,13 @@ async function getOverlayDatabaseMode(codeql, repository, features, languages, s return nonOverlayAnalysis; } if (buildMode !== "none" /* None */ && (await Promise.all( - languages.map(async (l) => await codeql.isTracedLanguage(l)) + languages.map( + async (l) => l !== "go" /* go */ && // Workaround to allow overlay analysis for Go with any build + // mode, since it does not yet support BMN. The Go autobuilder and/or extractor will + // ensure that overlay-base databases are only created for supported Go build setups, + // and that we'll fall back to full databases in other cases. + await codeql.isTracedLanguage(l) + ) )).some(Boolean)) { logger.warning( `Cannot build an ${overlayDatabaseMode} database because build-mode is set to "${buildMode}" instead of "none". Falling back to creating a normal full database instead.` diff --git a/src/config-utils.ts b/src/config-utils.ts index fe4b392ab..e6c87bf5a 100644 --- a/src/config-utils.ts +++ b/src/config-utils.ts @@ -723,7 +723,14 @@ export async function getOverlayDatabaseMode( buildMode !== BuildMode.None && ( await Promise.all( - languages.map(async (l) => await codeql.isTracedLanguage(l)), + languages.map( + async (l) => + l !== KnownLanguage.go && // Workaround to allow overlay analysis for Go with any build + // mode, since it does not yet support BMN. The Go autobuilder and/or extractor will + // ensure that overlay-base databases are only created for supported Go build setups, + // and that we'll fall back to full databases in other cases. + (await codeql.isTracedLanguage(l)), + ), ) ).some(Boolean) ) { From 527501d15daa18cf28340a6052d3e4b378b78fe1 Mon Sep 17 00:00:00 2001 From: "Michael B. Gale" Date: Wed, 8 Oct 2025 12:50:16 +0100 Subject: [PATCH 2/6] Allow `createStatusReportBase` to accept a `Partial` --- lib/analyze-action.js | 4 +-- lib/autobuild-action.js | 4 +-- lib/init-action-post.js | 4 +-- lib/init-action.js | 4 +-- lib/resolve-environment-action.js | 4 +-- lib/start-proxy-action.js | 4 +-- lib/upload-sarif-action.js | 4 +-- src/status-report.test.ts | 43 +++++++++++++++++++++++++++++++ src/status-report.ts | 6 ++--- 9 files changed, 60 insertions(+), 17 deletions(-) diff --git a/lib/analyze-action.js b/lib/analyze-action.js index 182230563..3e29b6c2c 100644 --- a/lib/analyze-action.js +++ b/lib/analyze-action.js @@ -94111,7 +94111,7 @@ async function createStatusReportBase(actionName, status, actionStartedAt, confi action_ref: actionRef, action_started_at: actionStartedAt.toISOString(), action_version: getActionVersion(), - analysis_kinds: config?.analysisKinds.join(","), + analysis_kinds: config?.analysisKinds?.join(","), analysis_key, build_mode: config?.buildMode, commit_oid: commitOid, @@ -94134,7 +94134,7 @@ async function createStatusReportBase(actionName, status, actionStartedAt, confi logger.warning(`Could not determine the workflow event name: ${e}.`); } if (config) { - statusReport.languages = config.languages.join(","); + statusReport.languages = config.languages?.join(","); } if (diskInfo) { statusReport.runner_available_disk_space_bytes = diskInfo.numAvailableBytes; diff --git a/lib/autobuild-action.js b/lib/autobuild-action.js index acdcdd44d..376db2e4d 100644 --- a/lib/autobuild-action.js +++ b/lib/autobuild-action.js @@ -79812,7 +79812,7 @@ async function createStatusReportBase(actionName, status, actionStartedAt, confi action_ref: actionRef, action_started_at: actionStartedAt.toISOString(), action_version: getActionVersion(), - analysis_kinds: config?.analysisKinds.join(","), + analysis_kinds: config?.analysisKinds?.join(","), analysis_key, build_mode: config?.buildMode, commit_oid: commitOid, @@ -79835,7 +79835,7 @@ async function createStatusReportBase(actionName, status, actionStartedAt, confi logger.warning(`Could not determine the workflow event name: ${e}.`); } if (config) { - statusReport.languages = config.languages.join(","); + statusReport.languages = config.languages?.join(","); } if (diskInfo) { statusReport.runner_available_disk_space_bytes = diskInfo.numAvailableBytes; diff --git a/lib/init-action-post.js b/lib/init-action-post.js index 3795e4c5d..9f480cf7a 100644 --- a/lib/init-action-post.js +++ b/lib/init-action-post.js @@ -131587,7 +131587,7 @@ async function createStatusReportBase(actionName, status, actionStartedAt, confi action_ref: actionRef, action_started_at: actionStartedAt.toISOString(), action_version: getActionVersion(), - analysis_kinds: config?.analysisKinds.join(","), + analysis_kinds: config?.analysisKinds?.join(","), analysis_key, build_mode: config?.buildMode, commit_oid: commitOid, @@ -131610,7 +131610,7 @@ async function createStatusReportBase(actionName, status, actionStartedAt, confi logger.warning(`Could not determine the workflow event name: ${e}.`); } if (config) { - statusReport.languages = config.languages.join(","); + statusReport.languages = config.languages?.join(","); } if (diskInfo) { statusReport.runner_available_disk_space_bytes = diskInfo.numAvailableBytes; diff --git a/lib/init-action.js b/lib/init-action.js index cc78a9e14..5c1a810de 100644 --- a/lib/init-action.js +++ b/lib/init-action.js @@ -90265,7 +90265,7 @@ async function createStatusReportBase(actionName, status, actionStartedAt, confi action_ref: actionRef, action_started_at: actionStartedAt.toISOString(), action_version: getActionVersion(), - analysis_kinds: config?.analysisKinds.join(","), + analysis_kinds: config?.analysisKinds?.join(","), analysis_key, build_mode: config?.buildMode, commit_oid: commitOid, @@ -90288,7 +90288,7 @@ async function createStatusReportBase(actionName, status, actionStartedAt, confi logger.warning(`Could not determine the workflow event name: ${e}.`); } if (config) { - statusReport.languages = config.languages.join(","); + statusReport.languages = config.languages?.join(","); } if (diskInfo) { statusReport.runner_available_disk_space_bytes = diskInfo.numAvailableBytes; diff --git a/lib/resolve-environment-action.js b/lib/resolve-environment-action.js index af32f15fa..d3dcf7a8e 100644 --- a/lib/resolve-environment-action.js +++ b/lib/resolve-environment-action.js @@ -79439,7 +79439,7 @@ async function createStatusReportBase(actionName, status, actionStartedAt, confi action_ref: actionRef, action_started_at: actionStartedAt.toISOString(), action_version: getActionVersion(), - analysis_kinds: config?.analysisKinds.join(","), + analysis_kinds: config?.analysisKinds?.join(","), analysis_key, build_mode: config?.buildMode, commit_oid: commitOid, @@ -79462,7 +79462,7 @@ async function createStatusReportBase(actionName, status, actionStartedAt, confi logger.warning(`Could not determine the workflow event name: ${e}.`); } if (config) { - statusReport.languages = config.languages.join(","); + statusReport.languages = config.languages?.join(","); } if (diskInfo) { statusReport.runner_available_disk_space_bytes = diskInfo.numAvailableBytes; diff --git a/lib/start-proxy-action.js b/lib/start-proxy-action.js index a315dd257..8eb317706 100644 --- a/lib/start-proxy-action.js +++ b/lib/start-proxy-action.js @@ -95589,7 +95589,7 @@ async function createStatusReportBase(actionName, status, actionStartedAt, confi action_ref: actionRef, action_started_at: actionStartedAt.toISOString(), action_version: getActionVersion(), - analysis_kinds: config?.analysisKinds.join(","), + analysis_kinds: config?.analysisKinds?.join(","), analysis_key, build_mode: config?.buildMode, commit_oid: commitOid, @@ -95612,7 +95612,7 @@ async function createStatusReportBase(actionName, status, actionStartedAt, confi logger.warning(`Could not determine the workflow event name: ${e}.`); } if (config) { - statusReport.languages = config.languages.join(","); + statusReport.languages = config.languages?.join(","); } if (diskInfo) { statusReport.runner_available_disk_space_bytes = diskInfo.numAvailableBytes; diff --git a/lib/upload-sarif-action.js b/lib/upload-sarif-action.js index 77c8baf84..c9888f096 100644 --- a/lib/upload-sarif-action.js +++ b/lib/upload-sarif-action.js @@ -89856,7 +89856,7 @@ async function createStatusReportBase(actionName, status, actionStartedAt, confi action_ref: actionRef, action_started_at: actionStartedAt.toISOString(), action_version: getActionVersion(), - analysis_kinds: config?.analysisKinds.join(","), + analysis_kinds: config?.analysisKinds?.join(","), analysis_key, build_mode: config?.buildMode, commit_oid: commitOid, @@ -89879,7 +89879,7 @@ async function createStatusReportBase(actionName, status, actionStartedAt, confi logger.warning(`Could not determine the workflow event name: ${e}.`); } if (config) { - statusReport.languages = config.languages.join(","); + statusReport.languages = config.languages?.join(","); } if (diskInfo) { statusReport.runner_available_disk_space_bytes = diskInfo.numAvailableBytes; diff --git a/src/status-report.test.ts b/src/status-report.test.ts index b535ef212..8421dccee 100644 --- a/src/status-report.test.ts +++ b/src/status-report.test.ts @@ -92,6 +92,49 @@ test("createStatusReportBase", async (t) => { }); }); +test("createStatusReportBase - empty configuration", async (t) => { + await withTmpDir(async (tmpDir: string) => { + setupEnvironmentAndStub(tmpDir); + + const statusReport = await createStatusReportBase( + ActionName.StartProxy, + "success", + new Date("May 19, 2023 05:19:00"), + {}, + { numAvailableBytes: 100, numTotalBytes: 500 }, + getRunnerLogger(false), + ); + + if (t.truthy(statusReport)) { + t.is(statusReport.action_name, ActionName.StartProxy); + t.is(statusReport.status, "success"); + } + }); +}); + +test("createStatusReportBase - partial configuration", async (t) => { + await withTmpDir(async (tmpDir: string) => { + setupEnvironmentAndStub(tmpDir); + + const statusReport = await createStatusReportBase( + ActionName.StartProxy, + "success", + new Date("May 19, 2023 05:19:00"), + { + languages: ["go"], + }, + { numAvailableBytes: 100, numTotalBytes: 500 }, + getRunnerLogger(false), + ); + + if (t.truthy(statusReport)) { + t.is(statusReport.action_name, ActionName.StartProxy); + t.is(statusReport.status, "success"); + t.is(statusReport.languages, "go"); + } + }); +}); + test("createStatusReportBase_firstParty", async (t) => { await withTmpDir(async (tmpDir: string) => { setupEnvironmentAndStub(tmpDir); diff --git a/src/status-report.ts b/src/status-report.ts index 9bfd14677..46b16a5ef 100644 --- a/src/status-report.ts +++ b/src/status-report.ts @@ -260,7 +260,7 @@ export async function createStatusReportBase( actionName: ActionName, status: ActionStatus, actionStartedAt: Date, - config: Config | undefined, + config: Partial | undefined, diskInfo: DiskUsage | undefined, logger: Logger, cause?: string, @@ -299,7 +299,7 @@ export async function createStatusReportBase( action_ref: actionRef, action_started_at: actionStartedAt.toISOString(), action_version: getActionVersion(), - analysis_kinds: config?.analysisKinds.join(","), + analysis_kinds: config?.analysisKinds?.join(","), analysis_key, build_mode: config?.buildMode, commit_oid: commitOid, @@ -324,7 +324,7 @@ export async function createStatusReportBase( } if (config) { - statusReport.languages = config.languages.join(","); + statusReport.languages = config.languages?.join(","); } if (diskInfo) { From 2ff418f28a66dd71cd80701e95ec26db12875f15 Mon Sep 17 00:00:00 2001 From: "Michael B. Gale" Date: Wed, 8 Oct 2025 12:54:49 +0100 Subject: [PATCH 3/6] Parse `language` before calling `getCredentials` --- lib/start-proxy-action.js | 7 ++++--- src/start-proxy-action.ts | 5 ++++- src/start-proxy.test.ts | 4 ++-- src/start-proxy.ts | 3 +-- 4 files changed, 11 insertions(+), 8 deletions(-) diff --git a/lib/start-proxy-action.js b/lib/start-proxy-action.js index 8eb317706..7ac17694f 100644 --- a/lib/start-proxy-action.js +++ b/lib/start-proxy-action.js @@ -95087,8 +95087,7 @@ var LANGUAGE_TO_REGISTRY_TYPE = { rust: ["cargo_registry"], go: ["goproxy_server", "git_source"] }; -function getCredentials(logger, registrySecrets, registriesCredentials, languageString) { - const language = languageString ? parseLanguage(languageString) : void 0; +function getCredentials(logger, registrySecrets, registriesCredentials, language) { const registryTypeForLanguage = language ? LANGUAGE_TO_REGISTRY_TYPE[language] : void 0; let credentialsStr; if (registriesCredentials !== void 0) { @@ -95780,11 +95779,13 @@ async function runWrapper() { const tempDir = getTemporaryDirectory(); const proxyLogFilePath = path.resolve(tempDir, "proxy.log"); core11.saveState("proxy-log-file", proxyLogFilePath); + const languageInput = getOptionalInput("language"); + const language = languageInput ? parseLanguage(languageInput) : void 0; const credentials = getCredentials( logger, getOptionalInput("registry_secrets"), getOptionalInput("registries_credentials"), - getOptionalInput("language") + language ); if (credentials.length === 0) { logger.info("No credentials found, skipping proxy setup."); diff --git a/src/start-proxy-action.ts b/src/start-proxy-action.ts index 966c954b4..3de5e358b 100644 --- a/src/start-proxy-action.ts +++ b/src/start-proxy-action.ts @@ -12,6 +12,7 @@ import { Credential, getCredentials, getDownloadUrl, + parseLanguage, UPDATEJOB_PROXY, } from "./start-proxy"; import { @@ -133,11 +134,13 @@ async function runWrapper() { core.saveState("proxy-log-file", proxyLogFilePath); // Get the configuration options + const languageInput = actionsUtil.getOptionalInput("language"); + const language = languageInput ? parseLanguage(languageInput) : undefined; const credentials = getCredentials( logger, actionsUtil.getOptionalInput("registry_secrets"), actionsUtil.getOptionalInput("registries_credentials"), - actionsUtil.getOptionalInput("language"), + language, ); if (credentials.length === 0) { diff --git a/src/start-proxy.test.ts b/src/start-proxy.test.ts index dfd55d72f..edd1377c0 100644 --- a/src/start-proxy.test.ts +++ b/src/start-proxy.test.ts @@ -109,7 +109,7 @@ test("getCredentials filters by language when specified", async (t) => { getRunnerLogger(true), undefined, toEncodedJSON(mixedCredentials), - "java", + KnownLanguage.java, ); t.is(credentials.length, 1); t.is(credentials[0].type, "maven_repository"); @@ -120,7 +120,7 @@ test("getCredentials returns all for a language when specified", async (t) => { getRunnerLogger(true), undefined, toEncodedJSON(mixedCredentials), - "go", + KnownLanguage.go, ); t.is(credentials.length, 2); diff --git a/src/start-proxy.ts b/src/start-proxy.ts index dd1e443b7..2888e1a58 100644 --- a/src/start-proxy.ts +++ b/src/start-proxy.ts @@ -79,9 +79,8 @@ export function getCredentials( logger: Logger, registrySecrets: string | undefined, registriesCredentials: string | undefined, - languageString: string | undefined, + language: KnownLanguage | undefined, ): Credential[] { - const language = languageString ? parseLanguage(languageString) : undefined; const registryTypeForLanguage = language ? LANGUAGE_TO_REGISTRY_TYPE[language] : undefined; From fb148789ab863424b005147b4b018fe5691e5ccc Mon Sep 17 00:00:00 2001 From: "Michael B. Gale" Date: Wed, 8 Oct 2025 13:01:25 +0100 Subject: [PATCH 4/6] Include `languages` in `start-proxy` telemetry --- lib/start-proxy-action.js | 7 +++++-- src/start-proxy-action.ts | 7 ++++++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/lib/start-proxy-action.js b/lib/start-proxy-action.js index 7ac17694f..becc30c81 100644 --- a/lib/start-proxy-action.js +++ b/lib/start-proxy-action.js @@ -95754,12 +95754,12 @@ function generateCertificateAuthority() { const key = import_node_forge.pki.privateKeyToPem(keys.privateKey); return { cert: pem, key }; } -async function sendSuccessStatusReport(startedAt, registry_types, logger) { +async function sendSuccessStatusReport(startedAt, config, registry_types, logger) { const statusReportBase = await createStatusReportBase( "start-proxy" /* StartProxy */, "success", startedAt, - void 0, + config, await checkDiskUsage(logger), logger ); @@ -95804,6 +95804,9 @@ async function runWrapper() { await startProxy(proxyBin, proxyConfig, proxyLogFilePath, logger); await sendSuccessStatusReport( startedAt, + { + languages: language ? [language] : [] + }, proxyConfig.all_credentials.map((c) => c.type), logger ); diff --git a/src/start-proxy-action.ts b/src/start-proxy-action.ts index 3de5e358b..7cdd8e45d 100644 --- a/src/start-proxy-action.ts +++ b/src/start-proxy-action.ts @@ -7,6 +7,7 @@ import { pki } from "node-forge"; import * as actionsUtil from "./actions-util"; import { getApiDetails, getAuthorizationHeaderFor } from "./api-client"; +import { Config } from "./config-utils"; import { getActionsLogger, Logger } from "./logging"; import { Credential, @@ -99,6 +100,7 @@ interface StartProxyStatus extends StatusReportBase { async function sendSuccessStatusReport( startedAt: Date, + config: Partial, registry_types: string[], logger: Logger, ) { @@ -106,7 +108,7 @@ async function sendSuccessStatusReport( ActionName.StartProxy, "success", startedAt, - undefined, + config, await util.checkDiskUsage(logger), logger, ); @@ -168,6 +170,9 @@ async function runWrapper() { // Report success if we have reached this point. await sendSuccessStatusReport( startedAt, + { + languages: language ? [language] : [], + }, proxyConfig.all_credentials.map((c) => c.type), logger, ); From bdd2cdf891a0a89c6680bd54c9ba63c80e440f75 Mon Sep 17 00:00:00 2001 From: "Michael B. Gale" Date: Wed, 8 Oct 2025 13:06:22 +0100 Subject: [PATCH 5/6] Also include `language` in error status report for `start-proxy`, if available --- lib/start-proxy-action.js | 9 ++++++--- src/start-proxy-action.ts | 10 +++++++--- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/lib/start-proxy-action.js b/lib/start-proxy-action.js index becc30c81..1437fef44 100644 --- a/lib/start-proxy-action.js +++ b/lib/start-proxy-action.js @@ -95775,12 +95775,13 @@ async function runWrapper() { const startedAt = /* @__PURE__ */ new Date(); persistInputs(); const logger = getActionsLogger(); + let language; try { const tempDir = getTemporaryDirectory(); const proxyLogFilePath = path.resolve(tempDir, "proxy.log"); core11.saveState("proxy-log-file", proxyLogFilePath); const languageInput = getOptionalInput("language"); - const language = languageInput ? parseLanguage(languageInput) : void 0; + language = languageInput ? parseLanguage(languageInput) : void 0; const credentials = getCredentials( logger, getOptionalInput("registry_secrets"), @@ -95805,7 +95806,7 @@ async function runWrapper() { await sendSuccessStatusReport( startedAt, { - languages: language ? [language] : [] + languages: language && [language] }, proxyConfig.all_credentials.map((c) => c.type), logger @@ -95817,7 +95818,9 @@ async function runWrapper() { "start-proxy" /* StartProxy */, getActionsStatus(error2), startedAt, - void 0, + { + languages: language && [language] + }, await checkDiskUsage(logger), logger ); diff --git a/src/start-proxy-action.ts b/src/start-proxy-action.ts index 7cdd8e45d..013382716 100644 --- a/src/start-proxy-action.ts +++ b/src/start-proxy-action.ts @@ -8,6 +8,7 @@ import { pki } from "node-forge"; import * as actionsUtil from "./actions-util"; import { getApiDetails, getAuthorizationHeaderFor } from "./api-client"; import { Config } from "./config-utils"; +import { KnownLanguage } from "./languages"; import { getActionsLogger, Logger } from "./logging"; import { Credential, @@ -128,6 +129,7 @@ async function runWrapper() { actionsUtil.persistInputs(); const logger = getActionsLogger(); + let language: KnownLanguage | undefined; try { // Setup logging for the proxy @@ -137,7 +139,7 @@ async function runWrapper() { // Get the configuration options const languageInput = actionsUtil.getOptionalInput("language"); - const language = languageInput ? parseLanguage(languageInput) : undefined; + language = languageInput ? parseLanguage(languageInput) : undefined; const credentials = getCredentials( logger, actionsUtil.getOptionalInput("registry_secrets"), @@ -171,7 +173,7 @@ async function runWrapper() { await sendSuccessStatusReport( startedAt, { - languages: language ? [language] : [], + languages: language && [language], }, proxyConfig.all_credentials.map((c) => c.type), logger, @@ -186,7 +188,9 @@ async function runWrapper() { ActionName.StartProxy, getActionsStatus(error), startedAt, - undefined, + { + languages: language && [language], + }, await util.checkDiskUsage(logger), logger, ); From 98abb870dcd6421594724ae220643e13baf90298 Mon Sep 17 00:00:00 2001 From: Henry Mercer Date: Wed, 8 Oct 2025 14:43:54 +0100 Subject: [PATCH 6/6] Add configuration error for rate limited CodeQL download --- lib/analyze-action-post.js | 1 + lib/analyze-action.js | 83 +++++++++++++++++++++-------- lib/autobuild-action.js | 1 + lib/init-action-post.js | 87 +++++++++++++++++++++++-------- lib/init-action.js | 83 +++++++++++++++++++++-------- lib/resolve-environment-action.js | 1 + lib/start-proxy-action-post.js | 1 + lib/start-proxy-action.js | 1 + lib/upload-lib.js | 83 +++++++++++++++++++++-------- lib/upload-sarif-action-post.js | 1 + lib/upload-sarif-action.js | 83 +++++++++++++++++++++-------- package-lock.json | 27 +++------- package.json | 1 + src/codeql.ts | 4 +- 14 files changed, 328 insertions(+), 129 deletions(-) diff --git a/lib/analyze-action-post.js b/lib/analyze-action-post.js index cff080b23..19c987905 100644 --- a/lib/analyze-action-post.js +++ b/lib/analyze-action-post.js @@ -26473,6 +26473,7 @@ var require_package = __commonJS({ "@actions/io": "^1.1.3", "@actions/tool-cache": "^2.0.2", "@octokit/plugin-retry": "^6.0.0", + "@octokit/request-error": "^7.0.1", "@schemastore/package": "0.0.10", archiver: "^7.0.1", "check-disk-space": "^3.4.0", diff --git a/lib/analyze-action.js b/lib/analyze-action.js index 182230563..299473210 100644 --- a/lib/analyze-action.js +++ b/lib/analyze-action.js @@ -20602,14 +20602,14 @@ var require_dist_node4 = __commonJS({ var __toCommonJS2 = (mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod); var dist_src_exports = {}; __export2(dist_src_exports, { - RequestError: () => RequestError + RequestError: () => RequestError2 }); module2.exports = __toCommonJS2(dist_src_exports); var import_deprecation = require_dist_node3(); var import_once = __toESM2(require_once()); var logOnceCode = (0, import_once.default)((deprecation) => console.warn(deprecation)); var logOnceHeaders = (0, import_once.default)((deprecation) => console.warn(deprecation)); - var RequestError = class extends Error { + var RequestError2 = class extends Error { constructor(message, statusCode, options) { super(message); if (Error.captureStackTrace) { @@ -20701,7 +20701,7 @@ var require_dist_node5 = __commonJS({ const Ctor = Object.prototype.hasOwnProperty.call(proto, "constructor") && proto.constructor; return typeof Ctor === "function" && Ctor instanceof Ctor && Function.prototype.call(Ctor) === Function.prototype.call(value); } - var import_request_error = require_dist_node4(); + var import_request_error2 = require_dist_node4(); function getBufferResponse(response) { return response.arrayBuffer(); } @@ -20753,7 +20753,7 @@ var require_dist_node5 = __commonJS({ if (status < 400) { return; } - throw new import_request_error.RequestError(response.statusText, status, { + throw new import_request_error2.RequestError(response.statusText, status, { response: { url: url2, status, @@ -20764,7 +20764,7 @@ var require_dist_node5 = __commonJS({ }); } if (status === 304) { - throw new import_request_error.RequestError("Not modified", status, { + throw new import_request_error2.RequestError("Not modified", status, { response: { url: url2, status, @@ -20776,7 +20776,7 @@ var require_dist_node5 = __commonJS({ } if (status >= 400) { const data = await getResponseData(response); - const error2 = new import_request_error.RequestError(toErrorMessage(data), status, { + const error2 = new import_request_error2.RequestError(toErrorMessage(data), status, { response: { url: url2, status, @@ -20796,7 +20796,7 @@ var require_dist_node5 = __commonJS({ data }; }).catch((error2) => { - if (error2 instanceof import_request_error.RequestError) + if (error2 instanceof import_request_error2.RequestError) throw error2; else if (error2.name === "AbortError") throw error2; @@ -20808,7 +20808,7 @@ var require_dist_node5 = __commonJS({ message = error2.cause; } } - throw new import_request_error.RequestError(message, 500, { + throw new import_request_error2.RequestError(message, 500, { request: requestOptions }); }); @@ -21250,14 +21250,14 @@ var require_dist_node7 = __commonJS({ var __toCommonJS2 = (mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod); var dist_src_exports = {}; __export2(dist_src_exports, { - RequestError: () => RequestError + RequestError: () => RequestError2 }); module2.exports = __toCommonJS2(dist_src_exports); var import_deprecation = require_dist_node3(); var import_once = __toESM2(require_once()); var logOnceCode = (0, import_once.default)((deprecation) => console.warn(deprecation)); var logOnceHeaders = (0, import_once.default)((deprecation) => console.warn(deprecation)); - var RequestError = class extends Error { + var RequestError2 = class extends Error { constructor(message, statusCode, options) { super(message); if (Error.captureStackTrace) { @@ -21349,7 +21349,7 @@ var require_dist_node8 = __commonJS({ const Ctor = Object.prototype.hasOwnProperty.call(proto, "constructor") && proto.constructor; return typeof Ctor === "function" && Ctor instanceof Ctor && Function.prototype.call(Ctor) === Function.prototype.call(value); } - var import_request_error = require_dist_node7(); + var import_request_error2 = require_dist_node7(); function getBufferResponse(response) { return response.arrayBuffer(); } @@ -21401,7 +21401,7 @@ var require_dist_node8 = __commonJS({ if (status < 400) { return; } - throw new import_request_error.RequestError(response.statusText, status, { + throw new import_request_error2.RequestError(response.statusText, status, { response: { url: url2, status, @@ -21412,7 +21412,7 @@ var require_dist_node8 = __commonJS({ }); } if (status === 304) { - throw new import_request_error.RequestError("Not modified", status, { + throw new import_request_error2.RequestError("Not modified", status, { response: { url: url2, status, @@ -21424,7 +21424,7 @@ var require_dist_node8 = __commonJS({ } if (status >= 400) { const data = await getResponseData(response); - const error2 = new import_request_error.RequestError(toErrorMessage(data), status, { + const error2 = new import_request_error2.RequestError(toErrorMessage(data), status, { response: { url: url2, status, @@ -21444,7 +21444,7 @@ var require_dist_node8 = __commonJS({ data }; }).catch((error2) => { - if (error2 instanceof import_request_error.RequestError) + if (error2 instanceof import_request_error2.RequestError) throw error2; else if (error2.name === "AbortError") throw error2; @@ -21456,7 +21456,7 @@ var require_dist_node8 = __commonJS({ message = error2.cause; } } - throw new import_request_error.RequestError(message, 500, { + throw new import_request_error2.RequestError(message, 500, { request: requestOptions }); }); @@ -32322,6 +32322,7 @@ var require_package = __commonJS({ "@actions/io": "^1.1.3", "@actions/tool-cache": "^2.0.2", "@octokit/plugin-retry": "^6.0.0", + "@octokit/request-error": "^7.0.1", "@schemastore/package": "0.0.10", archiver: "^7.0.1", "check-disk-space": "^3.4.0", @@ -33745,14 +33746,14 @@ var require_dist_node14 = __commonJS({ var __toCommonJS2 = (mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod); var dist_src_exports = {}; __export2(dist_src_exports, { - RequestError: () => RequestError + RequestError: () => RequestError2 }); module2.exports = __toCommonJS2(dist_src_exports); var import_deprecation = require_dist_node3(); var import_once = __toESM2(require_once()); var logOnceCode = (0, import_once.default)((deprecation) => console.warn(deprecation)); var logOnceHeaders = (0, import_once.default)((deprecation) => console.warn(deprecation)); - var RequestError = class extends Error { + var RequestError2 = class extends Error { constructor(message, statusCode, options) { super(message); if (Error.captureStackTrace) { @@ -33854,7 +33855,7 @@ var require_dist_node15 = __commonJS({ throw error2; } var import_light = __toESM2(require_light()); - var import_request_error = require_dist_node14(); + var import_request_error2 = require_dist_node14(); async function wrapRequest(state, octokit, request, options) { const limiter = new import_light.default(); limiter.on("failed", function(error2, info4) { @@ -33875,7 +33876,7 @@ var require_dist_node15 = __commonJS({ if (response.data && response.data.errors && response.data.errors.length > 0 && /Something went wrong while executing your query/.test( response.data.errors[0].message )) { - const error2 = new import_request_error.RequestError(response.data.errors[0].message, 500, { + const error2 = new import_request_error2.RequestError(response.data.errors[0].message, 500, { request: options, response }); @@ -90370,6 +90371,45 @@ var path14 = __toESM(require("path")); var core10 = __toESM(require_core()); var toolrunner3 = __toESM(require_toolrunner()); +// node_modules/@octokit/request-error/dist-src/index.js +var RequestError = class extends Error { + name; + /** + * http status code + */ + status; + /** + * Request options that lead to the error. + */ + request; + /** + * Response object if a response was received + */ + response; + constructor(message, statusCode, options) { + super(message); + this.name = "HttpError"; + this.status = Number.parseInt(statusCode); + if (Number.isNaN(this.status)) { + this.status = 0; + } + if ("response" in options) { + this.response = options.response; + } + const requestCopy = Object.assign({}, options.request); + if (options.request.headers.authorization) { + requestCopy.headers = Object.assign({}, options.request.headers, { + authorization: options.request.headers.authorization.replace( + /(? __copyProps2(__defProp2({}, "__esModule", { value: true }), mod); var dist_src_exports = {}; __export2(dist_src_exports, { - RequestError: () => RequestError + RequestError: () => RequestError2 }); module2.exports = __toCommonJS2(dist_src_exports); var import_deprecation = require_dist_node3(); var import_once = __toESM2(require_once()); var logOnceCode = (0, import_once.default)((deprecation) => console.warn(deprecation)); var logOnceHeaders = (0, import_once.default)((deprecation) => console.warn(deprecation)); - var RequestError = class extends Error { + var RequestError2 = class extends Error { constructor(message, statusCode, options) { super(message); if (Error.captureStackTrace) { @@ -20701,7 +20701,7 @@ var require_dist_node5 = __commonJS({ const Ctor = Object.prototype.hasOwnProperty.call(proto, "constructor") && proto.constructor; return typeof Ctor === "function" && Ctor instanceof Ctor && Function.prototype.call(Ctor) === Function.prototype.call(value); } - var import_request_error = require_dist_node4(); + var import_request_error2 = require_dist_node4(); function getBufferResponse(response) { return response.arrayBuffer(); } @@ -20753,7 +20753,7 @@ var require_dist_node5 = __commonJS({ if (status < 400) { return; } - throw new import_request_error.RequestError(response.statusText, status, { + throw new import_request_error2.RequestError(response.statusText, status, { response: { url: url2, status, @@ -20764,7 +20764,7 @@ var require_dist_node5 = __commonJS({ }); } if (status === 304) { - throw new import_request_error.RequestError("Not modified", status, { + throw new import_request_error2.RequestError("Not modified", status, { response: { url: url2, status, @@ -20776,7 +20776,7 @@ var require_dist_node5 = __commonJS({ } if (status >= 400) { const data = await getResponseData(response); - const error2 = new import_request_error.RequestError(toErrorMessage(data), status, { + const error2 = new import_request_error2.RequestError(toErrorMessage(data), status, { response: { url: url2, status, @@ -20796,7 +20796,7 @@ var require_dist_node5 = __commonJS({ data }; }).catch((error2) => { - if (error2 instanceof import_request_error.RequestError) + if (error2 instanceof import_request_error2.RequestError) throw error2; else if (error2.name === "AbortError") throw error2; @@ -20808,7 +20808,7 @@ var require_dist_node5 = __commonJS({ message = error2.cause; } } - throw new import_request_error.RequestError(message, 500, { + throw new import_request_error2.RequestError(message, 500, { request: requestOptions }); }); @@ -21250,14 +21250,14 @@ var require_dist_node7 = __commonJS({ var __toCommonJS2 = (mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod); var dist_src_exports = {}; __export2(dist_src_exports, { - RequestError: () => RequestError + RequestError: () => RequestError2 }); module2.exports = __toCommonJS2(dist_src_exports); var import_deprecation = require_dist_node3(); var import_once = __toESM2(require_once()); var logOnceCode = (0, import_once.default)((deprecation) => console.warn(deprecation)); var logOnceHeaders = (0, import_once.default)((deprecation) => console.warn(deprecation)); - var RequestError = class extends Error { + var RequestError2 = class extends Error { constructor(message, statusCode, options) { super(message); if (Error.captureStackTrace) { @@ -21349,7 +21349,7 @@ var require_dist_node8 = __commonJS({ const Ctor = Object.prototype.hasOwnProperty.call(proto, "constructor") && proto.constructor; return typeof Ctor === "function" && Ctor instanceof Ctor && Function.prototype.call(Ctor) === Function.prototype.call(value); } - var import_request_error = require_dist_node7(); + var import_request_error2 = require_dist_node7(); function getBufferResponse(response) { return response.arrayBuffer(); } @@ -21401,7 +21401,7 @@ var require_dist_node8 = __commonJS({ if (status < 400) { return; } - throw new import_request_error.RequestError(response.statusText, status, { + throw new import_request_error2.RequestError(response.statusText, status, { response: { url: url2, status, @@ -21412,7 +21412,7 @@ var require_dist_node8 = __commonJS({ }); } if (status === 304) { - throw new import_request_error.RequestError("Not modified", status, { + throw new import_request_error2.RequestError("Not modified", status, { response: { url: url2, status, @@ -21424,7 +21424,7 @@ var require_dist_node8 = __commonJS({ } if (status >= 400) { const data = await getResponseData(response); - const error2 = new import_request_error.RequestError(toErrorMessage(data), status, { + const error2 = new import_request_error2.RequestError(toErrorMessage(data), status, { response: { url: url2, status, @@ -21444,7 +21444,7 @@ var require_dist_node8 = __commonJS({ data }; }).catch((error2) => { - if (error2 instanceof import_request_error.RequestError) + if (error2 instanceof import_request_error2.RequestError) throw error2; else if (error2.name === "AbortError") throw error2; @@ -21456,7 +21456,7 @@ var require_dist_node8 = __commonJS({ message = error2.cause; } } - throw new import_request_error.RequestError(message, 500, { + throw new import_request_error2.RequestError(message, 500, { request: requestOptions }); }); @@ -32322,6 +32322,7 @@ var require_package = __commonJS({ "@actions/io": "^1.1.3", "@actions/tool-cache": "^2.0.2", "@octokit/plugin-retry": "^6.0.0", + "@octokit/request-error": "^7.0.1", "@schemastore/package": "0.0.10", archiver: "^7.0.1", "check-disk-space": "^3.4.0", @@ -33745,14 +33746,14 @@ var require_dist_node14 = __commonJS({ var __toCommonJS2 = (mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod); var dist_src_exports = {}; __export2(dist_src_exports, { - RequestError: () => RequestError + RequestError: () => RequestError2 }); module2.exports = __toCommonJS2(dist_src_exports); var import_deprecation = require_dist_node3(); var import_once = __toESM2(require_once()); var logOnceCode = (0, import_once.default)((deprecation) => console.warn(deprecation)); var logOnceHeaders = (0, import_once.default)((deprecation) => console.warn(deprecation)); - var RequestError = class extends Error { + var RequestError2 = class extends Error { constructor(message, statusCode, options) { super(message); if (Error.captureStackTrace) { @@ -33854,7 +33855,7 @@ var require_dist_node15 = __commonJS({ throw error2; } var import_light = __toESM2(require_light()); - var import_request_error = require_dist_node14(); + var import_request_error2 = require_dist_node14(); async function wrapRequest(state, octokit, request, options) { const limiter = new import_light.default(); limiter.on("failed", function(error2, info5) { @@ -33875,7 +33876,7 @@ var require_dist_node15 = __commonJS({ if (response.data && response.data.errors && response.data.errors.length > 0 && /Something went wrong while executing your query/.test( response.data.errors[0].message )) { - const error2 = new import_request_error.RequestError(response.data.errors[0].message, 500, { + const error2 = new import_request_error2.RequestError(response.data.errors[0].message, 500, { request: options, response }); @@ -111944,7 +111945,7 @@ var require_dist_node17 = __commonJS({ var once2 = _interopDefault(require_once()); var logOnceCode = once2((deprecation2) => console.warn(deprecation2)); var logOnceHeaders = once2((deprecation2) => console.warn(deprecation2)); - var RequestError = class extends Error { + var RequestError2 = class extends Error { constructor(message, statusCode, options) { super(message); if (Error.captureStackTrace) { @@ -111982,7 +111983,7 @@ var require_dist_node17 = __commonJS({ }); } }; - exports2.RequestError = RequestError; + exports2.RequestError = RequestError2; } }); @@ -128601,6 +128602,45 @@ var path13 = __toESM(require("path")); var core10 = __toESM(require_core()); var toolrunner3 = __toESM(require_toolrunner()); +// node_modules/@octokit/request-error/dist-src/index.js +var RequestError = class extends Error { + name; + /** + * http status code + */ + status; + /** + * Request options that lead to the error. + */ + request; + /** + * Response object if a response was received + */ + response; + constructor(message, statusCode, options) { + super(message); + this.name = "HttpError"; + this.status = Number.parseInt(statusCode); + if (Number.isNaN(this.status)) { + this.status = 0; + } + if ("response" in options) { + this.response = options.response; + } + const requestCopy = Object.assign({}, options.request); + if (options.request.headers.authorization) { + requestCopy.headers = Object.assign({}, options.request.headers, { + authorization: options.request.headers.authorization.replace( + /(? __copyProps2(__defProp2({}, "__esModule", { value: true }), mod); var dist_src_exports = {}; __export2(dist_src_exports, { - RequestError: () => RequestError + RequestError: () => RequestError2 }); module2.exports = __toCommonJS2(dist_src_exports); var import_deprecation = require_dist_node3(); var import_once = __toESM2(require_once()); var logOnceCode = (0, import_once.default)((deprecation) => console.warn(deprecation)); var logOnceHeaders = (0, import_once.default)((deprecation) => console.warn(deprecation)); - var RequestError = class extends Error { + var RequestError2 = class extends Error { constructor(message, statusCode, options) { super(message); if (Error.captureStackTrace) { @@ -22609,7 +22609,7 @@ var require_dist_node5 = __commonJS({ const Ctor = Object.prototype.hasOwnProperty.call(proto, "constructor") && proto.constructor; return typeof Ctor === "function" && Ctor instanceof Ctor && Function.prototype.call(Ctor) === Function.prototype.call(value); } - var import_request_error = require_dist_node4(); + var import_request_error2 = require_dist_node4(); function getBufferResponse(response) { return response.arrayBuffer(); } @@ -22661,7 +22661,7 @@ var require_dist_node5 = __commonJS({ if (status < 400) { return; } - throw new import_request_error.RequestError(response.statusText, status, { + throw new import_request_error2.RequestError(response.statusText, status, { response: { url, status, @@ -22672,7 +22672,7 @@ var require_dist_node5 = __commonJS({ }); } if (status === 304) { - throw new import_request_error.RequestError("Not modified", status, { + throw new import_request_error2.RequestError("Not modified", status, { response: { url, status, @@ -22684,7 +22684,7 @@ var require_dist_node5 = __commonJS({ } if (status >= 400) { const data = await getResponseData(response); - const error2 = new import_request_error.RequestError(toErrorMessage(data), status, { + const error2 = new import_request_error2.RequestError(toErrorMessage(data), status, { response: { url, status, @@ -22704,7 +22704,7 @@ var require_dist_node5 = __commonJS({ data }; }).catch((error2) => { - if (error2 instanceof import_request_error.RequestError) + if (error2 instanceof import_request_error2.RequestError) throw error2; else if (error2.name === "AbortError") throw error2; @@ -22716,7 +22716,7 @@ var require_dist_node5 = __commonJS({ message = error2.cause; } } - throw new import_request_error.RequestError(message, 500, { + throw new import_request_error2.RequestError(message, 500, { request: requestOptions }); }); @@ -23158,14 +23158,14 @@ var require_dist_node7 = __commonJS({ var __toCommonJS2 = (mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod); var dist_src_exports = {}; __export2(dist_src_exports, { - RequestError: () => RequestError + RequestError: () => RequestError2 }); module2.exports = __toCommonJS2(dist_src_exports); var import_deprecation = require_dist_node3(); var import_once = __toESM2(require_once()); var logOnceCode = (0, import_once.default)((deprecation) => console.warn(deprecation)); var logOnceHeaders = (0, import_once.default)((deprecation) => console.warn(deprecation)); - var RequestError = class extends Error { + var RequestError2 = class extends Error { constructor(message, statusCode, options) { super(message); if (Error.captureStackTrace) { @@ -23257,7 +23257,7 @@ var require_dist_node8 = __commonJS({ const Ctor = Object.prototype.hasOwnProperty.call(proto, "constructor") && proto.constructor; return typeof Ctor === "function" && Ctor instanceof Ctor && Function.prototype.call(Ctor) === Function.prototype.call(value); } - var import_request_error = require_dist_node7(); + var import_request_error2 = require_dist_node7(); function getBufferResponse(response) { return response.arrayBuffer(); } @@ -23309,7 +23309,7 @@ var require_dist_node8 = __commonJS({ if (status < 400) { return; } - throw new import_request_error.RequestError(response.statusText, status, { + throw new import_request_error2.RequestError(response.statusText, status, { response: { url, status, @@ -23320,7 +23320,7 @@ var require_dist_node8 = __commonJS({ }); } if (status === 304) { - throw new import_request_error.RequestError("Not modified", status, { + throw new import_request_error2.RequestError("Not modified", status, { response: { url, status, @@ -23332,7 +23332,7 @@ var require_dist_node8 = __commonJS({ } if (status >= 400) { const data = await getResponseData(response); - const error2 = new import_request_error.RequestError(toErrorMessage(data), status, { + const error2 = new import_request_error2.RequestError(toErrorMessage(data), status, { response: { url, status, @@ -23352,7 +23352,7 @@ var require_dist_node8 = __commonJS({ data }; }).catch((error2) => { - if (error2 instanceof import_request_error.RequestError) + if (error2 instanceof import_request_error2.RequestError) throw error2; else if (error2.name === "AbortError") throw error2; @@ -23364,7 +23364,7 @@ var require_dist_node8 = __commonJS({ message = error2.cause; } } - throw new import_request_error.RequestError(message, 500, { + throw new import_request_error2.RequestError(message, 500, { request: requestOptions }); }); @@ -32322,6 +32322,7 @@ var require_package = __commonJS({ "@actions/io": "^1.1.3", "@actions/tool-cache": "^2.0.2", "@octokit/plugin-retry": "^6.0.0", + "@octokit/request-error": "^7.0.1", "@schemastore/package": "0.0.10", archiver: "^7.0.1", "check-disk-space": "^3.4.0", @@ -33745,14 +33746,14 @@ var require_dist_node14 = __commonJS({ var __toCommonJS2 = (mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod); var dist_src_exports = {}; __export2(dist_src_exports, { - RequestError: () => RequestError + RequestError: () => RequestError2 }); module2.exports = __toCommonJS2(dist_src_exports); var import_deprecation = require_dist_node3(); var import_once = __toESM2(require_once()); var logOnceCode = (0, import_once.default)((deprecation) => console.warn(deprecation)); var logOnceHeaders = (0, import_once.default)((deprecation) => console.warn(deprecation)); - var RequestError = class extends Error { + var RequestError2 = class extends Error { constructor(message, statusCode, options) { super(message); if (Error.captureStackTrace) { @@ -33854,7 +33855,7 @@ var require_dist_node15 = __commonJS({ throw error2; } var import_light = __toESM2(require_light()); - var import_request_error = require_dist_node14(); + var import_request_error2 = require_dist_node14(); async function wrapRequest(state, octokit, request, options) { const limiter = new import_light.default(); limiter.on("failed", function(error2, info4) { @@ -33875,7 +33876,7 @@ var require_dist_node15 = __commonJS({ if (response.data && response.data.errors && response.data.errors.length > 0 && /Something went wrong while executing your query/.test( response.data.errors[0].message )) { - const error2 = new import_request_error.RequestError(response.data.errors[0].message, 500, { + const error2 = new import_request_error2.RequestError(response.data.errors[0].message, 500, { request: options, response }); @@ -88333,6 +88334,45 @@ var path16 = __toESM(require("path")); var core10 = __toESM(require_core()); var toolrunner3 = __toESM(require_toolrunner()); +// node_modules/@octokit/request-error/dist-src/index.js +var RequestError = class extends Error { + name; + /** + * http status code + */ + status; + /** + * Request options that lead to the error. + */ + request; + /** + * Response object if a response was received + */ + response; + constructor(message, statusCode, options) { + super(message); + this.name = "HttpError"; + this.status = Number.parseInt(statusCode); + if (Number.isNaN(this.status)) { + this.status = 0; + } + if ("response" in options) { + this.response = options.response; + } + const requestCopy = Object.assign({}, options.request); + if (options.request.headers.authorization) { + requestCopy.headers = Object.assign({}, options.request.headers, { + authorization: options.request.headers.authorization.replace( + /(? __copyProps2(__defProp2({}, "__esModule", { value: true }), mod); var dist_src_exports = {}; __export2(dist_src_exports, { - RequestError: () => RequestError + RequestError: () => RequestError2 }); module2.exports = __toCommonJS2(dist_src_exports); var import_deprecation = require_dist_node3(); var import_once = __toESM2(require_once()); var logOnceCode = (0, import_once.default)((deprecation) => console.warn(deprecation)); var logOnceHeaders = (0, import_once.default)((deprecation) => console.warn(deprecation)); - var RequestError = class extends Error { + var RequestError2 = class extends Error { constructor(message, statusCode, options) { super(message); if (Error.captureStackTrace) { @@ -21998,7 +21998,7 @@ var require_dist_node5 = __commonJS({ const Ctor = Object.prototype.hasOwnProperty.call(proto, "constructor") && proto.constructor; return typeof Ctor === "function" && Ctor instanceof Ctor && Function.prototype.call(Ctor) === Function.prototype.call(value); } - var import_request_error = require_dist_node4(); + var import_request_error2 = require_dist_node4(); function getBufferResponse(response) { return response.arrayBuffer(); } @@ -22050,7 +22050,7 @@ var require_dist_node5 = __commonJS({ if (status < 400) { return; } - throw new import_request_error.RequestError(response.statusText, status, { + throw new import_request_error2.RequestError(response.statusText, status, { response: { url: url2, status, @@ -22061,7 +22061,7 @@ var require_dist_node5 = __commonJS({ }); } if (status === 304) { - throw new import_request_error.RequestError("Not modified", status, { + throw new import_request_error2.RequestError("Not modified", status, { response: { url: url2, status, @@ -22073,7 +22073,7 @@ var require_dist_node5 = __commonJS({ } if (status >= 400) { const data = await getResponseData(response); - const error2 = new import_request_error.RequestError(toErrorMessage(data), status, { + const error2 = new import_request_error2.RequestError(toErrorMessage(data), status, { response: { url: url2, status, @@ -22093,7 +22093,7 @@ var require_dist_node5 = __commonJS({ data }; }).catch((error2) => { - if (error2 instanceof import_request_error.RequestError) + if (error2 instanceof import_request_error2.RequestError) throw error2; else if (error2.name === "AbortError") throw error2; @@ -22105,7 +22105,7 @@ var require_dist_node5 = __commonJS({ message = error2.cause; } } - throw new import_request_error.RequestError(message, 500, { + throw new import_request_error2.RequestError(message, 500, { request: requestOptions }); }); @@ -22547,14 +22547,14 @@ var require_dist_node7 = __commonJS({ var __toCommonJS2 = (mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod); var dist_src_exports = {}; __export2(dist_src_exports, { - RequestError: () => RequestError + RequestError: () => RequestError2 }); module2.exports = __toCommonJS2(dist_src_exports); var import_deprecation = require_dist_node3(); var import_once = __toESM2(require_once()); var logOnceCode = (0, import_once.default)((deprecation) => console.warn(deprecation)); var logOnceHeaders = (0, import_once.default)((deprecation) => console.warn(deprecation)); - var RequestError = class extends Error { + var RequestError2 = class extends Error { constructor(message, statusCode, options) { super(message); if (Error.captureStackTrace) { @@ -22646,7 +22646,7 @@ var require_dist_node8 = __commonJS({ const Ctor = Object.prototype.hasOwnProperty.call(proto, "constructor") && proto.constructor; return typeof Ctor === "function" && Ctor instanceof Ctor && Function.prototype.call(Ctor) === Function.prototype.call(value); } - var import_request_error = require_dist_node7(); + var import_request_error2 = require_dist_node7(); function getBufferResponse(response) { return response.arrayBuffer(); } @@ -22698,7 +22698,7 @@ var require_dist_node8 = __commonJS({ if (status < 400) { return; } - throw new import_request_error.RequestError(response.statusText, status, { + throw new import_request_error2.RequestError(response.statusText, status, { response: { url: url2, status, @@ -22709,7 +22709,7 @@ var require_dist_node8 = __commonJS({ }); } if (status === 304) { - throw new import_request_error.RequestError("Not modified", status, { + throw new import_request_error2.RequestError("Not modified", status, { response: { url: url2, status, @@ -22721,7 +22721,7 @@ var require_dist_node8 = __commonJS({ } if (status >= 400) { const data = await getResponseData(response); - const error2 = new import_request_error.RequestError(toErrorMessage(data), status, { + const error2 = new import_request_error2.RequestError(toErrorMessage(data), status, { response: { url: url2, status, @@ -22741,7 +22741,7 @@ var require_dist_node8 = __commonJS({ data }; }).catch((error2) => { - if (error2 instanceof import_request_error.RequestError) + if (error2 instanceof import_request_error2.RequestError) throw error2; else if (error2.name === "AbortError") throw error2; @@ -22753,7 +22753,7 @@ var require_dist_node8 = __commonJS({ message = error2.cause; } } - throw new import_request_error.RequestError(message, 500, { + throw new import_request_error2.RequestError(message, 500, { request: requestOptions }); }); @@ -33619,6 +33619,7 @@ var require_package = __commonJS({ "@actions/io": "^1.1.3", "@actions/tool-cache": "^2.0.2", "@octokit/plugin-retry": "^6.0.0", + "@octokit/request-error": "^7.0.1", "@schemastore/package": "0.0.10", archiver: "^7.0.1", "check-disk-space": "^3.4.0", @@ -35042,14 +35043,14 @@ var require_dist_node14 = __commonJS({ var __toCommonJS2 = (mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod); var dist_src_exports = {}; __export2(dist_src_exports, { - RequestError: () => RequestError + RequestError: () => RequestError2 }); module2.exports = __toCommonJS2(dist_src_exports); var import_deprecation = require_dist_node3(); var import_once = __toESM2(require_once()); var logOnceCode = (0, import_once.default)((deprecation) => console.warn(deprecation)); var logOnceHeaders = (0, import_once.default)((deprecation) => console.warn(deprecation)); - var RequestError = class extends Error { + var RequestError2 = class extends Error { constructor(message, statusCode, options) { super(message); if (Error.captureStackTrace) { @@ -35151,7 +35152,7 @@ var require_dist_node15 = __commonJS({ throw error2; } var import_light = __toESM2(require_light()); - var import_request_error = require_dist_node14(); + var import_request_error2 = require_dist_node14(); async function wrapRequest(state, octokit, request, options) { const limiter = new import_light.default(); limiter.on("failed", function(error2, info4) { @@ -35172,7 +35173,7 @@ var require_dist_node15 = __commonJS({ if (response.data && response.data.errors && response.data.errors.length > 0 && /Something went wrong while executing your query/.test( response.data.errors[0].message )) { - const error2 = new import_request_error.RequestError(response.data.errors[0].message, 500, { + const error2 = new import_request_error2.RequestError(response.data.errors[0].message, 500, { request: options, response }); @@ -88741,6 +88742,45 @@ var path12 = __toESM(require("path")); var core10 = __toESM(require_core()); var toolrunner3 = __toESM(require_toolrunner()); +// node_modules/@octokit/request-error/dist-src/index.js +var RequestError = class extends Error { + name; + /** + * http status code + */ + status; + /** + * Request options that lead to the error. + */ + request; + /** + * Response object if a response was received + */ + response; + constructor(message, statusCode, options) { + super(message); + this.name = "HttpError"; + this.status = Number.parseInt(statusCode); + if (Number.isNaN(this.status)) { + this.status = 0; + } + if ("response" in options) { + this.response = options.response; + } + const requestCopy = Object.assign({}, options.request); + if (options.request.headers.authorization) { + requestCopy.headers = Object.assign({}, options.request.headers, { + authorization: options.request.headers.authorization.replace( + /(? __copyProps2(__defProp2({}, "__esModule", { value: true }), mod); var dist_src_exports = {}; __export2(dist_src_exports, { - RequestError: () => RequestError + RequestError: () => RequestError2 }); module2.exports = __toCommonJS2(dist_src_exports); var import_deprecation = require_dist_node3(); var import_once = __toESM2(require_once()); var logOnceCode = (0, import_once.default)((deprecation) => console.warn(deprecation)); var logOnceHeaders = (0, import_once.default)((deprecation) => console.warn(deprecation)); - var RequestError = class extends Error { + var RequestError2 = class extends Error { constructor(message, statusCode, options) { super(message); if (Error.captureStackTrace) { @@ -20701,7 +20701,7 @@ var require_dist_node5 = __commonJS({ const Ctor = Object.prototype.hasOwnProperty.call(proto, "constructor") && proto.constructor; return typeof Ctor === "function" && Ctor instanceof Ctor && Function.prototype.call(Ctor) === Function.prototype.call(value); } - var import_request_error = require_dist_node4(); + var import_request_error2 = require_dist_node4(); function getBufferResponse(response) { return response.arrayBuffer(); } @@ -20753,7 +20753,7 @@ var require_dist_node5 = __commonJS({ if (status < 400) { return; } - throw new import_request_error.RequestError(response.statusText, status, { + throw new import_request_error2.RequestError(response.statusText, status, { response: { url: url2, status, @@ -20764,7 +20764,7 @@ var require_dist_node5 = __commonJS({ }); } if (status === 304) { - throw new import_request_error.RequestError("Not modified", status, { + throw new import_request_error2.RequestError("Not modified", status, { response: { url: url2, status, @@ -20776,7 +20776,7 @@ var require_dist_node5 = __commonJS({ } if (status >= 400) { const data = await getResponseData(response); - const error2 = new import_request_error.RequestError(toErrorMessage(data), status, { + const error2 = new import_request_error2.RequestError(toErrorMessage(data), status, { response: { url: url2, status, @@ -20796,7 +20796,7 @@ var require_dist_node5 = __commonJS({ data }; }).catch((error2) => { - if (error2 instanceof import_request_error.RequestError) + if (error2 instanceof import_request_error2.RequestError) throw error2; else if (error2.name === "AbortError") throw error2; @@ -20808,7 +20808,7 @@ var require_dist_node5 = __commonJS({ message = error2.cause; } } - throw new import_request_error.RequestError(message, 500, { + throw new import_request_error2.RequestError(message, 500, { request: requestOptions }); }); @@ -21250,14 +21250,14 @@ var require_dist_node7 = __commonJS({ var __toCommonJS2 = (mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod); var dist_src_exports = {}; __export2(dist_src_exports, { - RequestError: () => RequestError + RequestError: () => RequestError2 }); module2.exports = __toCommonJS2(dist_src_exports); var import_deprecation = require_dist_node3(); var import_once = __toESM2(require_once()); var logOnceCode = (0, import_once.default)((deprecation) => console.warn(deprecation)); var logOnceHeaders = (0, import_once.default)((deprecation) => console.warn(deprecation)); - var RequestError = class extends Error { + var RequestError2 = class extends Error { constructor(message, statusCode, options) { super(message); if (Error.captureStackTrace) { @@ -21349,7 +21349,7 @@ var require_dist_node8 = __commonJS({ const Ctor = Object.prototype.hasOwnProperty.call(proto, "constructor") && proto.constructor; return typeof Ctor === "function" && Ctor instanceof Ctor && Function.prototype.call(Ctor) === Function.prototype.call(value); } - var import_request_error = require_dist_node7(); + var import_request_error2 = require_dist_node7(); function getBufferResponse(response) { return response.arrayBuffer(); } @@ -21401,7 +21401,7 @@ var require_dist_node8 = __commonJS({ if (status < 400) { return; } - throw new import_request_error.RequestError(response.statusText, status, { + throw new import_request_error2.RequestError(response.statusText, status, { response: { url: url2, status, @@ -21412,7 +21412,7 @@ var require_dist_node8 = __commonJS({ }); } if (status === 304) { - throw new import_request_error.RequestError("Not modified", status, { + throw new import_request_error2.RequestError("Not modified", status, { response: { url: url2, status, @@ -21424,7 +21424,7 @@ var require_dist_node8 = __commonJS({ } if (status >= 400) { const data = await getResponseData(response); - const error2 = new import_request_error.RequestError(toErrorMessage(data), status, { + const error2 = new import_request_error2.RequestError(toErrorMessage(data), status, { response: { url: url2, status, @@ -21444,7 +21444,7 @@ var require_dist_node8 = __commonJS({ data }; }).catch((error2) => { - if (error2 instanceof import_request_error.RequestError) + if (error2 instanceof import_request_error2.RequestError) throw error2; else if (error2.name === "AbortError") throw error2; @@ -21456,7 +21456,7 @@ var require_dist_node8 = __commonJS({ message = error2.cause; } } - throw new import_request_error.RequestError(message, 500, { + throw new import_request_error2.RequestError(message, 500, { request: requestOptions }); }); @@ -32322,6 +32322,7 @@ var require_package = __commonJS({ "@actions/io": "^1.1.3", "@actions/tool-cache": "^2.0.2", "@octokit/plugin-retry": "^6.0.0", + "@octokit/request-error": "^7.0.1", "@schemastore/package": "0.0.10", archiver: "^7.0.1", "check-disk-space": "^3.4.0", @@ -33745,14 +33746,14 @@ var require_dist_node14 = __commonJS({ var __toCommonJS2 = (mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod); var dist_src_exports = {}; __export2(dist_src_exports, { - RequestError: () => RequestError + RequestError: () => RequestError2 }); module2.exports = __toCommonJS2(dist_src_exports); var import_deprecation = require_dist_node3(); var import_once = __toESM2(require_once()); var logOnceCode = (0, import_once.default)((deprecation) => console.warn(deprecation)); var logOnceHeaders = (0, import_once.default)((deprecation) => console.warn(deprecation)); - var RequestError = class extends Error { + var RequestError2 = class extends Error { constructor(message, statusCode, options) { super(message); if (Error.captureStackTrace) { @@ -33854,7 +33855,7 @@ var require_dist_node15 = __commonJS({ throw error2; } var import_light = __toESM2(require_light()); - var import_request_error = require_dist_node14(); + var import_request_error2 = require_dist_node14(); async function wrapRequest(state, octokit, request, options) { const limiter = new import_light.default(); limiter.on("failed", function(error2, info4) { @@ -33875,7 +33876,7 @@ var require_dist_node15 = __commonJS({ if (response.data && response.data.errors && response.data.errors.length > 0 && /Something went wrong while executing your query/.test( response.data.errors[0].message )) { - const error2 = new import_request_error.RequestError(response.data.errors[0].message, 500, { + const error2 = new import_request_error2.RequestError(response.data.errors[0].message, 500, { request: options, response }); @@ -89989,6 +89990,45 @@ var path13 = __toESM(require("path")); var core11 = __toESM(require_core()); var toolrunner3 = __toESM(require_toolrunner()); +// node_modules/@octokit/request-error/dist-src/index.js +var RequestError = class extends Error { + name; + /** + * http status code + */ + status; + /** + * Request options that lead to the error. + */ + request; + /** + * Response object if a response was received + */ + response; + constructor(message, statusCode, options) { + super(message); + this.name = "HttpError"; + this.status = Number.parseInt(statusCode); + if (Number.isNaN(this.status)) { + this.status = 0; + } + if ("response" in options) { + this.response = options.response; + } + const requestCopy = Object.assign({}, options.request); + if (options.request.headers.authorization) { + requestCopy.headers = Object.assign({}, options.request.headers, { + authorization: options.request.headers.authorization.replace( + /(?= 20" } }, - "node_modules/@octokit/request-error/node_modules/@octokit/openapi-types": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-25.1.0.tgz", - "integrity": "sha512-idsIggNXUKkk0+BExUn1dQ92sfysJrje03Q0bv0e+KPLrvyqZF8MnBpFz8UNfYDwB3Ie7Z0TByjWfzxt7vseaA==", - "license": "MIT" - }, - "node_modules/@octokit/request-error/node_modules/@octokit/types": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-14.1.0.tgz", - "integrity": "sha512-1y6DgTy8Jomcpu33N+p5w58l6xyt55Ar2I91RPiIA0xCJBXyUAhXCcmZaDWSANiha7R9a6qJJ2CRomGPZ6f46g==", - "license": "MIT", - "dependencies": { - "@octokit/openapi-types": "^25.1.0" - } - }, "node_modules/@octokit/request/node_modules/@octokit/openapi-types": { "version": "25.1.0", "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-25.1.0.tgz", @@ -2348,7 +2334,6 @@ "version": "15.0.0", "resolved": "https://registry.npmjs.org/@octokit/types/-/types-15.0.0.tgz", "integrity": "sha512-8o6yDfmoGJUIeR9OfYU0/TUJTnMPG2r68+1yEdUeG2Fdqpj8Qetg0ziKIgcBm0RW/j29H41WP37CYCEhp6GoHQ==", - "dev": true, "license": "MIT", "dependencies": { "@octokit/openapi-types": "^26.0.0" diff --git a/package.json b/package.json index 2c7737ce4..8e6cccfb0 100644 --- a/package.json +++ b/package.json @@ -35,6 +35,7 @@ "@actions/io": "^1.1.3", "@actions/tool-cache": "^2.0.2", "@octokit/plugin-retry": "^6.0.0", + "@octokit/request-error": "^7.0.1", "@schemastore/package": "0.0.10", "archiver": "^7.0.1", "check-disk-space": "^3.4.0", diff --git a/src/codeql.ts b/src/codeql.ts index 16b105a3d..5241ff247 100644 --- a/src/codeql.ts +++ b/src/codeql.ts @@ -3,6 +3,7 @@ import * as path from "path"; import * as core from "@actions/core"; import * as toolrunner from "@actions/exec/lib/toolrunner"; +import { RequestError } from "@octokit/request-error"; import * as yaml from "js-yaml"; import { @@ -370,7 +371,8 @@ export async function setupCodeQL( } catch (e) { const ErrorClass = e instanceof util.ConfigurationError || - (e instanceof Error && e.message.includes("ENOSPC")) // out of disk space + (e instanceof Error && e.message.includes("ENOSPC")) || // out of disk space + (e instanceof RequestError && e.status === 429) // rate limited ? util.ConfigurationError : Error;