Enable language specific baselines via feature flag

This commit is contained in:
Henry Mercer
2023-08-11 17:20:42 +01:00
parent 9a510d9b07
commit 8a7b2e9c9b
6 changed files with 45 additions and 3 deletions

View File

@@ -16,6 +16,7 @@ import {
Feature,
FeatureEnablement,
useCodeScanningConfigInCli,
CODEQL_VERSION_LANGUAGE_BASELINE_CONFIG,
} from "./feature-flags";
import { isTracedLanguage, Language } from "./languages";
import { Logger } from "./logging";
@@ -574,6 +575,20 @@ export async function getCodeQLForCmd(
) {
extraArgs.push(`--qlconfig-file=${qlconfigFile}`);
}
if (
await features.getValue(Feature.LanguageBaselineConfigEnabled, this)
) {
extraArgs.push("--calculate-language-specific-baseline");
} else if (
await util.codeQlVersionAbove(
this,
CODEQL_VERSION_LANGUAGE_BASELINE_CONFIG,
)
) {
extraArgs.push("--no-calculate-language-specific-baseline");
}
await runTool(
cmd,
[

View File

@@ -28,6 +28,11 @@ export const CODEQL_VERSION_ANALYSIS_SUMMARY_V2 = "2.14.0";
*/
export const CODEQL_VERSION_INTRA_LAYER_PARALLELISM = "2.14.0";
/**
* Versions 2.14.2+ of the CodeQL CLI support language-specific baseline configuration.
*/
export const CODEQL_VERSION_LANGUAGE_BASELINE_CONFIG = "2.14.2";
export interface CodeQLDefaultVersionInfo {
cliVersion: string;
tagName: string;
@@ -55,6 +60,7 @@ export enum Feature {
DisablePythonDependencyInstallationEnabled = "disable_python_dependency_installation_enabled",
EvaluatorIntraLayerParallelismEnabled = "evaluator_intra_layer_parallelism_enabled",
ExportDiagnosticsEnabled = "export_diagnostics_enabled",
LanguageBaselineConfigEnabled = "language_baseline_config_enabled",
MlPoweredQueriesEnabled = "ml_powered_queries_enabled",
QaTelemetryEnabled = "qa_telemetry_enabled",
ScalingReservedRamEnabled = "scaling_reserved_ram_enabled",
@@ -95,6 +101,11 @@ export const featureConfig: Record<
minimumVersion: "2.12.4",
defaultValue: true,
},
[Feature.LanguageBaselineConfigEnabled]: {
envVar: "CODEQL_ACTION_LANGUAGE_BASELINE_CONFIG",
minimumVersion: CODEQL_VERSION_LANGUAGE_BASELINE_CONFIG,
defaultValue: false,
},
[Feature.MlPoweredQueriesEnabled]: {
envVar: "CODEQL_ML_POWERED_QUERIES",
minimumVersion: undefined,