diff --git a/lib/analyze-action-post.js b/lib/analyze-action-post.js index d40047e2a..d3c48ec15 100644 --- a/lib/analyze-action-post.js +++ b/lib/analyze-action-post.js @@ -162634,7 +162634,7 @@ var builtin_default = { }; // src/languages/index.ts -var knownLanguageSet = new Set(builtin_default.languages); +var builtInLanguageSet = new Set(builtin_default.languages); // src/overlay/status.ts var actionsCache2 = __toESM(require_cache5()); diff --git a/lib/analyze-action.js b/lib/analyze-action.js index 6d6eae83a..d97180672 100644 --- a/lib/analyze-action.js +++ b/lib/analyze-action.js @@ -108708,7 +108708,7 @@ var builtin_default = { }; // src/languages/index.ts -var knownLanguageSet = new Set(builtin_default.languages); +var builtInLanguageSet = new Set(builtin_default.languages); // src/overlay/status.ts var actionsCache2 = __toESM(require_cache5()); @@ -113381,7 +113381,11 @@ function doesGoExtractionOutputExist(config) { config, "go" /* go */ ); - const trapDirectory = import_path4.default.join(golangDbDirectory, "trap", "go" /* go */); + const trapDirectory = import_path4.default.join( + golangDbDirectory, + "trap", + "go" /* go */ + ); return fs18.existsSync(trapDirectory) && fs18.readdirSync(trapDirectory).some( (fileName) => [ ".trap", diff --git a/lib/autobuild-action.js b/lib/autobuild-action.js index 3c72ad257..12ffc8698 100644 --- a/lib/autobuild-action.js +++ b/lib/autobuild-action.js @@ -105009,7 +105009,7 @@ var builtin_default = { }; // src/languages/index.ts -var knownLanguageSet = new Set(builtin_default.languages); +var builtInLanguageSet = new Set(builtin_default.languages); // src/overlay/status.ts var actionsCache2 = __toESM(require_cache5()); diff --git a/lib/init-action-post.js b/lib/init-action-post.js index 33eef9731..5f640a889 100644 --- a/lib/init-action-post.js +++ b/lib/init-action-post.js @@ -166494,7 +166494,7 @@ var builtin_default = { }; // src/languages/index.ts -var knownLanguageSet = new Set(builtin_default.languages); +var builtInLanguageSet = new Set(builtin_default.languages); // src/overlay/status.ts var fs7 = __toESM(require("fs")); diff --git a/lib/init-action.js b/lib/init-action.js index 6f5a5ad32..864d44637 100644 --- a/lib/init-action.js +++ b/lib/init-action.js @@ -106401,20 +106401,20 @@ var builtin_default = { }; // src/languages/index.ts -var KnownLanguage = /* @__PURE__ */ ((KnownLanguage2) => { - KnownLanguage2["actions"] = "actions"; - KnownLanguage2["cpp"] = "cpp"; - KnownLanguage2["csharp"] = "csharp"; - KnownLanguage2["go"] = "go"; - KnownLanguage2["java"] = "java"; - KnownLanguage2["javascript"] = "javascript"; - KnownLanguage2["python"] = "python"; - KnownLanguage2["ruby"] = "ruby"; - KnownLanguage2["rust"] = "rust"; - KnownLanguage2["swift"] = "swift"; - return KnownLanguage2; -})(KnownLanguage || {}); -var knownLanguageSet = new Set(builtin_default.languages); +var BuiltInLanguage = /* @__PURE__ */ ((BuiltInLanguage2) => { + BuiltInLanguage2["actions"] = "actions"; + BuiltInLanguage2["cpp"] = "cpp"; + BuiltInLanguage2["csharp"] = "csharp"; + BuiltInLanguage2["go"] = "go"; + BuiltInLanguage2["java"] = "java"; + BuiltInLanguage2["javascript"] = "javascript"; + BuiltInLanguage2["python"] = "python"; + BuiltInLanguage2["ruby"] = "ruby"; + BuiltInLanguage2["rust"] = "rust"; + BuiltInLanguage2["swift"] = "swift"; + return BuiltInLanguage2; +})(BuiltInLanguage || {}); +var builtInLanguageSet = new Set(builtin_default.languages); // src/overlay/diagnostics.ts async function addOverlayDisablementDiagnostics(config, codeql, overlayDisabledReason) { @@ -106677,7 +106677,7 @@ async function getSupportedLanguageMap(codeql, logger) { } const supportedLanguages = {}; for (const extractor of Object.keys(resolveResult.extractors)) { - if (resolveSupportedLanguagesUsingCli || KnownLanguage[extractor] !== void 0) { + if (resolveSupportedLanguagesUsingCli || BuiltInLanguage[extractor] !== void 0) { supportedLanguages[extractor] = extractor; } } diff --git a/lib/resolve-environment-action.js b/lib/resolve-environment-action.js index fd441b9d1..bb743ecee 100644 --- a/lib/resolve-environment-action.js +++ b/lib/resolve-environment-action.js @@ -104677,7 +104677,7 @@ var builtin_default = { }; // src/languages/index.ts -var knownLanguageSet = new Set(builtin_default.languages); +var builtInLanguageSet = new Set(builtin_default.languages); // src/overlay/status.ts var actionsCache2 = __toESM(require_cache5()); diff --git a/lib/setup-codeql-action.js b/lib/setup-codeql-action.js index e6fe90383..427a5be32 100644 --- a/lib/setup-codeql-action.js +++ b/lib/setup-codeql-action.js @@ -105242,7 +105242,7 @@ var builtin_default = { }; // src/languages/index.ts -var knownLanguageSet = new Set(builtin_default.languages); +var builtInLanguageSet = new Set(builtin_default.languages); // src/overlay/status.ts var actionsCache2 = __toESM(require_cache5()); diff --git a/lib/start-proxy-action-post.js b/lib/start-proxy-action-post.js index bbe938bed..da5e1afcf 100644 --- a/lib/start-proxy-action-post.js +++ b/lib/start-proxy-action-post.js @@ -161961,7 +161961,7 @@ var builtin_default = { }; // src/languages/index.ts -var knownLanguageSet = new Set(builtin_default.languages); +var builtInLanguageSet = new Set(builtin_default.languages); // src/overlay/status.ts var actionsCache2 = __toESM(require_cache5()); diff --git a/lib/start-proxy-action.js b/lib/start-proxy-action.js index 0662f93bf..d2fb71a72 100644 --- a/lib/start-proxy-action.js +++ b/lib/start-proxy-action.js @@ -121660,14 +121660,14 @@ var builtin_default = { }; // src/languages/index.ts -var knownLanguageSet = new Set(builtin_default.languages); -function isKnownLanguage(language) { - return knownLanguageSet.has(language); +var builtInLanguageSet = new Set(builtin_default.languages); +function isBuiltInLanguage(language) { + return builtInLanguageSet.has(language); } function parseBuiltInLanguage(language) { language = language.trim().toLowerCase(); language = builtin_default.aliases[language] ?? language; - if (isKnownLanguage(language)) { + if (isBuiltInLanguage(language)) { return language; } return void 0; diff --git a/lib/upload-lib.js b/lib/upload-lib.js index b89bf7dd7..94232f50d 100644 --- a/lib/upload-lib.js +++ b/lib/upload-lib.js @@ -107856,7 +107856,7 @@ var builtin_default = { }; // src/languages/index.ts -var knownLanguageSet = new Set(builtin_default.languages); +var builtInLanguageSet = new Set(builtin_default.languages); // src/overlay/status.ts var actionsCache2 = __toESM(require_cache5()); diff --git a/lib/upload-sarif-action-post.js b/lib/upload-sarif-action-post.js index f439250c3..33e1d91fb 100644 --- a/lib/upload-sarif-action-post.js +++ b/lib/upload-sarif-action-post.js @@ -162131,7 +162131,7 @@ var builtin_default = { }; // src/languages/index.ts -var knownLanguageSet = new Set(builtin_default.languages); +var builtInLanguageSet = new Set(builtin_default.languages); // src/overlay/status.ts var actionsCache2 = __toESM(require_cache6()); diff --git a/lib/upload-sarif-action.js b/lib/upload-sarif-action.js index 6d92c1fb9..f754942ec 100644 --- a/lib/upload-sarif-action.js +++ b/lib/upload-sarif-action.js @@ -108048,7 +108048,7 @@ var builtin_default = { }; // src/languages/index.ts -var knownLanguageSet = new Set(builtin_default.languages); +var builtInLanguageSet = new Set(builtin_default.languages); // src/overlay/status.ts var actionsCache2 = __toESM(require_cache5()); diff --git a/pr-checks/sync.ts b/pr-checks/sync.ts index 8a1842323..e46fca248 100755 --- a/pr-checks/sync.ts +++ b/pr-checks/sync.ts @@ -5,7 +5,7 @@ import * as path from "path"; import * as yaml from "yaml"; -import { KnownLanguage } from "../src/languages"; +import { BuiltInLanguage } from "../src/languages"; /** Known workflow input names. */ enum KnownInputName { @@ -91,8 +91,8 @@ interface LanguageSetup { steps: Step[]; } -/** Describes partial mappings from known languages to their specific setup information. */ -type LanguageSetups = Partial>; +/** Describes partial mappings from built-in languages to their specific setup information. */ +type LanguageSetups = Partial>; // The default set of CodeQL Bundle versions to use for the PR checks. const defaultTestVersions = [ @@ -125,7 +125,7 @@ const defaultLanguageVersions = { java: "17", python: "3.13", csharp: "9.x", -} as const satisfies Partial>; +} as const satisfies Partial>; /** A mapping from known input names to their specifications. */ const inputSpecs: WorkflowInputs = { @@ -364,7 +364,7 @@ function getSetupSteps(checkSpecification: JobSpecification): { const inputs: Array> = []; const steps: Step[] = []; - for (const language of Object.values(KnownLanguage).sort()) { + for (const language of Object.values(BuiltInLanguage).sort()) { const setupSpec = languageSetups[language]; if ( diff --git a/src/analyze-action.ts b/src/analyze-action.ts index 24f8fe612..f67fe699e 100644 --- a/src/analyze-action.ts +++ b/src/analyze-action.ts @@ -30,7 +30,7 @@ import { } from "./dependency-caching"; import { EnvVar } from "./environment"; import { initFeatures } from "./feature-flags"; -import { KnownLanguage } from "./languages"; +import { BuiltInLanguage } from "./languages"; import { getActionsLogger, Logger } from "./logging"; import { cleanupAndUploadOverlayBaseDatabaseToCache } from "./overlay"; import { getRepositoryNwo } from "./repository"; @@ -135,9 +135,13 @@ function hasBadExpectErrorInput(): boolean { function doesGoExtractionOutputExist(config: Config): boolean { const golangDbDirectory = util.getCodeQLDatabasePath( config, - KnownLanguage.go, + BuiltInLanguage.go, + ); + const trapDirectory = path.join( + golangDbDirectory, + "trap", + BuiltInLanguage.go, ); - const trapDirectory = path.join(golangDbDirectory, "trap", KnownLanguage.go); return ( fs.existsSync(trapDirectory) && fs @@ -169,7 +173,7 @@ function doesGoExtractionOutputExist(config: Config): boolean { * whether any extraction output already exists for Go. */ async function runAutobuildIfLegacyGoWorkflow(config: Config, logger: Logger) { - if (!config.languages.includes(KnownLanguage.go)) { + if (!config.languages.includes(BuiltInLanguage.go)) { return; } if (config.buildMode) { @@ -182,7 +186,7 @@ async function runAutobuildIfLegacyGoWorkflow(config: Config, logger: Logger) { logger.debug("Won't run Go autobuild since it has already been run."); return; } - if (dbIsFinalized(config, KnownLanguage.go, logger)) { + if (dbIsFinalized(config, BuiltInLanguage.go, logger)) { logger.debug( "Won't run Go autobuild since there is already a finalized database for Go.", ); @@ -205,7 +209,7 @@ async function runAutobuildIfLegacyGoWorkflow(config: Config, logger: Logger) { logger.debug( "Running Go autobuild because extraction output (TRAP files) for Go code has not been found.", ); - await runAutobuild(config, KnownLanguage.go, logger); + await runAutobuild(config, BuiltInLanguage.go, logger); } async function run(startedAt: Date) { diff --git a/src/analyze.test.ts b/src/analyze.test.ts index 0749a0cc2..7523d239b 100644 --- a/src/analyze.test.ts +++ b/src/analyze.test.ts @@ -14,7 +14,7 @@ import { } from "./analyze"; import { createStubCodeQL } from "./codeql"; import { Feature } from "./feature-flags"; -import { KnownLanguage } from "./languages"; +import { BuiltInLanguage } from "./languages"; import { getRunnerLogger } from "./logging"; import { setupTests, @@ -41,7 +41,7 @@ test.serial("status report fields", async (t) => { const threadsFlag = ""; sinon.stub(uploadLib, "validateSarifFileSchema"); - for (const language of Object.values(KnownLanguage)) { + for (const language of Object.values(BuiltInLanguage)) { const codeql = createStubCodeQL({ databaseRunQueries: async () => {}, databaseInterpretResults: async ( @@ -130,13 +130,13 @@ test.serial("status report fields", async (t) => { test("resolveQuerySuiteAlias", (t) => { // default query suite names should resolve to something language-specific ending in `.qls`. for (const suite of defaultSuites) { - const resolved = resolveQuerySuiteAlias(KnownLanguage.go, suite); + const resolved = resolveQuerySuiteAlias(BuiltInLanguage.go, suite); t.assert( path.extname(resolved) === ".qls", "Resolved default suite doesn't end in .qls", ); t.assert( - resolved.indexOf(KnownLanguage.go) >= 0, + resolved.indexOf(BuiltInLanguage.go) >= 0, "Resolved default suite doesn't contain language name", ); } @@ -145,12 +145,12 @@ test("resolveQuerySuiteAlias", (t) => { const names = ["foo", "bar", "codeql/go-queries@1.0"]; for (const name of names) { - t.deepEqual(resolveQuerySuiteAlias(KnownLanguage.go, name), name); + t.deepEqual(resolveQuerySuiteAlias(BuiltInLanguage.go, name), name); } }); test("addSarifExtension", (t) => { - for (const language of Object.values(KnownLanguage)) { + for (const language of Object.values(BuiltInLanguage)) { t.deepEqual(addSarifExtension(CodeScanning, language), `${language}.sarif`); t.deepEqual( addSarifExtension(CodeQuality, language), diff --git a/src/analyze.ts b/src/analyze.ts index d2088c3a3..884dcccea 100644 --- a/src/analyze.ts +++ b/src/analyze.ts @@ -21,7 +21,7 @@ import { } from "./diff-informed-analysis-utils"; import { EnvVar } from "./environment"; import { FeatureEnablement, Feature } from "./feature-flags"; -import { KnownLanguage, Language } from "./languages"; +import { BuiltInLanguage, Language } from "./languages"; import { Logger, withGroupAsync } from "./logging"; import { OverlayDatabaseMode } from "./overlay"; import type * as sarif from "./sarif"; @@ -41,7 +41,7 @@ export class CodeQLAnalysisError extends Error { } } -type KnownLanguageKey = keyof typeof KnownLanguage; +type BuiltInLanguageKey = keyof typeof BuiltInLanguage; type RunQueriesDurationStatusReport = { /** @@ -50,12 +50,12 @@ type RunQueriesDurationStatusReport = { * The "builtin" designation is now outdated with the move to CLI config parsing: this is the time * taken to run _all_ the queries. */ - [L in KnownLanguageKey as `analyze_builtin_queries_${L}_duration_ms`]?: number; + [L in BuiltInLanguageKey as `analyze_builtin_queries_${L}_duration_ms`]?: number; }; type InterpretResultsDurationStatusReport = { /** Time taken in ms to interpret results for the language (or undefined if this language was not analyzed). */ - [L in KnownLanguageKey as `interpret_results_${L}_duration_ms`]?: number; + [L in BuiltInLanguageKey as `interpret_results_${L}_duration_ms`]?: number; }; export interface QueriesStatusReport @@ -115,12 +115,12 @@ export async function runExtraction( if (await shouldExtractLanguage(codeql, config, language)) { logger.startGroup(`Extracting ${language}`); - if (language === KnownLanguage.python) { + if (language === BuiltInLanguage.python) { await setupPythonExtractor(logger); } if (config.buildMode) { if ( - language === KnownLanguage.cpp && + language === BuiltInLanguage.cpp && config.buildMode === BuildMode.Autobuild ) { await setupCppAutobuild(codeql, logger); @@ -131,14 +131,14 @@ export async function runExtraction( // a stable path that caches can be restored into and that we can cache at the // end of the workflow (i.e. that does not get removed when the scratch directory is). if ( - language === KnownLanguage.java && + language === BuiltInLanguage.java && config.buildMode === BuildMode.None ) { process.env["CODEQL_EXTRACTOR_JAVA_OPTION_BUILDLESS_DEPENDENCY_DIR"] = getJavaTempDependencyDir(); } if ( - language === KnownLanguage.csharp && + language === BuiltInLanguage.csharp && config.buildMode === BuildMode.None && (await features.getValue(Feature.CsharpCacheBuildModeNone)) ) { @@ -698,7 +698,7 @@ export async function warnIfGoInstalledAfterInit( addDiagnostic( config, - KnownLanguage.go, + BuiltInLanguage.go, makeDiagnostic( "go/workflow/go-installed-after-codeql-init", "Go was installed after the `codeql-action/init` Action was run", diff --git a/src/autobuild.ts b/src/autobuild.ts index 46935bba6..fc4983f4e 100644 --- a/src/autobuild.ts +++ b/src/autobuild.ts @@ -7,7 +7,7 @@ import * as configUtils from "./config-utils"; import { DocUrl } from "./doc-url"; import { EnvVar } from "./environment"; import { Feature, featureConfig, initFeatures } from "./feature-flags"; -import { KnownLanguage, Language } from "./languages"; +import { BuiltInLanguage, Language } from "./languages"; import { Logger } from "./logging"; import { getRepositoryNwo } from "./repository"; import { asyncFilter, BuildMode } from "./util"; @@ -72,7 +72,7 @@ export async function determineAutobuildLanguages( * version of the CodeQL Action. */ const autobuildLanguagesWithoutGo = autobuildLanguages.filter( - (l) => l !== KnownLanguage.go, + (l) => l !== BuiltInLanguage.go, ); const languages: Language[] = []; @@ -84,7 +84,7 @@ export async function determineAutobuildLanguages( // If Go is requested, run the Go autobuilder last to ensure it doesn't // interfere with the other autobuilder. if (autobuildLanguages.length !== autobuildLanguagesWithoutGo.length) { - languages.push(KnownLanguage.go); + languages.push(BuiltInLanguage.go); } logger.debug(`Will autobuild ${languages.join(" and ")}.`); @@ -156,7 +156,7 @@ export async function runAutobuild( ) { logger.startGroup(`Attempting to automatically build ${language} code`); const codeQL = await getCodeQL(config.codeQLCmd); - if (language === KnownLanguage.cpp) { + if (language === BuiltInLanguage.cpp) { await setupCppAutobuild(codeQL, logger); } if (config.buildMode) { @@ -164,7 +164,7 @@ export async function runAutobuild( } else { await codeQL.runAutobuild(config, language); } - if (language === KnownLanguage.go) { + if (language === BuiltInLanguage.go) { core.exportVariable(EnvVar.DID_AUTOBUILD_GOLANG, "true"); } logger.endGroup(); diff --git a/src/codeql.test.ts b/src/codeql.test.ts index cfbddf4f7..eccad6895 100644 --- a/src/codeql.test.ts +++ b/src/codeql.test.ts @@ -21,7 +21,7 @@ import { import type { Config } from "./config-utils"; import * as defaults from "./defaults.json"; import { DocUrl } from "./doc-url"; -import { KnownLanguage } from "./languages"; +import { BuiltInLanguage } from "./languages"; import { getRunnerLogger } from "./logging"; import { ToolsSource } from "./setup-codeql"; import { @@ -46,7 +46,7 @@ test.beforeEach(() => { initializeEnvironment("1.2.3"); stubConfig = createTestConfig({ - languages: [KnownLanguage.cpp], + languages: [BuiltInLanguage.cpp], }); }); @@ -115,7 +115,7 @@ async function stubCodeql(): Promise { sinon.stub(codeqlObject, "getVersion").resolves(makeVersionInfo("2.17.6")); sinon .stub(codeqlObject, "isTracedLanguage") - .withArgs(KnownLanguage.cpp) + .withArgs(BuiltInLanguage.cpp) .resolves(true); return codeqlObject; } @@ -956,7 +956,8 @@ test.serial("runTool summarizes autobuilder errors", async (t) => { sinon.stub(io, "which").resolves(""); await t.throwsAsync( - async () => await codeqlObject.runAutobuild(stubConfig, KnownLanguage.java), + async () => + await codeqlObject.runAutobuild(stubConfig, BuiltInLanguage.java), { instanceOf: util.ConfigurationError, message: @@ -982,7 +983,8 @@ test.serial("runTool truncates long autobuilder errors", async (t) => { sinon.stub(io, "which").resolves(""); await t.throwsAsync( - async () => await codeqlObject.runAutobuild(stubConfig, KnownLanguage.java), + async () => + await codeqlObject.runAutobuild(stubConfig, BuiltInLanguage.java), { instanceOf: util.ConfigurationError, message: diff --git a/src/config-utils.test.ts b/src/config-utils.test.ts index a69836293..6b24bbe3a 100644 --- a/src/config-utils.test.ts +++ b/src/config-utils.test.ts @@ -18,7 +18,7 @@ import { Feature } from "./feature-flags"; import { RepositoryProperties } from "./feature-flags/properties"; import * as gitUtils from "./git-utils"; import { GitVersionInfo } from "./git-utils"; -import { KnownLanguage, Language } from "./languages"; +import { BuiltInLanguage, Language } from "./languages"; import { getRunnerLogger } from "./logging"; import { CODEQL_OVERLAY_MINIMUM_VERSION, OverlayDatabaseMode } from "./overlay"; import { OverlayDisabledReason } from "./overlay/diagnostics"; @@ -214,7 +214,7 @@ test.serial("load code quality config", async (t) => { // And the config we expect it to result in const expectedConfig = createTestConfig({ analysisKinds: [AnalysisKind.CodeQuality], - languages: [KnownLanguage.actions], + languages: [BuiltInLanguage.actions], // This gets set because we only have `AnalysisKind.CodeQuality` computedConfig: { "disable-default-queries": true, @@ -267,7 +267,7 @@ test.serial( const expectedConfig = createTestConfig({ analysisKinds: [AnalysisKind.CodeQuality], - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], codeQLCmd: codeql.getPath(), computedConfig, dbLocation: path.resolve(tempDir, "codeql_databases"), @@ -517,7 +517,7 @@ test.serial("load non-empty input", async (t) => { // And the config we expect it to parse to const expectedConfig = createTestConfig({ - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], buildMode: BuildMode.None, originalUserInput: userConfig, computedConfig: userConfig, @@ -891,10 +891,10 @@ const mockRepositoryNwo = parseRepositoryNwo("owner/repo"); betterResolveLanguages: (options) => Promise.resolve({ aliases: { - "c#": KnownLanguage.csharp, - c: KnownLanguage.cpp, - kotlin: KnownLanguage.java, - typescript: KnownLanguage.javascript, + "c#": BuiltInLanguage.csharp, + c: BuiltInLanguage.cpp, + kotlin: BuiltInLanguage.java, + typescript: BuiltInLanguage.javascript, }, extractors: { cpp: [stubExtractorEntry], @@ -943,12 +943,12 @@ const mockRepositoryNwo = parseRepositoryNwo("owner/repo"); for (const { displayName, language, feature } of [ { displayName: "Java", - language: KnownLanguage.java, + language: BuiltInLanguage.java, feature: Feature.DisableJavaBuildlessEnabled, }, { displayName: "C#", - language: KnownLanguage.csharp, + language: BuiltInLanguage.csharp, feature: Feature.DisableCsharpBuildless, }, ]) { @@ -968,7 +968,7 @@ for (const { displayName, language, feature } of [ const messages: LoggedMessage[] = []; const buildMode = await configUtils.parseBuildModeInput( "none", - [KnownLanguage.python], + [BuiltInLanguage.python], createFeatures([feature]), getRecordingLogger(messages), ); @@ -1018,7 +1018,7 @@ const defaultOverlayDatabaseModeTestSetup: OverlayDatabaseModeTestSetup = { isPullRequest: false, isDefaultBranch: false, buildMode: BuildMode.None, - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], codeqlVersion: CODEQL_OVERLAY_MINIMUM_VERSION, gitRoot: "/some/git/root", gitVersion: new GitVersionInfo("2.39.0", "2.39.0"), @@ -1090,7 +1090,7 @@ const checkOverlayEnablementMacro = test.macro({ sinon .stub(codeql, "isTracedLanguage") .callsFake(async (lang: Language) => { - return lang === KnownLanguage.java; + return lang === BuiltInLanguage.java; }); // Mock git root detection @@ -1183,7 +1183,7 @@ test.serial( checkOverlayEnablementMacro, "Ignore feature flag when analyzing non-default branch", { - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], features: [Feature.OverlayAnalysis, Feature.OverlayAnalysisJavascript], }, { @@ -1195,7 +1195,7 @@ test.serial( checkOverlayEnablementMacro, "Overlay-base database on default branch when feature enabled", { - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], features: [Feature.OverlayAnalysis, Feature.OverlayAnalysisJavascript], isDefaultBranch: true, }, @@ -1209,7 +1209,7 @@ test.serial( checkOverlayEnablementMacro, "Overlay-base database on default branch when feature enabled with custom analysis", { - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], features: [Feature.OverlayAnalysis, Feature.OverlayAnalysisJavascript], codeScanningConfig: { packs: ["some-custom-pack@1.0.0"], @@ -1226,7 +1226,7 @@ test.serial( checkOverlayEnablementMacro, "Overlay-base database on default branch when code-scanning feature enabled", { - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], features: [ Feature.OverlayAnalysis, Feature.OverlayAnalysisCodeScanningJavascript, @@ -1243,7 +1243,7 @@ test.serial( checkOverlayEnablementMacro, "No overlay-base database on default branch if runner disk space is too low", { - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], features: [ Feature.OverlayAnalysis, Feature.OverlayAnalysisCodeScanningJavascript, @@ -1263,7 +1263,7 @@ test.serial( checkOverlayEnablementMacro, "No overlay-base database on default branch if we can't determine runner disk space", { - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], features: [ Feature.OverlayAnalysis, Feature.OverlayAnalysisCodeScanningJavascript, @@ -1280,7 +1280,7 @@ test.serial( checkOverlayEnablementMacro, "Overlay-base database on default branch if runner disk space is too low and skip resource checks flag is enabled", { - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], features: [ Feature.OverlayAnalysis, Feature.OverlayAnalysisCodeScanningJavascript, @@ -1302,7 +1302,7 @@ test.serial( checkOverlayEnablementMacro, "No overlay-base database on default branch if runner disk space is below v2 limit and v2 resource checks enabled", { - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], features: [ Feature.OverlayAnalysis, Feature.OverlayAnalysisCodeScanningJavascript, @@ -1323,7 +1323,7 @@ test.serial( checkOverlayEnablementMacro, "Overlay-base database on default branch if runner disk space is between v2 and v1 limits and v2 resource checks enabled", { - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], features: [ Feature.OverlayAnalysis, Feature.OverlayAnalysisCodeScanningJavascript, @@ -1345,7 +1345,7 @@ test.serial( checkOverlayEnablementMacro, "No overlay-base database on default branch if runner disk space is between v2 and v1 limits and v2 resource checks not enabled", { - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], features: [ Feature.OverlayAnalysis, Feature.OverlayAnalysisCodeScanningJavascript, @@ -1365,7 +1365,7 @@ test.serial( checkOverlayEnablementMacro, "No overlay-base database on default branch if memory flag is too low", { - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], features: [ Feature.OverlayAnalysis, Feature.OverlayAnalysisCodeScanningJavascript, @@ -1382,7 +1382,7 @@ test.serial( checkOverlayEnablementMacro, "Overlay-base database on default branch if memory flag is too low but CodeQL >= 2.24.3", { - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], features: [ Feature.OverlayAnalysis, Feature.OverlayAnalysisCodeScanningJavascript, @@ -1401,7 +1401,7 @@ test.serial( checkOverlayEnablementMacro, "Overlay-base database on default branch if memory flag is too low and skip resource checks flag is enabled", { - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], features: [ Feature.OverlayAnalysis, Feature.OverlayAnalysisCodeScanningJavascript, @@ -1420,7 +1420,7 @@ test.serial( checkOverlayEnablementMacro, "No overlay-base database on default branch when cached status indicates previous failure", { - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], features: [ Feature.OverlayAnalysis, Feature.OverlayAnalysisJavascript, @@ -1438,7 +1438,7 @@ test.serial( checkOverlayEnablementMacro, "No overlay analysis on PR when cached status indicates previous failure", { - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], features: [ Feature.OverlayAnalysis, Feature.OverlayAnalysisJavascript, @@ -1456,7 +1456,7 @@ test.serial( checkOverlayEnablementMacro, "No overlay-base database on default branch when code-scanning feature enabled with disable-default-queries", { - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], features: [ Feature.OverlayAnalysis, Feature.OverlayAnalysisCodeScanningJavascript, @@ -1475,7 +1475,7 @@ test.serial( checkOverlayEnablementMacro, "No overlay-base database on default branch when code-scanning feature enabled with packs", { - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], features: [ Feature.OverlayAnalysis, Feature.OverlayAnalysisCodeScanningJavascript, @@ -1494,7 +1494,7 @@ test.serial( checkOverlayEnablementMacro, "No overlay-base database on default branch when code-scanning feature enabled with queries", { - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], features: [ Feature.OverlayAnalysis, Feature.OverlayAnalysisCodeScanningJavascript, @@ -1513,7 +1513,7 @@ test.serial( checkOverlayEnablementMacro, "No overlay-base database on default branch when code-scanning feature enabled with query-filters", { - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], features: [ Feature.OverlayAnalysis, Feature.OverlayAnalysisCodeScanningJavascript, @@ -1532,7 +1532,7 @@ test.serial( checkOverlayEnablementMacro, "No overlay-base database on default branch when only language-specific feature enabled", { - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], features: [Feature.OverlayAnalysisJavascript], isDefaultBranch: true, }, @@ -1545,7 +1545,7 @@ test.serial( checkOverlayEnablementMacro, "No overlay-base database on default branch when only code-scanning feature enabled", { - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], features: [Feature.OverlayAnalysisCodeScanningJavascript], isDefaultBranch: true, }, @@ -1558,7 +1558,7 @@ test.serial( checkOverlayEnablementMacro, "No overlay-base database on default branch when language-specific feature disabled", { - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], features: [Feature.OverlayAnalysis], isDefaultBranch: true, }, @@ -1571,7 +1571,7 @@ test.serial( checkOverlayEnablementMacro, "Overlay analysis on PR when feature enabled", { - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], features: [Feature.OverlayAnalysis, Feature.OverlayAnalysisJavascript], isPullRequest: true, }, @@ -1585,7 +1585,7 @@ test.serial( checkOverlayEnablementMacro, "Overlay analysis on PR when feature enabled with custom analysis", { - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], features: [Feature.OverlayAnalysis, Feature.OverlayAnalysisJavascript], codeScanningConfig: { packs: ["some-custom-pack@1.0.0"], @@ -1602,7 +1602,7 @@ test.serial( checkOverlayEnablementMacro, "Overlay analysis on PR when code-scanning feature enabled", { - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], features: [ Feature.OverlayAnalysis, Feature.OverlayAnalysisCodeScanningJavascript, @@ -1619,7 +1619,7 @@ test.serial( checkOverlayEnablementMacro, "No overlay analysis on PR if runner disk space is too low", { - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], features: [ Feature.OverlayAnalysis, Feature.OverlayAnalysisCodeScanningJavascript, @@ -1639,7 +1639,7 @@ test.serial( checkOverlayEnablementMacro, "Overlay analysis on PR if runner disk space is too low and skip resource checks flag is enabled", { - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], features: [ Feature.OverlayAnalysis, Feature.OverlayAnalysisCodeScanningJavascript, @@ -1661,7 +1661,7 @@ test.serial( checkOverlayEnablementMacro, "No overlay analysis on PR if we can't determine runner disk space", { - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], features: [ Feature.OverlayAnalysis, Feature.OverlayAnalysisCodeScanningJavascript, @@ -1678,7 +1678,7 @@ test.serial( checkOverlayEnablementMacro, "No overlay analysis on PR if memory flag is too low", { - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], features: [ Feature.OverlayAnalysis, Feature.OverlayAnalysisCodeScanningJavascript, @@ -1695,7 +1695,7 @@ test.serial( checkOverlayEnablementMacro, "Overlay analysis on PR if memory flag is too low but CodeQL >= 2.24.3", { - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], features: [ Feature.OverlayAnalysis, Feature.OverlayAnalysisCodeScanningJavascript, @@ -1714,7 +1714,7 @@ test.serial( checkOverlayEnablementMacro, "Overlay analysis on PR if memory flag is too low and skip resource checks flag is enabled", { - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], features: [ Feature.OverlayAnalysis, Feature.OverlayAnalysisCodeScanningJavascript, @@ -1733,7 +1733,7 @@ test.serial( checkOverlayEnablementMacro, "No overlay analysis on PR when code-scanning feature enabled with disable-default-queries", { - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], features: [ Feature.OverlayAnalysis, Feature.OverlayAnalysisCodeScanningJavascript, @@ -1752,7 +1752,7 @@ test.serial( checkOverlayEnablementMacro, "No overlay analysis on PR when code-scanning feature enabled with packs", { - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], features: [ Feature.OverlayAnalysis, Feature.OverlayAnalysisCodeScanningJavascript, @@ -1771,7 +1771,7 @@ test.serial( checkOverlayEnablementMacro, "No overlay analysis on PR when code-scanning feature enabled with queries", { - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], features: [ Feature.OverlayAnalysis, Feature.OverlayAnalysisCodeScanningJavascript, @@ -1790,7 +1790,7 @@ test.serial( checkOverlayEnablementMacro, "No overlay analysis on PR when code-scanning feature enabled with query-filters", { - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], features: [ Feature.OverlayAnalysis, Feature.OverlayAnalysisCodeScanningJavascript, @@ -1809,7 +1809,7 @@ test.serial( checkOverlayEnablementMacro, "No overlay analysis on PR when only language-specific feature enabled", { - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], features: [Feature.OverlayAnalysisJavascript], isPullRequest: true, }, @@ -1822,7 +1822,7 @@ test.serial( checkOverlayEnablementMacro, "No overlay analysis on PR when only code-scanning feature enabled", { - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], features: [Feature.OverlayAnalysisCodeScanningJavascript], isPullRequest: true, }, @@ -1835,7 +1835,7 @@ test.serial( checkOverlayEnablementMacro, "No overlay analysis on PR when language-specific feature disabled", { - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], features: [Feature.OverlayAnalysis], isPullRequest: true, }, @@ -1873,7 +1873,7 @@ test.serial( checkOverlayEnablementMacro, "Overlay PR analysis by feature flag", { - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], features: [Feature.OverlayAnalysis, Feature.OverlayAnalysisJavascript], isPullRequest: true, }, @@ -1889,7 +1889,7 @@ test.serial( { overlayDatabaseEnvVar: "overlay", buildMode: BuildMode.Autobuild, - languages: [KnownLanguage.java], + languages: [BuiltInLanguage.java], }, { disabledReason: OverlayDisabledReason.IncompatibleBuildMode, @@ -1902,7 +1902,7 @@ test.serial( { overlayDatabaseEnvVar: "overlay", buildMode: undefined, - languages: [KnownLanguage.java], + languages: [BuiltInLanguage.java], }, { disabledReason: OverlayDisabledReason.IncompatibleBuildMode, @@ -1977,7 +1977,7 @@ test.serial( checkOverlayEnablementMacro, "No overlay when disabled via repository property", { - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], features: [Feature.OverlayAnalysis, Feature.OverlayAnalysisJavascript], isPullRequest: true, repositoryProperties: { @@ -1993,7 +1993,7 @@ test.serial( checkOverlayEnablementMacro, "Overlay not disabled when repository property is false", { - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], features: [Feature.OverlayAnalysis, Feature.OverlayAnalysisJavascript], isPullRequest: true, repositoryProperties: { @@ -2022,7 +2022,7 @@ test.serial( ); // Exercise language-specific overlay analysis features code paths -for (const language in KnownLanguage) { +for (const language in BuiltInLanguage) { test.serial( checkOverlayEnablementMacro, `Check default overlay analysis feature for ${language}`, @@ -2045,7 +2045,7 @@ test.serial( checkOverlayEnablementMacro, "No overlay analysis for language without per-language overlay feature flag", { - languages: [KnownLanguage.swift], + languages: [BuiltInLanguage.swift], features: [Feature.OverlayAnalysis], isPullRequest: true, }, diff --git a/src/config-utils.ts b/src/config-utils.ts index 55d5afa72..1147a1ecd 100644 --- a/src/config-utils.ts +++ b/src/config-utils.ts @@ -48,7 +48,7 @@ import { hasSubmodules, isAnalyzingDefaultBranch, } from "./git-utils"; -import { KnownLanguage, Language } from "./languages"; +import { BuiltInLanguage, Language } from "./languages"; import { Logger } from "./logging"; import { CODEQL_OVERLAY_MINIMUM_VERSION, OverlayDatabaseMode } from "./overlay"; import { @@ -273,10 +273,10 @@ async function getSupportedLanguageMap( for (const extractor of Object.keys(resolveResult.extractors)) { // If the CLI supports resolving languages with default queries, use these // as the set of supported languages. Otherwise, require the language to be - // a known language. + // a built-in language. if ( resolveSupportedLanguagesUsingCli || - KnownLanguage[extractor] !== undefined + BuiltInLanguage[extractor] !== undefined ) { supportedLanguages[extractor] = extractor; } @@ -946,7 +946,7 @@ async function validateOverlayDatabaseMode( await Promise.all( languages.map( async (l) => - l !== KnownLanguage.go && // Workaround to allow overlay analysis for Go with any build + l !== BuiltInLanguage.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. @@ -1035,13 +1035,13 @@ async function setCppTrapCachingEnvironmentVariables( config: Config, logger: Logger, ): Promise { - if (config.languages.includes(KnownLanguage.cpp)) { + if (config.languages.includes(BuiltInLanguage.cpp)) { const envVar = "CODEQL_EXTRACTOR_CPP_TRAP_CACHING"; if (process.env[envVar]) { logger.info( `Environment variable ${envVar} already set, leaving it unchanged.`, ); - } else if (config.trapCaches[KnownLanguage.cpp]) { + } else if (config.trapCaches[BuiltInLanguage.cpp]) { logger.info("Enabling TRAP caching for C/C++."); core.exportVariable(envVar, "true"); } else { @@ -1538,7 +1538,7 @@ export async function parseBuildModeInput( } if ( - languages.includes(KnownLanguage.csharp) && + languages.includes(BuiltInLanguage.csharp) && (await features.getValue(Feature.DisableCsharpBuildless)) ) { logger.warning( @@ -1548,7 +1548,7 @@ export async function parseBuildModeInput( } if ( - languages.includes(KnownLanguage.java) && + languages.includes(BuiltInLanguage.java) && (await features.getValue(Feature.DisableJavaBuildlessEnabled)) ) { logger.warning( diff --git a/src/config/db-config.test.ts b/src/config/db-config.test.ts index d7ff48eed..d0c11d268 100644 --- a/src/config/db-config.test.ts +++ b/src/config/db-config.test.ts @@ -1,7 +1,7 @@ import test, { ExecutionContext } from "ava"; import { RepositoryProperties } from "../feature-flags/properties"; -import { KnownLanguage, Language } from "../languages"; +import { BuiltInLanguage, Language } from "../languages"; import { getRunnerLogger } from "../logging"; import { checkExpectedLogMessages, @@ -54,7 +54,7 @@ const invalidPackNameMacro = test.macro({ parsePacksErrorMacro.exec( t, name, - [KnownLanguage.cpp], + [BuiltInLanguage.cpp], new RegExp(`^"${name}" is not a valid pack$`), ), title: (_providedTitle: string | undefined, arg: string | undefined) => @@ -62,23 +62,23 @@ const invalidPackNameMacro = test.macro({ }); test("no packs", parsePacksMacro, "", [], undefined); -test("two packs", parsePacksMacro, "a/b,c/d@1.2.3", [KnownLanguage.cpp], { - [KnownLanguage.cpp]: ["a/b", "c/d@1.2.3"], +test("two packs", parsePacksMacro, "a/b,c/d@1.2.3", [BuiltInLanguage.cpp], { + [BuiltInLanguage.cpp]: ["a/b", "c/d@1.2.3"], }); test( "two packs with spaces", parsePacksMacro, " a/b , c/d@1.2.3 ", - [KnownLanguage.cpp], + [BuiltInLanguage.cpp], { - [KnownLanguage.cpp]: ["a/b", "c/d@1.2.3"], + [BuiltInLanguage.cpp]: ["a/b", "c/d@1.2.3"], }, ); test( "two packs with language", parsePacksErrorMacro, "a/b,c/d@1.2.3", - [KnownLanguage.cpp, KnownLanguage.java], + [BuiltInLanguage.cpp, BuiltInLanguage.java], new RegExp( "Cannot specify a 'packs' input in a multi-language analysis. " + "Use a codeql-config.yml file instead and specify packs by language.", @@ -106,9 +106,9 @@ test( // (globbing is not done) "c/d@1.2.3:+*)_(", ].join(","), - [KnownLanguage.cpp], + [BuiltInLanguage.cpp], { - [KnownLanguage.cpp]: [ + [BuiltInLanguage.cpp]: [ "c/d@1.0", "c/d@~1.0.0", "c/d@~1.0.0:a/b", @@ -215,7 +215,7 @@ test( "All empty", undefined, undefined, - [KnownLanguage.javascript], + [BuiltInLanguage.javascript], {}, { ...dbConfig.defaultAugmentationProperties, @@ -227,7 +227,7 @@ test( "With queries", undefined, " a, b , c, d", - [KnownLanguage.javascript], + [BuiltInLanguage.javascript], {}, { ...dbConfig.defaultAugmentationProperties, @@ -240,7 +240,7 @@ test( "With queries combining", undefined, " + a, b , c, d ", - [KnownLanguage.javascript], + [BuiltInLanguage.javascript], {}, { ...dbConfig.defaultAugmentationProperties, @@ -254,7 +254,7 @@ test( "With packs", " codeql/a , codeql/b , codeql/c , codeql/d ", undefined, - [KnownLanguage.javascript], + [BuiltInLanguage.javascript], {}, { ...dbConfig.defaultAugmentationProperties, @@ -267,7 +267,7 @@ test( "With packs combining", " + codeql/a, codeql/b, codeql/c, codeql/d", undefined, - [KnownLanguage.javascript], + [BuiltInLanguage.javascript], {}, { ...dbConfig.defaultAugmentationProperties, @@ -281,7 +281,7 @@ test( "With repo property queries", undefined, undefined, - [KnownLanguage.javascript], + [BuiltInLanguage.javascript], { "github-codeql-extra-queries": "a, b, c, d", }, @@ -299,7 +299,7 @@ test( "With repo property queries combining", undefined, undefined, - [KnownLanguage.javascript], + [BuiltInLanguage.javascript], { "github-codeql-extra-queries": "+ a, b, c, d", }, @@ -341,7 +341,7 @@ test( "Plus (+) with nothing else (queries)", undefined, " + ", - [KnownLanguage.javascript], + [BuiltInLanguage.javascript], {}, /The workflow property "queries" is invalid/, ); @@ -351,7 +351,7 @@ test( "Plus (+) with nothing else (packs)", " + ", undefined, - [KnownLanguage.javascript], + [BuiltInLanguage.javascript], {}, /The workflow property "packs" is invalid/, ); @@ -361,7 +361,7 @@ test( "Plus (+) with nothing else (repo property queries)", undefined, undefined, - [KnownLanguage.javascript], + [BuiltInLanguage.javascript], { "github-codeql-extra-queries": " + ", }, @@ -373,7 +373,7 @@ test( "Packs input with multiple languages", " + a/b, c/d ", undefined, - [KnownLanguage.javascript, KnownLanguage.java], + [BuiltInLanguage.javascript, BuiltInLanguage.java], {}, /Cannot specify a 'packs' input in a multi-language analysis/, ); @@ -393,7 +393,7 @@ test( "Invalid packs", " a-pack-without-a-scope ", undefined, - [KnownLanguage.javascript], + [BuiltInLanguage.javascript], {}, /"a-pack-without-a-scope" is not a valid pack/, ); diff --git a/src/database-upload.test.ts b/src/database-upload.test.ts index c4ac59e76..1cfbaecad 100644 --- a/src/database-upload.test.ts +++ b/src/database-upload.test.ts @@ -12,7 +12,7 @@ import { createStubCodeQL } from "./codeql"; import { Config } from "./config-utils"; import { cleanupAndUploadDatabases } from "./database-upload"; import * as gitUtils from "./git-utils"; -import { KnownLanguage } from "./languages"; +import { BuiltInLanguage } from "./languages"; import { RepositoryNwo } from "./repository"; import { checkExpectedLogMessages, @@ -45,7 +45,7 @@ const testApiDetails: GitHubApiDetails = { function getTestConfig(tmpDir: string): Config { return createTestConfig({ - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], dbLocation: tmpDir, }); } diff --git a/src/dependency-caching.test.ts b/src/dependency-caching.test.ts index a2d75190d..e611cd03e 100644 --- a/src/dependency-caching.test.ts +++ b/src/dependency-caching.test.ts @@ -27,7 +27,7 @@ import { CacheStoreResult, } from "./dependency-caching"; import { Feature } from "./feature-flags"; -import { KnownLanguage } from "./languages"; +import { BuiltInLanguage } from "./languages"; import { setupTests, createFeatures, @@ -179,7 +179,7 @@ test("checkHashPatterns - logs when no patterns match", async (t) => { const result = await checkHashPatterns( codeql, features, - KnownLanguage.csharp, + BuiltInLanguage.csharp, config, "download", getRecordingLogger(messages), @@ -208,7 +208,7 @@ test("checkHashPatterns - returns patterns when patterns match", async (t) => { const result = await checkHashPatterns( codeql, features, - KnownLanguage.csharp, + BuiltInLanguage.csharp, config, "upload", getRecordingLogger(messages), @@ -270,7 +270,7 @@ test.serial( const keyWithFeature = await cacheKey( codeql, createFeatures([Feature.CsharpNewCacheKey]), - KnownLanguage.csharp, + BuiltInLanguage.csharp, // Patterns don't matter here because we have stubbed `hashFiles` to always return a specific hash above. [], ); @@ -288,12 +288,12 @@ test.serial( const result = await downloadDependencyCaches( codeql, createFeatures([]), - [KnownLanguage.csharp], + [BuiltInLanguage.csharp], logger, ); const statusReport = result.statusReport; t.is(statusReport.length, 1); - t.is(statusReport[0].language, KnownLanguage.csharp); + t.is(statusReport[0].language, BuiltInLanguage.csharp); t.is(statusReport[0].hit_kind, CacheHitKind.Miss); t.deepEqual(result.restoredKeys, []); t.assert(restoreCacheStub.calledOnce); @@ -316,7 +316,7 @@ test.serial( const keyWithFeature = await cacheKey( codeql, features, - KnownLanguage.csharp, + BuiltInLanguage.csharp, // Patterns don't matter here because we have stubbed `hashFiles` to always return a specific hash above. [], ); @@ -334,14 +334,14 @@ test.serial( const result = await downloadDependencyCaches( codeql, features, - [KnownLanguage.csharp], + [BuiltInLanguage.csharp], logger, ); // Check that the status report for telemetry indicates that one cache was restored with an exact match. const statusReport = result.statusReport; t.is(statusReport.length, 1); - t.is(statusReport[0].language, KnownLanguage.csharp); + t.is(statusReport[0].language, BuiltInLanguage.csharp); t.is(statusReport[0].hit_kind, CacheHitKind.Exact); // Check that the restored key has been returned. @@ -380,7 +380,7 @@ test.serial( const keyWithFeature = await cacheKey( codeql, features, - KnownLanguage.csharp, + BuiltInLanguage.csharp, // Patterns don't matter here because we have stubbed `hashFiles` to always return a specific hash above. [], ); @@ -398,14 +398,14 @@ test.serial( const result = await downloadDependencyCaches( codeql, features, - [KnownLanguage.csharp], + [BuiltInLanguage.csharp], logger, ); // Check that the status report for telemetry indicates that one cache was restored with a partial match. const statusReport = result.statusReport; t.is(statusReport.length, 1); - t.is(statusReport[0].language, KnownLanguage.csharp); + t.is(statusReport[0].language, BuiltInLanguage.csharp); t.is(statusReport[0].hit_kind, CacheHitKind.Partial); // Check that the restored key has been returned. @@ -426,7 +426,7 @@ test("uploadDependencyCaches - skips upload for a language with no cache config" const logger = getRecordingLogger(messages); const features = createFeatures([]); const config = createTestConfig({ - languages: [KnownLanguage.actions], + languages: [BuiltInLanguage.actions], }); const result = await uploadDependencyCaches(codeql, features, config, logger); @@ -444,7 +444,7 @@ test.serial( const logger = getRecordingLogger(messages); const features = createFeatures([]); const config = createTestConfig({ - languages: [KnownLanguage.go], + languages: [BuiltInLanguage.go], }); const makePatternCheckStub = sinon.stub(internal, "makePatternCheck"); @@ -457,7 +457,7 @@ test.serial( logger, ); t.is(result.length, 1); - t.is(result[0].language, KnownLanguage.go); + t.is(result[0].language, BuiltInLanguage.go); t.is(result[0].result, CacheStoreResult.NoHash); }, ); @@ -483,12 +483,12 @@ test.serial( const primaryCacheKey = await cacheKey( codeql, features, - KnownLanguage.csharp, + BuiltInLanguage.csharp, CSHARP_BASE_PATTERNS, ); const config = createTestConfig({ - languages: [KnownLanguage.csharp], + languages: [BuiltInLanguage.csharp], dependencyCachingRestoredKeys: [primaryCacheKey], }); @@ -499,7 +499,7 @@ test.serial( logger, ); t.is(result.length, 1); - t.is(result[0].language, KnownLanguage.csharp); + t.is(result[0].language, BuiltInLanguage.csharp); t.is(result[0].result, CacheStoreResult.Duplicate); }, ); @@ -525,7 +525,7 @@ test.serial( sinon.stub(cachingUtils, "getTotalCacheSize").resolves(0); const config = createTestConfig({ - languages: [KnownLanguage.csharp], + languages: [BuiltInLanguage.csharp], }); const result = await uploadDependencyCaches( @@ -535,7 +535,7 @@ test.serial( logger, ); t.is(result.length, 1); - t.is(result[0].language, KnownLanguage.csharp); + t.is(result[0].language, BuiltInLanguage.csharp); t.is(result[0].result, CacheStoreResult.Empty); checkExpectedLogMessages(t, messages, [ @@ -566,7 +566,7 @@ test.serial( sinon.stub(actionsCache, "saveCache").resolves(); const config = createTestConfig({ - languages: [KnownLanguage.csharp], + languages: [BuiltInLanguage.csharp], }); const result = await uploadDependencyCaches( @@ -576,7 +576,7 @@ test.serial( logger, ); t.is(result.length, 1); - t.is(result[0].language, KnownLanguage.csharp); + t.is(result[0].language, BuiltInLanguage.csharp); t.is(result[0].result, CacheStoreResult.Stored); t.is(result[0].upload_size_bytes, 1024); @@ -608,7 +608,7 @@ test.serial( .throws(new actionsCache.ReserveCacheError("Already in use")); const config = createTestConfig({ - languages: [KnownLanguage.csharp], + languages: [BuiltInLanguage.csharp], }); await t.notThrowsAsync(async () => { @@ -619,7 +619,7 @@ test.serial( logger, ); t.is(result.length, 1); - t.is(result[0].language, KnownLanguage.csharp); + t.is(result[0].language, BuiltInLanguage.csharp); t.is(result[0].result, CacheStoreResult.Duplicate); checkExpectedLogMessages(t, messages, ["Not uploading cache for"]); @@ -647,7 +647,7 @@ test.serial("uploadDependencyCaches - throws other exceptions", async (t) => { sinon.stub(actionsCache, "saveCache").throws(); const config = createTestConfig({ - languages: [KnownLanguage.csharp], + languages: [BuiltInLanguage.csharp], }); await t.throwsAsync(async () => { @@ -659,7 +659,7 @@ test("getFeaturePrefix - returns empty string if no features are enabled", async const codeql = createStubCodeQL({}); const features = createFeatures([]); - for (const knownLanguage of Object.values(KnownLanguage)) { + for (const knownLanguage of Object.values(BuiltInLanguage)) { const result = await getFeaturePrefix(codeql, features, knownLanguage); t.deepEqual(result, "", `Expected no feature prefix for ${knownLanguage}`); } @@ -669,7 +669,11 @@ test("getFeaturePrefix - C# - returns prefix if CsharpNewCacheKey is enabled", a const codeql = createStubCodeQL({}); const features = createFeatures([Feature.CsharpNewCacheKey]); - const result = await getFeaturePrefix(codeql, features, KnownLanguage.csharp); + const result = await getFeaturePrefix( + codeql, + features, + BuiltInLanguage.csharp, + ); t.notDeepEqual(result, ""); t.assert(result.endsWith("-")); // Check the length of the prefix, which should correspond to `cacheKeyHashLength` + 1 for the trailing `-`. @@ -680,9 +684,9 @@ test("getFeaturePrefix - non-C# - returns '' if CsharpNewCacheKey is enabled", a const codeql = createStubCodeQL({}); const features = createFeatures([Feature.CsharpNewCacheKey]); - for (const knownLanguage of Object.values(KnownLanguage)) { + for (const knownLanguage of Object.values(BuiltInLanguage)) { // Skip C# since we expect a result for it, which is tested in the previous test. - if (knownLanguage === KnownLanguage.csharp) { + if (knownLanguage === BuiltInLanguage.csharp) { continue; } const result = await getFeaturePrefix(codeql, features, knownLanguage); @@ -694,7 +698,11 @@ test("getFeaturePrefix - C# - returns prefix if CsharpCacheBuildModeNone is enab const codeql = createStubCodeQL({}); const features = createFeatures([Feature.CsharpCacheBuildModeNone]); - const result = await getFeaturePrefix(codeql, features, KnownLanguage.csharp); + const result = await getFeaturePrefix( + codeql, + features, + BuiltInLanguage.csharp, + ); t.notDeepEqual(result, ""); t.assert(result.endsWith("-")); // Check the length of the prefix, which should correspond to `cacheKeyHashLength` + 1 for the trailing `-`. @@ -705,9 +713,9 @@ test("getFeaturePrefix - non-C# - returns '' if CsharpCacheBuildModeNone is enab const codeql = createStubCodeQL({}); const features = createFeatures([Feature.CsharpCacheBuildModeNone]); - for (const knownLanguage of Object.values(KnownLanguage)) { + for (const knownLanguage of Object.values(BuiltInLanguage)) { // Skip C# since we expect a result for it, which is tested in the previous test. - if (knownLanguage === KnownLanguage.csharp) { + if (knownLanguage === BuiltInLanguage.csharp) { continue; } const result = await getFeaturePrefix(codeql, features, knownLanguage); diff --git a/src/dependency-caching.ts b/src/dependency-caching.ts index dc9a140be..f04d38f46 100644 --- a/src/dependency-caching.ts +++ b/src/dependency-caching.ts @@ -11,7 +11,7 @@ import { CodeQL } from "./codeql"; import { Config } from "./config-utils"; import { EnvVar } from "./environment"; import { Feature, FeatureEnablement } from "./feature-flags"; -import { KnownLanguage, Language } from "./languages"; +import { BuiltInLanguage, Language } from "./languages"; import { Logger } from "./logging"; import { getErrorMessage, getRequiredEnvParam } from "./util"; @@ -541,7 +541,7 @@ export async function getFeaturePrefix( } }; - if (language === KnownLanguage.csharp) { + if (language === BuiltInLanguage.csharp) { await addFeatureIfEnabled(Feature.CsharpNewCacheKey); await addFeatureIfEnabled(Feature.CsharpCacheBuildModeNone); } diff --git a/src/init-action.ts b/src/init-action.ts index bc95304bf..795378235 100644 --- a/src/init-action.ts +++ b/src/init-action.ts @@ -58,7 +58,7 @@ import { initConfig, runDatabaseInitCluster, } from "./init"; -import { JavaEnvVars, KnownLanguage } from "./languages"; +import { JavaEnvVars, BuiltInLanguage } from "./languages"; import { getActionsLogger, Logger, withGroupAsync } from "./logging"; import { downloadOverlayBaseDatabaseFromCache, @@ -330,7 +330,7 @@ async function run(startedAt: Date) { // requested rust - don't enable it via language autodetection. configUtils .getRawLanguagesNoAutodetect(getOptionalInput("languages")) - .includes(KnownLanguage.rust) + .includes(BuiltInLanguage.rust) ) { const experimental = "2.19.3"; const publicPreview = "2.22.1"; @@ -390,7 +390,7 @@ async function run(startedAt: Date) { }); if ( - config.languages.includes(KnownLanguage.swift) && + config.languages.includes(BuiltInLanguage.swift) && process.platform !== "darwin" ) { throw new ConfigurationError( @@ -509,7 +509,7 @@ async function run(startedAt: Date) { } if ( - config.languages.includes(KnownLanguage.go) && + config.languages.includes(BuiltInLanguage.go) && process.platform === "linux" ) { try { @@ -567,7 +567,7 @@ async function run(startedAt: Date) { if (e instanceof FileCmdNotFoundError) { addDiagnostic( config, - KnownLanguage.go, + BuiltInLanguage.go, makeDiagnostic( "go/workflow/file-program-unavailable", "The `file` program is required on Linux, but does not appear to be installed", @@ -661,7 +661,7 @@ async function run(startedAt: Date) { (await codeQlVersionAtLeast(codeql, CODEQL_VERSION_JAR_MINIMIZATION)) && config.dependencyCachingEnabled && config.buildMode === BuildMode.None && - config.languages.includes(KnownLanguage.java) + config.languages.includes(BuiltInLanguage.java) ) { core.exportVariable( EnvVar.JAVA_EXTRACTOR_MINIMIZE_DEPENDENCY_JARS, diff --git a/src/init.test.ts b/src/init.test.ts index 1f1f0de8d..f7add6a9a 100644 --- a/src/init.test.ts +++ b/src/init.test.ts @@ -15,7 +15,7 @@ import { getFileCoverageInformationEnabled, logFileCoverageOnPrsDeprecationWarning, } from "./init"; -import { KnownLanguage } from "./languages"; +import { BuiltInLanguage } from "./languages"; import { createFeatures, LoggedMessage, @@ -152,7 +152,7 @@ test("cleanupDatabaseClusterDirectory can disable warning with options", async ( }); type PackInfo = { - language: KnownLanguage; + language: BuiltInLanguage; packinfoContents: string | undefined; sourceOnlyPack?: boolean; qlpackFileName?: string; @@ -169,13 +169,13 @@ const testCheckPacksForOverlayCompatibility = test.macro({ expectedResult, }: { cliOverlayVersion: number | undefined; - languages: KnownLanguage[]; + languages: BuiltInLanguage[]; packs: Record; expectedResult: boolean; }, ) => { await withTmpDir(async (tmpDir) => { - const packDirsByLanguage = new Map(); + const packDirsByLanguage = new Map(); for (const [packName, packInfo] of Object.entries(packs)) { const packPath = path.join(tmpDir, packName); @@ -242,10 +242,10 @@ test( "returns false when CLI does not support overlay", { cliOverlayVersion: undefined, - languages: [KnownLanguage.java], + languages: [BuiltInLanguage.java], packs: { "codeql/java-queries": { - language: KnownLanguage.java, + language: BuiltInLanguage.java, packinfoContents: '{"overlayVersion":2}', }, }, @@ -258,7 +258,7 @@ test( "returns true when there are no query packs", { cliOverlayVersion: 2, - languages: [KnownLanguage.java], + languages: [BuiltInLanguage.java], packs: {}, expectedResult: true, }, @@ -269,10 +269,10 @@ test( "returns true when query pack has not been compiled", { cliOverlayVersion: 2, - languages: [KnownLanguage.java], + languages: [BuiltInLanguage.java], packs: { "codeql/java-queries": { - language: KnownLanguage.java, + language: BuiltInLanguage.java, packinfoContents: undefined, sourceOnlyPack: true, }, @@ -286,10 +286,10 @@ test( "returns true when query pack has expected overlay version", { cliOverlayVersion: 2, - languages: [KnownLanguage.java], + languages: [BuiltInLanguage.java], packs: { "codeql/java-queries": { - language: KnownLanguage.java, + language: BuiltInLanguage.java, packinfoContents: '{"overlayVersion":2}', }, }, @@ -302,14 +302,14 @@ test( "returns true when query packs for all languages to analyze are compatible", { cliOverlayVersion: 2, - languages: [KnownLanguage.cpp, KnownLanguage.java], + languages: [BuiltInLanguage.cpp, BuiltInLanguage.java], packs: { "codeql/cpp-queries": { - language: KnownLanguage.cpp, + language: BuiltInLanguage.cpp, packinfoContents: '{"overlayVersion":2}', }, "codeql/java-queries": { - language: KnownLanguage.java, + language: BuiltInLanguage.java, packinfoContents: '{"overlayVersion":2}', }, }, @@ -322,14 +322,14 @@ test( "returns true when query pack for a language not analyzed is incompatible", { cliOverlayVersion: 2, - languages: [KnownLanguage.java], + languages: [BuiltInLanguage.java], packs: { "codeql/cpp-queries": { - language: KnownLanguage.cpp, + language: BuiltInLanguage.cpp, packinfoContents: undefined, }, "codeql/java-queries": { - language: KnownLanguage.java, + language: BuiltInLanguage.java, packinfoContents: '{"overlayVersion":2}', }, }, @@ -342,14 +342,14 @@ test( "returns false when query pack for a language to analyze is incompatible", { cliOverlayVersion: 2, - languages: [KnownLanguage.cpp, KnownLanguage.java], + languages: [BuiltInLanguage.cpp, BuiltInLanguage.java], packs: { "codeql/cpp-queries": { - language: KnownLanguage.cpp, + language: BuiltInLanguage.cpp, packinfoContents: '{"overlayVersion":1}', }, "codeql/java-queries": { - language: KnownLanguage.java, + language: BuiltInLanguage.java, packinfoContents: '{"overlayVersion":2}', }, }, @@ -362,14 +362,14 @@ test( "returns false when query pack is missing .packinfo", { cliOverlayVersion: 2, - languages: [KnownLanguage.java], + languages: [BuiltInLanguage.java], packs: { "codeql/java-queries": { - language: KnownLanguage.java, + language: BuiltInLanguage.java, packinfoContents: '{"overlayVersion":2}', }, "custom/queries": { - language: KnownLanguage.java, + language: BuiltInLanguage.java, packinfoContents: undefined, }, }, @@ -382,14 +382,14 @@ test( "returns false when query pack has different overlay version", { cliOverlayVersion: 2, - languages: [KnownLanguage.java], + languages: [BuiltInLanguage.java], packs: { "codeql/java-queries": { - language: KnownLanguage.java, + language: BuiltInLanguage.java, packinfoContents: '{"overlayVersion":2}', }, "custom/queries": { - language: KnownLanguage.java, + language: BuiltInLanguage.java, packinfoContents: '{"overlayVersion":1}', }, }, @@ -402,14 +402,14 @@ test( "returns false when query pack is missing overlayVersion in .packinfo", { cliOverlayVersion: 2, - languages: [KnownLanguage.java], + languages: [BuiltInLanguage.java], packs: { "codeql/java-queries": { - language: KnownLanguage.java, + language: BuiltInLanguage.java, packinfoContents: '{"overlayVersion":2}', }, "custom/queries": { - language: KnownLanguage.java, + language: BuiltInLanguage.java, packinfoContents: "{}", }, }, @@ -422,14 +422,14 @@ test( "returns false when .packinfo is not valid JSON", { cliOverlayVersion: 2, - languages: [KnownLanguage.java], + languages: [BuiltInLanguage.java], packs: { "codeql/java-queries": { - language: KnownLanguage.java, + language: BuiltInLanguage.java, packinfoContents: '{"overlayVersion":2}', }, "custom/queries": { - language: KnownLanguage.java, + language: BuiltInLanguage.java, packinfoContents: "this_is_not_valid_json", }, }, @@ -442,10 +442,10 @@ test( "returns true when query pack uses codeql-pack.yml filename", { cliOverlayVersion: 2, - languages: [KnownLanguage.java], + languages: [BuiltInLanguage.java], packs: { "codeql/java-queries": { - language: KnownLanguage.java, + language: BuiltInLanguage.java, packinfoContents: '{"overlayVersion":2}', qlpackFileName: "codeql-pack.yml", }, diff --git a/src/init.ts b/src/init.ts index 8e3fa21a4..8ed6f6400 100644 --- a/src/init.ts +++ b/src/init.ts @@ -26,7 +26,7 @@ import { RepositoryProperties, RepositoryPropertyName, } from "./feature-flags/properties"; -import { KnownLanguage, Language } from "./languages"; +import { BuiltInLanguage, Language } from "./languages"; import { Logger, withGroupAsync } from "./logging"; import { ToolsSource } from "./setup-codeql"; import { ZstdAvailability } from "./tar"; @@ -235,7 +235,7 @@ export async function checkInstallPython311( codeql: CodeQL, ) { if ( - languages.includes(KnownLanguage.python) && + languages.includes(BuiltInLanguage.python) && process.platform === "win32" && !(await codeql.getVersion()).features?.supportsPython312 ) { diff --git a/src/languages/index.test.ts b/src/languages/index.test.ts index 048f6b702..4fe1675af 100644 --- a/src/languages/index.test.ts +++ b/src/languages/index.test.ts @@ -4,43 +4,43 @@ import { setupTests } from "../testing-utils"; import knownLanguagesData from "./builtin.json"; -import { isKnownLanguage, KnownLanguage, parseBuiltInLanguage } from "."; +import { isBuiltInLanguage, BuiltInLanguage, parseBuiltInLanguage } from "."; setupTests(test); test("parseBuiltInLanguage", (t) => { // Exact matches - t.is(parseBuiltInLanguage("csharp"), KnownLanguage.csharp); - t.is(parseBuiltInLanguage("cpp"), KnownLanguage.cpp); - t.is(parseBuiltInLanguage("go"), KnownLanguage.go); - t.is(parseBuiltInLanguage("java"), KnownLanguage.java); - t.is(parseBuiltInLanguage("javascript"), KnownLanguage.javascript); - t.is(parseBuiltInLanguage("python"), KnownLanguage.python); - t.is(parseBuiltInLanguage("rust"), KnownLanguage.rust); + t.is(parseBuiltInLanguage("csharp"), BuiltInLanguage.csharp); + t.is(parseBuiltInLanguage("cpp"), BuiltInLanguage.cpp); + t.is(parseBuiltInLanguage("go"), BuiltInLanguage.go); + t.is(parseBuiltInLanguage("java"), BuiltInLanguage.java); + t.is(parseBuiltInLanguage("javascript"), BuiltInLanguage.javascript); + t.is(parseBuiltInLanguage("python"), BuiltInLanguage.python); + t.is(parseBuiltInLanguage("rust"), BuiltInLanguage.rust); // Aliases - t.is(parseBuiltInLanguage(" \t\nCsHaRp\t\t"), KnownLanguage.csharp); - t.is(parseBuiltInLanguage("c"), KnownLanguage.cpp); - t.is(parseBuiltInLanguage("c++"), KnownLanguage.cpp); - t.is(parseBuiltInLanguage("kotlin"), KnownLanguage.java); - t.is(parseBuiltInLanguage("typescript"), KnownLanguage.javascript); + t.is(parseBuiltInLanguage(" \t\nCsHaRp\t\t"), BuiltInLanguage.csharp); + t.is(parseBuiltInLanguage("c"), BuiltInLanguage.cpp); + t.is(parseBuiltInLanguage("c++"), BuiltInLanguage.cpp); + t.is(parseBuiltInLanguage("kotlin"), BuiltInLanguage.java); + t.is(parseBuiltInLanguage("typescript"), BuiltInLanguage.javascript); // spaces and case-insensitivity - t.is(parseBuiltInLanguage(" \t\nkOtLin\t\t"), KnownLanguage.java); + t.is(parseBuiltInLanguage(" \t\nkOtLin\t\t"), BuiltInLanguage.java); // Not matches - t.is(parseBuiltInLanguage(KnownLanguage.python), KnownLanguage.python); + t.is(parseBuiltInLanguage(BuiltInLanguage.python), BuiltInLanguage.python); t.is(parseBuiltInLanguage("foo"), undefined); t.is(parseBuiltInLanguage(" "), undefined); t.is(parseBuiltInLanguage(""), undefined); }); -test("isKnownLanguage matches the curated known-language set", (t) => { - t.true(isKnownLanguage(KnownLanguage.actions)); - t.true(isKnownLanguage(KnownLanguage.swift)); - t.false(isKnownLanguage("typescript")); +test("isBuiltInLanguage matches the curated built-in language set", (t) => { + t.true(isBuiltInLanguage(BuiltInLanguage.actions)); + t.true(isBuiltInLanguage(BuiltInLanguage.swift)); + t.false(isBuiltInLanguage("typescript")); }); -test("KnownLanguage enum matches builtin.json", (t) => { - t.deepEqual(Object.values(KnownLanguage), knownLanguagesData.languages); +test("BuiltInLanguage enum matches builtin.json", (t) => { + t.deepEqual(Object.values(BuiltInLanguage), knownLanguagesData.languages); }); diff --git a/src/languages/index.ts b/src/languages/index.ts index 7187ccc8a..2e91d8f41 100644 --- a/src/languages/index.ts +++ b/src/languages/index.ts @@ -3,13 +3,8 @@ import knownLanguagesData from "./builtin.json"; /** A language to analyze with CodeQL. */ export type Language = string; -/** - * A language supported by CodeQL that is treated specially by the Action. - * - * This is not an exhaustive list of languages supported by CodeQL and new - * languages do not need to be added here. - */ -export enum KnownLanguage { +/** A language built into the `defaults.json` CodeQL distribution. */ +export enum BuiltInLanguage { actions = "actions", cpp = "cpp", csharp = "csharp", @@ -30,10 +25,12 @@ export enum JavaEnvVars { _JAVA_OPTIONS = "_JAVA_OPTIONS", } -const knownLanguageSet = new Set(knownLanguagesData.languages); +const builtInLanguageSet = new Set(knownLanguagesData.languages); -export function isKnownLanguage(language: string): language is KnownLanguage { - return knownLanguageSet.has(language); +export function isBuiltInLanguage( + language: string, +): language is BuiltInLanguage { + return builtInLanguageSet.has(language); } /** @@ -41,13 +38,13 @@ export function isKnownLanguage(language: string): language is KnownLanguage { */ export function parseBuiltInLanguage( language: string, -): KnownLanguage | undefined { +): BuiltInLanguage | undefined { language = language.trim().toLowerCase(); language = knownLanguagesData.aliases[ language as keyof typeof knownLanguagesData.aliases ] ?? language; - if (isKnownLanguage(language)) { + if (isBuiltInLanguage(language)) { return language; } return undefined; diff --git a/src/overlay/index.test.ts b/src/overlay/index.test.ts index 2d0b4d3fc..0db12f603 100644 --- a/src/overlay/index.test.ts +++ b/src/overlay/index.test.ts @@ -9,7 +9,7 @@ import * as actionsUtil from "../actions-util"; import * as apiClient from "../api-client"; import { ResolveDatabaseOutput } from "../codeql"; import * as gitUtils from "../git-utils"; -import { KnownLanguage } from "../languages"; +import { BuiltInLanguage } from "../languages"; import { getRunnerLogger } from "../logging"; import { createTestConfig, @@ -382,7 +382,7 @@ const testDownloadOverlayBaseDatabaseFromCache = test.macro({ const testCase = { ...defaultDownloadTestCase, ...partialTestCase }; const config = createTestConfig({ dbLocation, - languages: [KnownLanguage.java], + languages: [BuiltInLanguage.java], }); config.overlayDatabaseMode = testCase.overlayDatabaseMode; diff --git a/src/start-proxy-action.ts b/src/start-proxy-action.ts index 235970b47..a288acc5c 100644 --- a/src/start-proxy-action.ts +++ b/src/start-proxy-action.ts @@ -6,7 +6,7 @@ import * as core from "@actions/core"; import * as actionsUtil from "./actions-util"; import { getGitHubVersion } from "./api-client"; import { Feature, FeatureEnablement, initFeatures } from "./feature-flags"; -import { KnownLanguage, parseBuiltInLanguage } from "./languages"; +import { BuiltInLanguage, parseBuiltInLanguage } from "./languages"; import { getActionsLogger, Logger } from "./logging"; import { getRepositoryNwo } from "./repository"; import { @@ -32,7 +32,7 @@ async function run(startedAt: Date) { const logger = getActionsLogger(); let features: FeatureEnablement | undefined; - let language: KnownLanguage | undefined; + let language: BuiltInLanguage | undefined; try { // Make inputs accessible in the `post` step. diff --git a/src/start-proxy.test.ts b/src/start-proxy.test.ts index c5d452645..4d8f4afee 100644 --- a/src/start-proxy.test.ts +++ b/src/start-proxy.test.ts @@ -8,7 +8,7 @@ import sinon from "sinon"; import * as apiClient from "./api-client"; import * as defaults from "./defaults.json"; import { setUpFeatureFlagTests } from "./feature-flags/testing-util"; -import { KnownLanguage } from "./languages"; +import { BuiltInLanguage } from "./languages"; import { getRunnerLogger, Logger } from "./logging"; import * as startProxyExports from "./start-proxy"; import * as statusReport from "./status-report"; @@ -231,7 +231,7 @@ test("getCredentials filters by language when specified", async (t) => { getRunnerLogger(true), undefined, toEncodedJSON(mixedCredentials), - KnownLanguage.java, + BuiltInLanguage.java, ); t.is(credentials.length, 1); t.is(credentials[0].type, "maven_repository"); @@ -242,7 +242,7 @@ test("getCredentials returns all for a language when specified", async (t) => { getRunnerLogger(true), undefined, toEncodedJSON(mixedCredentials), - KnownLanguage.go, + BuiltInLanguage.go, ); t.is(credentials.length, 2); @@ -262,7 +262,7 @@ test("getCredentials returns all goproxy_servers for Go when specified", async ( getRunnerLogger(true), undefined, toEncodedJSON(multipleGoproxyServers), - KnownLanguage.go, + BuiltInLanguage.go, ); t.is(credentials.length, 3); @@ -291,7 +291,7 @@ test("getCredentials returns all maven_repositories for Java when specified", as getRunnerLogger(true), undefined, toEncodedJSON(multipleMavenRepositories), - KnownLanguage.java, + BuiltInLanguage.java, ); t.is(credentials.length, 2); @@ -479,7 +479,7 @@ test("getCredentials accepts OIDC configurations", (t) => { getRunnerLogger(true), undefined, toEncodedJSON(oidcConfigurations), - KnownLanguage.csharp, + BuiltInLanguage.csharp, ); t.is(credentials.length, 3); @@ -646,7 +646,7 @@ test("getCredentials returns all credentials for Actions when using LANGUAGE_TO_ getRunnerLogger(true), undefined, credentialsInput, - KnownLanguage.actions, + BuiltInLanguage.actions, false, ); t.is(credentials.length, mixedCredentials.length); @@ -659,7 +659,7 @@ test("getCredentials returns no credentials for Actions when using NEW_LANGUAGE_ getRunnerLogger(true), undefined, credentialsInput, - KnownLanguage.actions, + BuiltInLanguage.actions, true, ); t.deepEqual(credentials, []); diff --git a/src/start-proxy.ts b/src/start-proxy.ts index 749a09a7c..8859eb16e 100644 --- a/src/start-proxy.ts +++ b/src/start-proxy.ts @@ -18,7 +18,7 @@ import { FeatureEnablement, } from "./feature-flags"; import * as json from "./json"; -import { KnownLanguage } from "./languages"; +import { BuiltInLanguage } from "./languages"; import { Logger } from "./logging"; import { Address, @@ -156,7 +156,7 @@ export function getSafeErrorMessage(error: Error): string { export async function sendFailedStatusReport( logger: Logger, startedAt: Date, - language: KnownLanguage | undefined, + language: BuiltInLanguage | undefined, unwrappedError: unknown, ) { const error = util.wrapError(unwrappedError); @@ -195,7 +195,7 @@ function isPAT(value: string) { ]); } -type RegistryMapping = Partial>; +type RegistryMapping = Partial>; const LANGUAGE_TO_REGISTRY_TYPE: RegistryMapping = { java: ["maven_repository"], @@ -327,7 +327,7 @@ export function getCredentials( logger: Logger, registrySecrets: string | undefined, registriesCredentials: string | undefined, - language: KnownLanguage | undefined, + language: BuiltInLanguage | undefined, skipUnusedRegistries: boolean = false, ): Credential[] { const registryMapping = skipUnusedRegistries diff --git a/src/start-proxy/environment.test.ts b/src/start-proxy/environment.test.ts index 6722c53ab..decd2fa6b 100644 --- a/src/start-proxy/environment.test.ts +++ b/src/start-proxy/environment.test.ts @@ -7,7 +7,7 @@ import * as io from "@actions/io"; import test, { ExecutionContext } from "ava"; import sinon from "sinon"; -import { JavaEnvVars, KnownLanguage } from "../languages"; +import { JavaEnvVars, BuiltInLanguage } from "../languages"; import { checkExpectedLogMessages, getRecordingLogger, @@ -182,11 +182,11 @@ test.serial("checkProxyEnvVars - credentials are removed from URLs", (t) => { }); test.serial( - "checkProxyEnvironment - includes base checks for all known languages", + "checkProxyEnvironment - includes base checks for all built-in languages", async (t) => { stubToolrunner(); - for (const language of Object.values(KnownLanguage)) { + for (const language of Object.values(BuiltInLanguage)) { const messages: LoggedMessage[] = []; const logger = getRecordingLogger(messages); @@ -204,7 +204,7 @@ test.serial( stubToolrunner(); - await checkProxyEnvironment(logger, KnownLanguage.java); + await checkProxyEnvironment(logger, BuiltInLanguage.java); assertEnvVarLogMessages(t, Object.keys(ProxyEnvVars), messages, false); assertEnvVarLogMessages(t, JAVA_PROXY_ENV_VARS, messages, false); }, diff --git a/src/start-proxy/environment.ts b/src/start-proxy/environment.ts index 13eb12190..0a683cc07 100644 --- a/src/start-proxy/environment.ts +++ b/src/start-proxy/environment.ts @@ -4,7 +4,7 @@ import * as path from "path"; import * as toolrunner from "@actions/exec/lib/toolrunner"; import * as io from "@actions/io"; -import { JavaEnvVars, KnownLanguage, Language } from "../languages"; +import { JavaEnvVars, BuiltInLanguage, Language } from "../languages"; import { Logger } from "../logging"; import { getErrorMessage, isDefined } from "../util"; @@ -196,7 +196,7 @@ export async function checkProxyEnvironment( // Check language-specific configurations. If we don't know the language, // then we perform all checks. - if (language === undefined || language === KnownLanguage.java) { + if (language === undefined || language === BuiltInLanguage.java) { checkJavaEnvVars(logger); await showJavaSettings(logger); diff --git a/src/status-report.test.ts b/src/status-report.test.ts index 35d608b7d..8302e411f 100644 --- a/src/status-report.test.ts +++ b/src/status-report.test.ts @@ -4,7 +4,7 @@ import * as sinon from "sinon"; import * as actionsUtil from "./actions-util"; import { Config } from "./config-utils"; import { EnvVar } from "./environment"; -import { KnownLanguage } from "./languages"; +import { BuiltInLanguage } from "./languages"; import { getRunnerLogger } from "./logging"; import { ToolsSource } from "./setup-codeql"; import { @@ -48,7 +48,7 @@ test.serial("createStatusReportBase", async (t) => { new Date("May 19, 2023 05:19:00"), createTestConfig({ buildMode: BuildMode.None, - languages: [KnownLanguage.java, KnownLanguage.swift], + languages: [BuiltInLanguage.java, BuiltInLanguage.swift], }), { numAvailableBytes: 100, numTotalBytes: 500 }, getRunnerLogger(false), @@ -345,7 +345,7 @@ test.serial( "returns a value", createTestConfig({ buildMode: BuildMode.None, - languages: [KnownLanguage.java, KnownLanguage.swift], + languages: [BuiltInLanguage.java, BuiltInLanguage.swift], }), { trap_cache_download_size_bytes: 1024, @@ -360,7 +360,7 @@ test.serial( "includes packs for a single language", createTestConfig({ buildMode: BuildMode.None, - languages: [KnownLanguage.java], + languages: [BuiltInLanguage.java], computedConfig: { packs: ["foo", "bar"], }, @@ -377,7 +377,7 @@ test.serial( "includes packs for multiple languages", createTestConfig({ buildMode: BuildMode.None, - languages: [KnownLanguage.java, KnownLanguage.swift], + languages: [BuiltInLanguage.java, BuiltInLanguage.swift], computedConfig: { packs: { java: ["java-foo", "java-bar"], swift: ["swift-bar"] }, }, diff --git a/src/tracer-config.test.ts b/src/tracer-config.test.ts index cc4995708..58f844b8e 100644 --- a/src/tracer-config.test.ts +++ b/src/tracer-config.test.ts @@ -6,7 +6,7 @@ import * as sinon from "sinon"; import { CodeQL, getCodeQLForTesting } from "./codeql"; import * as configUtils from "./config-utils"; -import { KnownLanguage } from "./languages"; +import { BuiltInLanguage } from "./languages"; import { createTestConfig, makeVersionInfo, setupTests } from "./testing-utils"; import { ToolsFeature } from "./tools-features"; import { getCombinedTracerConfig } from "./tracer-config"; @@ -16,7 +16,7 @@ setupTests(test); function getTestConfig(tempDir: string): configUtils.Config { return createTestConfig({ - languages: [KnownLanguage.java], + languages: [BuiltInLanguage.java], tempDir, dbLocation: path.resolve(tempDir, "codeql_databases"), }); @@ -36,7 +36,7 @@ async function stubCodeql( ); sinon .stub(codeqlObject, "isTracedLanguage") - .withArgs(KnownLanguage.java) + .withArgs(BuiltInLanguage.java) .resolves(true); return codeqlObject; } @@ -45,7 +45,7 @@ test("getCombinedTracerConfig - return undefined when no languages are traced la await util.withTmpDir(async (tmpDir) => { const config = getTestConfig(tmpDir); // No traced languages - config.languages = [KnownLanguage.javascript, KnownLanguage.python]; + config.languages = [BuiltInLanguage.javascript, BuiltInLanguage.python]; t.deepEqual( await getCombinedTracerConfig(await stubCodeql(), config), undefined, diff --git a/src/trap-caching.test.ts b/src/trap-caching.test.ts index a6c7fc76c..980547579 100644 --- a/src/trap-caching.test.ts +++ b/src/trap-caching.test.ts @@ -15,7 +15,7 @@ import { import * as configUtils from "./config-utils"; import { Feature } from "./feature-flags"; import * as gitUtils from "./git-utils"; -import { KnownLanguage } from "./languages"; +import { BuiltInLanguage } from "./languages"; import { getRunnerLogger } from "./logging"; import { createFeatures, @@ -41,7 +41,7 @@ const stubCodeql = createStubCodeQL({ async betterResolveLanguages() { return { extractors: { - [KnownLanguage.javascript]: [ + [BuiltInLanguage.javascript]: [ { extractor_root: "some_root", extractor_options: { @@ -65,7 +65,7 @@ const stubCodeql = createStubCodeQL({ }, }, ], - [KnownLanguage.cpp]: [ + [BuiltInLanguage.cpp]: [ { extractor_root: "other_root", }, @@ -76,7 +76,7 @@ const stubCodeql = createStubCodeQL({ }); const testConfigWithoutTmpDir = createTestConfig({ - languages: [KnownLanguage.javascript, KnownLanguage.cpp], + languages: [BuiltInLanguage.javascript, BuiltInLanguage.cpp], trapCaches: { javascript: "/some/cache/dir", }, @@ -84,7 +84,7 @@ const testConfigWithoutTmpDir = createTestConfig({ function getTestConfigWithTempDir(tempDir: string): configUtils.Config { return createTestConfig({ - languages: [KnownLanguage.javascript, KnownLanguage.ruby], + languages: [BuiltInLanguage.javascript, BuiltInLanguage.ruby], tempDir, dbLocation: path.resolve(tempDir, "codeql_databases"), trapCaches: { @@ -100,7 +100,7 @@ test.serial("check flags for JS, analyzing default branch", async (t) => { sinon.stub(gitUtils, "isAnalyzingDefaultBranch").resolves(true); const result = await getTrapCachingExtractorConfigArgsForLang( config, - KnownLanguage.javascript, + BuiltInLanguage.javascript, ); t.deepEqual(result, [ `-O=javascript.trap.cache.dir=${path.resolve(tmpDir, "jsCache")}`, @@ -131,10 +131,10 @@ test("get languages that support TRAP caching", async (t) => { const logger = getRecordingLogger(loggedMessages); const languagesSupportingCaching = await getLanguagesSupportingCaching( stubCodeql, - [KnownLanguage.javascript, KnownLanguage.cpp], + [BuiltInLanguage.javascript, BuiltInLanguage.cpp], logger, ); - t.deepEqual(languagesSupportingCaching, [KnownLanguage.javascript]); + t.deepEqual(languagesSupportingCaching, [BuiltInLanguage.javascript]); }); test.serial("upload cache key contains right fields", async (t) => { @@ -180,7 +180,7 @@ test.serial( ); await downloadTrapCaches( stubCodeql, - [KnownLanguage.javascript, KnownLanguage.cpp], + [BuiltInLanguage.javascript, BuiltInLanguage.cpp], logger, ); t.assert(