From 7525c68ea1b9c447eeb392cade7ee92837c299b1 Mon Sep 17 00:00:00 2001 From: Henry Mercer Date: Thu, 7 May 2026 11:01:15 +0100 Subject: [PATCH] Nit: Dedupe languages --- lib/analyze-action.js | 7 ++++--- lib/init-action-post.js | 7 ++++--- lib/init-action.js | 7 ++++--- lib/setup-codeql-action.js | 7 ++++--- lib/upload-lib.js | 7 ++++--- lib/upload-sarif-action.js | 7 ++++--- src/overlay/caching.test.ts | 26 ++++++++++++++++++++++++++ src/overlay/caching.ts | 7 ++++--- 8 files changed, 54 insertions(+), 21 deletions(-) diff --git a/lib/analyze-action.js b/lib/analyze-action.js index 68ca02cf6..0cec7d688 100644 --- a/lib/analyze-action.js +++ b/lib/analyze-action.js @@ -91155,9 +91155,10 @@ async function getCodeQlVersionsForOverlayBaseDatabases(rawLanguages, logger) { ); return void 0; } - const cacheKeyPrefix = await getCacheKeyPrefixBase( - languages.filter((l) => l !== void 0) - ); + const dedupedLanguages = [ + ...new Set(languages.filter((l) => l !== void 0)) + ]; + const cacheKeyPrefix = await getCacheKeyPrefixBase(dedupedLanguages); logger.debug( `Searching for overlay-base databases in Actions cache with prefix ${cacheKeyPrefix}` ); diff --git a/lib/init-action-post.js b/lib/init-action-post.js index 16d0bc507..d2eb3e969 100644 --- a/lib/init-action-post.js +++ b/lib/init-action-post.js @@ -132126,9 +132126,10 @@ async function getCodeQlVersionsForOverlayBaseDatabases(rawLanguages, logger) { ); return void 0; } - const cacheKeyPrefix = await getCacheKeyPrefixBase( - languages.filter((l) => l !== void 0) - ); + const dedupedLanguages = [ + ...new Set(languages.filter((l) => l !== void 0)) + ]; + const cacheKeyPrefix = await getCacheKeyPrefixBase(dedupedLanguages); logger.debug( `Searching for overlay-base databases in Actions cache with prefix ${cacheKeyPrefix}` ); diff --git a/lib/init-action.js b/lib/init-action.js index 7753d29fd..0283461a0 100644 --- a/lib/init-action.js +++ b/lib/init-action.js @@ -90084,9 +90084,10 @@ async function getCodeQlVersionsForOverlayBaseDatabases(rawLanguages, logger) { ); return void 0; } - const cacheKeyPrefix = await getCacheKeyPrefixBase( - languages.filter((l) => l !== void 0) - ); + const dedupedLanguages = [ + ...new Set(languages.filter((l) => l !== void 0)) + ]; + const cacheKeyPrefix = await getCacheKeyPrefixBase(dedupedLanguages); logger.debug( `Searching for overlay-base databases in Actions cache with prefix ${cacheKeyPrefix}` ); diff --git a/lib/setup-codeql-action.js b/lib/setup-codeql-action.js index 64ad2f567..23329efa9 100644 --- a/lib/setup-codeql-action.js +++ b/lib/setup-codeql-action.js @@ -87526,9 +87526,10 @@ async function getCodeQlVersionsForOverlayBaseDatabases(rawLanguages, logger) { ); return void 0; } - const cacheKeyPrefix = await getCacheKeyPrefixBase( - languages.filter((l) => l !== void 0) - ); + const dedupedLanguages = [ + ...new Set(languages.filter((l) => l !== void 0)) + ]; + const cacheKeyPrefix = await getCacheKeyPrefixBase(dedupedLanguages); logger.debug( `Searching for overlay-base databases in Actions cache with prefix ${cacheKeyPrefix}` ); diff --git a/lib/upload-lib.js b/lib/upload-lib.js index 73465a343..b2a5c4269 100644 --- a/lib/upload-lib.js +++ b/lib/upload-lib.js @@ -90181,9 +90181,10 @@ async function getCodeQlVersionsForOverlayBaseDatabases(rawLanguages, logger) { ); return void 0; } - const cacheKeyPrefix = await getCacheKeyPrefixBase( - languages.filter((l) => l !== void 0) - ); + const dedupedLanguages = [ + ...new Set(languages.filter((l) => l !== void 0)) + ]; + const cacheKeyPrefix = await getCacheKeyPrefixBase(dedupedLanguages); logger.debug( `Searching for overlay-base databases in Actions cache with prefix ${cacheKeyPrefix}` ); diff --git a/lib/upload-sarif-action.js b/lib/upload-sarif-action.js index d376638ca..b865d858f 100644 --- a/lib/upload-sarif-action.js +++ b/lib/upload-sarif-action.js @@ -90858,9 +90858,10 @@ async function getCodeQlVersionsForOverlayBaseDatabases(rawLanguages, logger) { ); return void 0; } - const cacheKeyPrefix = await getCacheKeyPrefixBase( - languages.filter((l) => l !== void 0) - ); + const dedupedLanguages = [ + ...new Set(languages.filter((l) => l !== void 0)) + ]; + const cacheKeyPrefix = await getCacheKeyPrefixBase(dedupedLanguages); logger.debug( `Searching for overlay-base databases in Actions cache with prefix ${cacheKeyPrefix}` ); diff --git a/src/overlay/caching.test.ts b/src/overlay/caching.test.ts index 3a2266a4a..0c4c5e863 100644 --- a/src/overlay/caching.test.ts +++ b/src/overlay/caching.test.ts @@ -391,6 +391,32 @@ test.serial( }, ); +test.serial( + "getCodeQlVersionsForOverlayBaseDatabases de-duplicates resolved language aliases", + async (t) => { + const logger = getRunnerLogger(true); + + sinon.stub(apiClient, "getAutomationID").resolves("test-automation-id/"); + const listActionsCachesStub = sinon + .stub(apiClient, "listActionsCaches") + .resolves([ + { + key: "codeql-overlay-base-database-1-c5666c509a2d9895-javascript_python-2.25.0-abc123-1-1", + }, + ]); + + const result = await getCodeQlVersionsForOverlayBaseDatabases( + ["javascript", "typescript", "Python", "python"], + logger, + ); + t.deepEqual(result, ["2.25.0"]); + sinon.assert.calledOnceWithExactly( + listActionsCachesStub, + "codeql-overlay-base-database-1-c5666c509a2d9895-javascript_python-", + ); + }, +); + test.serial( "getCodeQlVersionsForOverlayBaseDatabases ignores nightly versions with build metadata", async (t) => { diff --git a/src/overlay/caching.ts b/src/overlay/caching.ts index 268c20c12..c4557cd4e 100644 --- a/src/overlay/caching.ts +++ b/src/overlay/caching.ts @@ -461,9 +461,10 @@ export async function getCodeQlVersionsForOverlayBaseDatabases( ); return undefined; } - const cacheKeyPrefix = await getCacheKeyPrefixBase( - languages.filter((l) => l !== undefined), - ); + const dedupedLanguages = [ + ...new Set(languages.filter((l) => l !== undefined)), + ]; + const cacheKeyPrefix = await getCacheKeyPrefixBase(dedupedLanguages); logger.debug( `Searching for overlay-base databases in Actions cache with ` +