From 07dc94940e1af55d7da55811119e389c5acac178 Mon Sep 17 00:00:00 2001 From: Henry Mercer Date: Tue, 22 Sep 2026 16:07:07 +0100 Subject: [PATCH 1/7] Use default state in per-language bundle tests Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- src/per-language-bundles.test.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/per-language-bundles.test.ts b/src/per-language-bundles.test.ts index b8f48512fe..0330b51a63 100644 --- a/src/per-language-bundles.test.ts +++ b/src/per-language-bundles.test.ts @@ -38,7 +38,6 @@ async function checkEligibility( [ActionsEnvVars.RUNNER_ENVIRONMENT]: "github-hosted", }), features: createFeatures([Feature.PerLanguageBundles]), - logger: getRecordingLogger([], { logToConsole: false }), ...stateOverrides, }), { ...ELIGIBLE_OPTIONS, ...overrides }, @@ -134,7 +133,6 @@ test("getPerLanguageBundleLanguage explains a disabled feature before checking e const messages: LoggedMessage[] = []; const language = await getPerLanguageBundleLanguage( initAllState({ - env: getTestEnv(), features: createFeatures([]), logger: getRecordingLogger(messages, { logToConsole: false }), }), From 06344e2ba1565124d7acef663be8ff3b6f42643f Mon Sep 17 00:00:00 2001 From: Henry Mercer Date: Tue, 22 Sep 2026 16:07:09 +0100 Subject: [PATCH 2/7] Stub nightly release listing directly Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- src/setup-codeql.test.ts | 36 ++++++++++++++++++++---------------- 1 file changed, 20 insertions(+), 16 deletions(-) diff --git a/src/setup-codeql.test.ts b/src/setup-codeql.test.ts index c35bdb8406..6ac5bebf18 100644 --- a/src/setup-codeql.test.ts +++ b/src/setup-codeql.test.ts @@ -69,25 +69,29 @@ function stubHostedNightly(tagName: string) { available: true, foundZstdBinary: true, }); - const fetchRelease = sinon - .stub, ReturnType>() - .rejects(new Error("Unexpected API request in nightly bundle test")); - fetchRelease - .withArgs( - "https://api.github.com/repos/dsp-testing/codeql-cli-nightlies/releases?per_page=1&page=1&prerelease=true", - sinon.match({ method: "GET" }), - ) - .callsFake( - async () => - new Response(JSON.stringify([{ tag_name: tagName }]), { - headers: { "content-type": "application/json" }, - }), - ); const client = github.getOctokit("123", { - request: { fetch: fetchRelease }, + request: { + fetch: async () => { + throw new Error("Unexpected API request in nightly bundle test"); + }, + }, }); + const listReleases = sinon + .stub(client.rest.repos, "listReleases") + .rejects(new Error("Unexpected release request in nightly bundle test")); + listReleases + .withArgs({ + owner: "dsp-testing", + repo: "codeql-cli-nightlies", + per_page: 1, + page: 1, + prerelease: true, + }) + .resolves({ + data: [{ tag_name: tagName }], + } as Awaited>); sinon.stub(api, "getApiClient").value(() => client); - return fetchRelease; + return listReleases; } test.serial("parse codeql bundle url version", (t) => { From dba87a18dc3eb9d4d09a0585f4148670685519de Mon Sep 17 00:00:00 2001 From: Henry Mercer Date: Tue, 22 Sep 2026 16:07:10 +0100 Subject: [PATCH 3/7] Clarify elapsed-time helper documentation Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- src/util.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/util.ts b/src/util.ts index 456cd7c3d2..d74e07fa8d 100644 --- a/src/util.ts +++ b/src/util.ts @@ -682,7 +682,7 @@ export async function bundleDb( return databaseBundlePath; } -/** Returns the elapsed milliseconds, rounded, since a `performance.now()` timestamp. */ +/** Returns the elapsed milliseconds, rounded, since `startTime` was recorded with `performance.now()`. */ export function durationMsSince(startTime: number): number { return Math.round(performance.now() - startTime); } From a9a8cd1aecbbc419b7b38acc138c3e3cd844b0f9 Mon Sep 17 00:00:00 2001 From: Henry Mercer Date: Tue, 22 Sep 2026 16:07:10 +0100 Subject: [PATCH 4/7] Explain the nightly bundle version-check exception Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- src/per-language-bundles.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/per-language-bundles.ts b/src/per-language-bundles.ts index f4e46403db..35cfa3e0f5 100644 --- a/src/per-language-bundles.ts +++ b/src/per-language-bundles.ts @@ -102,8 +102,9 @@ export async function getPerLanguageBundleLanguage( return explain("the job is not running on a GitHub-hosted runner"); } - // Check whether per-language bundles are published for the requested CLI version. - // Latest-nightly selection skips this release-version check, but not the other eligibility checks. + // If the user requested the latest nightly, skip the version check, as nightlies have shipped + // per-language bundles since https://github.com/dsp-testing/codeql-cli-nightlies/releases/tag/codeql-bundle-20260909. + // Otherwise, check the requested CLI version to determine whether per-language bundles are published. if (!isLatestNightly) { if (cliVersion === undefined) { return explain("the requested CLI version is unknown"); From f2ec2f6267210c6d22b53d32be7048187043bd34 Mon Sep 17 00:00:00 2001 From: Henry Mercer Date: Tue, 22 Sep 2026 16:23:55 +0100 Subject: [PATCH 5/7] Tweak comment for latest nightly version check Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- src/per-language-bundles.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/per-language-bundles.ts b/src/per-language-bundles.ts index 35cfa3e0f5..6f80096834 100644 --- a/src/per-language-bundles.ts +++ b/src/per-language-bundles.ts @@ -102,7 +102,7 @@ export async function getPerLanguageBundleLanguage( return explain("the job is not running on a GitHub-hosted runner"); } - // If the user requested the latest nightly, skip the version check, as nightlies have shipped + // When selecting the latest nightly, skip the version check, as nightlies have shipped // per-language bundles since https://github.com/dsp-testing/codeql-cli-nightlies/releases/tag/codeql-bundle-20260909. // Otherwise, check the requested CLI version to determine whether per-language bundles are published. if (!isLatestNightly) { From 48321b2d4823e75454e91867ded94e394d33343b Mon Sep 17 00:00:00 2001 From: Henry Mercer Date: Tue, 22 Sep 2026 16:49:21 +0100 Subject: [PATCH 6/7] Update src/per-language-bundles.ts Co-authored-by: Michael B. Gale --- src/per-language-bundles.ts | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/per-language-bundles.ts b/src/per-language-bundles.ts index 6f80096834..acdff5c740 100644 --- a/src/per-language-bundles.ts +++ b/src/per-language-bundles.ts @@ -102,9 +102,11 @@ export async function getPerLanguageBundleLanguage( return explain("the job is not running on a GitHub-hosted runner"); } - // When selecting the latest nightly, skip the version check, as nightlies have shipped - // per-language bundles since https://github.com/dsp-testing/codeql-cli-nightlies/releases/tag/codeql-bundle-20260909. - // Otherwise, check the requested CLI version to determine whether per-language bundles are published. + // Nightly releases are identified by dates rather than versions. If + // `isLatestNightly` is `true`, the latest nightly is requested with + // `tools: nightly` and we don't yet have the corresponding tag at this point. + // Therefore, we skip the version check and don't have an equivalent. + // We can safely assume that the latest nightly will have per-language bundles. if (!isLatestNightly) { if (cliVersion === undefined) { return explain("the requested CLI version is unknown"); From 3bacfe2c5b69ecc6f63622003e4ef982bbd5da64 Mon Sep 17 00:00:00 2001 From: Henry Mercer Date: Tue, 22 Sep 2026 16:56:15 +0100 Subject: [PATCH 7/7] Remove trailing whitespace from nightly comment Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- src/per-language-bundles.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/per-language-bundles.ts b/src/per-language-bundles.ts index acdff5c740..e4468d2f34 100644 --- a/src/per-language-bundles.ts +++ b/src/per-language-bundles.ts @@ -102,8 +102,8 @@ export async function getPerLanguageBundleLanguage( return explain("the job is not running on a GitHub-hosted runner"); } - // Nightly releases are identified by dates rather than versions. If - // `isLatestNightly` is `true`, the latest nightly is requested with + // Nightly releases are identified by dates rather than versions. If + // `isLatestNightly` is `true`, the latest nightly is requested with // `tools: nightly` and we don't yet have the corresponding tag at this point. // Therefore, we skip the version check and don't have an equivalent. // We can safely assume that the latest nightly will have per-language bundles.