diff --git a/lib/analyze-action-post.js b/lib/analyze-action-post.js index 390921ac1..56d20cd93 100644 --- a/lib/analyze-action-post.js +++ b/lib/analyze-action-post.js @@ -126689,6 +126689,7 @@ function wrapCliConfigurationError(cliError) { // src/config-utils.ts var fs3 = __toESM(require("fs")); var path3 = __toESM(require("path")); +var semver5 = __toESM(require_semver2()); // src/analyses.ts var AnalysisKind = /* @__PURE__ */ ((AnalysisKind2) => { @@ -126711,20 +126712,6 @@ var PACK_IDENTIFIER_PATTERN = (function() { return new RegExp(`^${component}/${component}$`); })(); -// src/feature-flags.ts -var semver5 = __toESM(require_semver2()); - -// src/overlay-database-utils.ts -var fs2 = __toESM(require("fs")); -var path2 = __toESM(require("path")); -var actionsCache = __toESM(require_cache4()); - -// src/git-utils.ts -var core8 = __toESM(require_core()); -var toolrunner2 = __toESM(require_toolrunner()); -var io3 = __toESM(require_io()); -var semver3 = __toESM(require_semver2()); - // src/logging.ts var core7 = __toESM(require_core()); function getActionsLogger() { @@ -126747,7 +126734,18 @@ function withGroup(groupName, f) { } } +// src/feature-flags.ts +var semver4 = __toESM(require_semver2()); + +// src/overlay-database-utils.ts +var fs2 = __toESM(require("fs")); +var path2 = __toESM(require("path")); +var actionsCache = __toESM(require_cache4()); + // src/git-utils.ts +var core8 = __toESM(require_core()); +var toolrunner2 = __toESM(require_toolrunner()); +var io3 = __toESM(require_io()); var runGitCommand = async function(workingDirectory, args, customErrorMessage) { let stdout = ""; let stderr = ""; @@ -126969,13 +126967,13 @@ function computeChangedFiles(baseFileOids, overlayFileOids) { } // src/tools-features.ts -var semver4 = __toESM(require_semver2()); +var semver3 = __toESM(require_semver2()); function isSupportedToolsFeature(versionInfo, feature) { return !!versionInfo.features && versionInfo.features[feature]; } var SafeArtifactUploadVersion = "2.20.3"; function isSafeArtifactUpload(codeQlVersion) { - return !codeQlVersion ? true : semver4.gte(codeQlVersion, SafeArtifactUploadVersion); + return !codeQlVersion ? true : semver3.gte(codeQlVersion, SafeArtifactUploadVersion); } // src/feature-flags.ts diff --git a/lib/analyze-action.js b/lib/analyze-action.js index 2d4770b3a..f73d56c72 100644 --- a/lib/analyze-action.js +++ b/lib/analyze-action.js @@ -93955,6 +93955,7 @@ function wrapCliConfigurationError(cliError) { // src/config-utils.ts var fs6 = __toESM(require("fs")); var path7 = __toESM(require("path")); +var semver5 = __toESM(require_semver2()); // src/caching-utils.ts var crypto2 = __toESM(require("crypto")); @@ -93984,30 +93985,6 @@ var PACK_IDENTIFIER_PATTERN = (function() { return new RegExp(`^${component}/${component}$`); })(); -// src/diff-informed-analysis-utils.ts -var fs5 = __toESM(require("fs")); -var path6 = __toESM(require("path")); - -// src/feature-flags.ts -var fs4 = __toESM(require("fs")); -var path5 = __toESM(require("path")); -var semver5 = __toESM(require_semver2()); - -// src/defaults.json -var bundleVersion = "codeql-bundle-v2.23.8"; -var cliVersion = "2.23.8"; - -// src/overlay-database-utils.ts -var fs3 = __toESM(require("fs")); -var path4 = __toESM(require("path")); -var actionsCache = __toESM(require_cache4()); - -// src/git-utils.ts -var core8 = __toESM(require_core()); -var toolrunner2 = __toESM(require_toolrunner()); -var io3 = __toESM(require_io()); -var semver3 = __toESM(require_semver2()); - // src/diagnostics.ts var import_fs = require("fs"); var import_path = __toESM(require("path")); @@ -94088,7 +94065,28 @@ function writeDiagnostic(config, language, diagnostic) { } } +// src/diff-informed-analysis-utils.ts +var fs5 = __toESM(require("fs")); +var path6 = __toESM(require("path")); + +// src/feature-flags.ts +var fs4 = __toESM(require("fs")); +var path5 = __toESM(require("path")); +var semver4 = __toESM(require_semver2()); + +// src/defaults.json +var bundleVersion = "codeql-bundle-v2.23.8"; +var cliVersion = "2.23.8"; + +// src/overlay-database-utils.ts +var fs3 = __toESM(require("fs")); +var path4 = __toESM(require("path")); +var actionsCache = __toESM(require_cache4()); + // src/git-utils.ts +var core8 = __toESM(require_core()); +var toolrunner2 = __toESM(require_toolrunner()); +var io3 = __toESM(require_io()); var runGitCommand = async function(workingDirectory, args, customErrorMessage) { let stdout = ""; let stderr = ""; @@ -94479,7 +94477,7 @@ async function getCacheRestoreKeyPrefix(config, codeQlVersion) { } // src/tools-features.ts -var semver4 = __toESM(require_semver2()); +var semver3 = __toESM(require_semver2()); function isSupportedToolsFeature(versionInfo, feature) { return !!versionInfo.features && versionInfo.features[feature]; } @@ -94787,7 +94785,7 @@ var GitHubFeatureFlags = class { DEFAULT_VERSION_FEATURE_FLAG_PREFIX.length, f.length - DEFAULT_VERSION_FEATURE_FLAG_SUFFIX.length ).replace(/_/g, "."); - if (!semver5.valid(version)) { + if (!semver4.valid(version)) { this.logger.warning( `Ignoring feature flag ${f} as it does not specify a valid CodeQL version.` ); diff --git a/lib/autobuild-action.js b/lib/autobuild-action.js index 379947955..6c627fa4d 100644 --- a/lib/autobuild-action.js +++ b/lib/autobuild-action.js @@ -90553,6 +90553,7 @@ function wrapCliConfigurationError(cliError) { // src/config-utils.ts var fs4 = __toESM(require("fs")); var path4 = __toESM(require("path")); +var semver5 = __toESM(require_semver2()); // src/analyses.ts var AnalysisKind = /* @__PURE__ */ ((AnalysisKind2) => { @@ -90575,26 +90576,6 @@ var PACK_IDENTIFIER_PATTERN = (function() { return new RegExp(`^${component}/${component}$`); })(); -// src/feature-flags.ts -var fs3 = __toESM(require("fs")); -var path3 = __toESM(require("path")); -var semver5 = __toESM(require_semver2()); - -// src/defaults.json -var bundleVersion = "codeql-bundle-v2.23.8"; -var cliVersion = "2.23.8"; - -// src/overlay-database-utils.ts -var fs2 = __toESM(require("fs")); -var path2 = __toESM(require("path")); -var actionsCache = __toESM(require_cache4()); - -// src/git-utils.ts -var core8 = __toESM(require_core()); -var toolrunner2 = __toESM(require_toolrunner()); -var io3 = __toESM(require_io()); -var semver3 = __toESM(require_semver2()); - // src/logging.ts var core7 = __toESM(require_core()); function getActionsLogger() { @@ -90609,7 +90590,24 @@ function getActionsLogger() { }; } +// src/feature-flags.ts +var fs3 = __toESM(require("fs")); +var path3 = __toESM(require("path")); +var semver4 = __toESM(require_semver2()); + +// src/defaults.json +var bundleVersion = "codeql-bundle-v2.23.8"; +var cliVersion = "2.23.8"; + +// src/overlay-database-utils.ts +var fs2 = __toESM(require("fs")); +var path2 = __toESM(require("path")); +var actionsCache = __toESM(require_cache4()); + // src/git-utils.ts +var core8 = __toESM(require_core()); +var toolrunner2 = __toESM(require_toolrunner()); +var io3 = __toESM(require_io()); var runGitCommand = async function(workingDirectory, args, customErrorMessage) { let stdout = ""; let stderr = ""; @@ -90831,7 +90829,7 @@ function computeChangedFiles(baseFileOids, overlayFileOids) { } // src/tools-features.ts -var semver4 = __toESM(require_semver2()); +var semver3 = __toESM(require_semver2()); function isSupportedToolsFeature(versionInfo, feature) { return !!versionInfo.features && versionInfo.features[feature]; } @@ -91138,7 +91136,7 @@ var GitHubFeatureFlags = class { DEFAULT_VERSION_FEATURE_FLAG_PREFIX.length, f.length - DEFAULT_VERSION_FEATURE_FLAG_SUFFIX.length ).replace(/_/g, "."); - if (!semver5.valid(version)) { + if (!semver4.valid(version)) { this.logger.warning( `Ignoring feature flag ${f} as it does not specify a valid CodeQL version.` ); diff --git a/lib/init-action-post.js b/lib/init-action-post.js index cb81e1f33..86bb8b831 100644 --- a/lib/init-action-post.js +++ b/lib/init-action-post.js @@ -129997,6 +129997,7 @@ function wrapCliConfigurationError(cliError) { // src/config-utils.ts var fs6 = __toESM(require("fs")); var path6 = __toESM(require("path")); +var semver5 = __toESM(require_semver2()); // src/analyses.ts var AnalysisKind = /* @__PURE__ */ ((AnalysisKind2) => { @@ -130034,30 +130035,6 @@ var PACK_IDENTIFIER_PATTERN = (function() { return new RegExp(`^${component}/${component}$`); })(); -// src/diff-informed-analysis-utils.ts -var fs5 = __toESM(require("fs")); -var path5 = __toESM(require("path")); - -// src/feature-flags.ts -var fs4 = __toESM(require("fs")); -var path4 = __toESM(require("path")); -var semver5 = __toESM(require_semver2()); - -// src/defaults.json -var bundleVersion = "codeql-bundle-v2.23.8"; -var cliVersion = "2.23.8"; - -// src/overlay-database-utils.ts -var fs3 = __toESM(require("fs")); -var path3 = __toESM(require("path")); -var actionsCache = __toESM(require_cache4()); - -// src/git-utils.ts -var core8 = __toESM(require_core()); -var toolrunner2 = __toESM(require_toolrunner()); -var io3 = __toESM(require_io()); -var semver3 = __toESM(require_semver2()); - // src/logging.ts var core7 = __toESM(require_core()); function getActionsLogger() { @@ -130091,7 +130068,28 @@ function formatDuration(durationMs) { return `${minutes}m${seconds}s`; } +// src/diff-informed-analysis-utils.ts +var fs5 = __toESM(require("fs")); +var path5 = __toESM(require("path")); + +// src/feature-flags.ts +var fs4 = __toESM(require("fs")); +var path4 = __toESM(require("path")); +var semver4 = __toESM(require_semver2()); + +// src/defaults.json +var bundleVersion = "codeql-bundle-v2.23.8"; +var cliVersion = "2.23.8"; + +// src/overlay-database-utils.ts +var fs3 = __toESM(require("fs")); +var path3 = __toESM(require("path")); +var actionsCache = __toESM(require_cache4()); + // src/git-utils.ts +var core8 = __toESM(require_core()); +var toolrunner2 = __toESM(require_toolrunner()); +var io3 = __toESM(require_io()); var runGitCommand = async function(workingDirectory, args, customErrorMessage) { let stdout = ""; let stderr = ""; @@ -130347,13 +130345,13 @@ function computeChangedFiles(baseFileOids, overlayFileOids) { } // src/tools-features.ts -var semver4 = __toESM(require_semver2()); +var semver3 = __toESM(require_semver2()); function isSupportedToolsFeature(versionInfo, feature) { return !!versionInfo.features && versionInfo.features[feature]; } var SafeArtifactUploadVersion = "2.20.3"; function isSafeArtifactUpload(codeQlVersion) { - return !codeQlVersion ? true : semver4.gte(codeQlVersion, SafeArtifactUploadVersion); + return !codeQlVersion ? true : semver3.gte(codeQlVersion, SafeArtifactUploadVersion); } // src/feature-flags.ts @@ -130659,7 +130657,7 @@ var GitHubFeatureFlags = class { DEFAULT_VERSION_FEATURE_FLAG_PREFIX.length, f.length - DEFAULT_VERSION_FEATURE_FLAG_SUFFIX.length ).replace(/_/g, "."); - if (!semver5.valid(version)) { + if (!semver4.valid(version)) { this.logger.warning( `Ignoring feature flag ${f} as it does not specify a valid CodeQL version.` ); diff --git a/lib/init-action.js b/lib/init-action.js index 9b4abde3f..b780144e6 100644 --- a/lib/init-action.js +++ b/lib/init-action.js @@ -91073,6 +91073,7 @@ function getDependencyCachingEnabled() { var fs6 = __toESM(require("fs")); var path8 = __toESM(require("path")); var import_perf_hooks = require("perf_hooks"); +var semver5 = __toESM(require_semver2()); // src/config/db-config.ts var path3 = __toESM(require("path")); @@ -91417,26 +91418,6 @@ function parseUserConfig(logger, pathInput, contents, validateConfig) { } } -// src/feature-flags.ts -var fs4 = __toESM(require("fs")); -var path6 = __toESM(require("path")); -var semver5 = __toESM(require_semver2()); - -// src/defaults.json -var bundleVersion = "codeql-bundle-v2.23.8"; -var cliVersion = "2.23.8"; - -// src/overlay-database-utils.ts -var fs3 = __toESM(require("fs")); -var path5 = __toESM(require("path")); -var actionsCache = __toESM(require_cache4()); - -// src/git-utils.ts -var core8 = __toESM(require_core()); -var toolrunner2 = __toESM(require_toolrunner()); -var io3 = __toESM(require_io()); -var semver3 = __toESM(require_semver2()); - // src/diagnostics.ts var import_fs = require("fs"); var import_path = __toESM(require("path")); @@ -91549,9 +91530,25 @@ function makeTelemetryDiagnostic(id, name, attributes) { }); } +// src/feature-flags.ts +var fs4 = __toESM(require("fs")); +var path6 = __toESM(require("path")); +var semver4 = __toESM(require_semver2()); + +// src/defaults.json +var bundleVersion = "codeql-bundle-v2.23.8"; +var cliVersion = "2.23.8"; + +// src/overlay-database-utils.ts +var fs3 = __toESM(require("fs")); +var path5 = __toESM(require("path")); +var actionsCache = __toESM(require_cache4()); + // src/git-utils.ts +var core8 = __toESM(require_core()); +var toolrunner2 = __toESM(require_toolrunner()); +var io3 = __toESM(require_io()); var GIT_MINIMUM_VERSION_FOR_OVERLAY = "2.38.0"; -var cachedGitVersion; async function getGitVersionOrThrow() { const stdout = await runGitCommand( void 0, @@ -91564,42 +91561,6 @@ async function getGitVersionOrThrow() { } throw new Error(`Could not parse Git version from output: ${stdout.trim()}`); } -async function getGitVersion(logger) { - if (cachedGitVersion !== void 0) { - return cachedGitVersion; - } - try { - cachedGitVersion = await getGitVersionOrThrow(); - return cachedGitVersion; - } catch (e) { - logger.debug(`Could not determine Git version: ${getErrorMessage(e)}`); - return void 0; - } -} -async function logGitVersionTelemetry(config, logger) { - const version = await getGitVersion(logger); - if (version !== void 0 && config.languages.length > 0) { - addDiagnostic( - config, - // Arbitrarily choose the first language. We could also choose all languages, but that - // increases the risk of misinterpreting the data. - config.languages[0], - makeTelemetryDiagnostic( - "codeql-action/git-version-telemetry", - "Git version telemetry", - { gitVersion: version } - ) - ); - } -} -async function gitVersionAtLeast(requiredVersion, logger) { - const version = await getGitVersion(logger); - if (version === void 0) { - return false; - } - logger.debug(`Installed Git version is ${version}.`); - return semver3.gte(version, requiredVersion); -} var runGitCommand = async function(workingDirectory, args, customErrorMessage) { let stdout = ""; let stderr = ""; @@ -91980,7 +91941,7 @@ async function getCacheRestoreKeyPrefix(config, codeQlVersion) { } // src/tools-features.ts -var semver4 = __toESM(require_semver2()); +var semver3 = __toESM(require_semver2()); function isSupportedToolsFeature(versionInfo, feature) { return !!versionInfo.features && versionInfo.features[feature]; } @@ -92288,7 +92249,7 @@ var GitHubFeatureFlags = class { DEFAULT_VERSION_FEATURE_FLAG_PREFIX.length, f.length - DEFAULT_VERSION_FEATURE_FLAG_SUFFIX.length ).replace(/_/g, "."); - if (!semver5.valid(version)) { + if (!semver4.valid(version)) { this.logger.warning( `Ignoring feature flag ${f} as it does not specify a valid CodeQL version.` ); @@ -92875,7 +92836,7 @@ async function runnerSupportsOverlayAnalysis(ramInput, logger) { } return true; } -async function getOverlayDatabaseMode(codeql, features, languages, sourceRoot, buildMode, ramInput, codeScanningConfig, logger) { +async function getOverlayDatabaseMode(codeql, features, languages, sourceRoot, buildMode, ramInput, codeScanningConfig, gitVersion, logger) { let overlayDatabaseMode = "none" /* None */; let useOverlayDatabaseCaching = false; const modeEnv = process.env.CODEQL_OVERLAY_DATABASE_MODE; @@ -92943,7 +92904,13 @@ async function getOverlayDatabaseMode(codeql, features, languages, sourceRoot, b ); return nonOverlayAnalysis; } - if (!await gitVersionAtLeast(GIT_MINIMUM_VERSION_FOR_OVERLAY, logger)) { + if (gitVersion === void 0) { + logger.warning( + `Cannot build an ${overlayDatabaseMode} database because the Git version could not be determined. Falling back to creating a normal full database instead.` + ); + return nonOverlayAnalysis; + } + if (!semver5.gte(gitVersion, GIT_MINIMUM_VERSION_FOR_OVERLAY)) { logger.warning( `Cannot build an ${overlayDatabaseMode} database because the installed Git version is older than ${GIT_MINIMUM_VERSION_FOR_OVERLAY}. Falling back to creating a normal full database instead.` ); @@ -93002,6 +92969,14 @@ async function initConfig(features, inputs) { config.computedConfig.queries = queries; config.computedConfig["query-filters"] = []; } + let gitVersion = void 0; + try { + gitVersion = await getGitVersionOrThrow(); + logger.info(`Using Git version ${gitVersion}`); + await logGitVersionTelemetry(config, gitVersion); + } catch (e) { + logger.debug(`Could not determine Git version: ${getErrorMessage(e)}`); + } const { overlayDatabaseMode, useOverlayDatabaseCaching } = await getOverlayDatabaseMode( inputs.codeql, inputs.features, @@ -93010,6 +92985,7 @@ async function initConfig(features, inputs) { config.buildMode, inputs.ramInput, config.computedConfig, + gitVersion, logger ); logger.info( @@ -93212,6 +93188,21 @@ function appendExtraQueryExclusions(extraQueryExclusions, cliConfig) { function isCodeQualityEnabled(config) { return config.analysisKinds.includes("code-quality" /* CodeQuality */); } +async function logGitVersionTelemetry(config, gitVersion) { + if (config.languages.length > 0) { + addDiagnostic( + config, + // Arbitrarily choose the first language. We could also choose all languages, but that + // increases the risk of misinterpreting the data. + config.languages[0], + makeTelemetryDiagnostic( + "codeql-action/git-version-telemetry", + "Git version telemetry", + { gitVersion } + ) + ); + } +} // src/dependency-caching.ts var os2 = __toESM(require("os")); @@ -95973,7 +95964,6 @@ async function run() { ) ); } - await logGitVersionTelemetry(config, logger); const goFlags = process.env["GOFLAGS"]; if (goFlags) { core13.exportVariable("GOFLAGS", goFlags); diff --git a/lib/resolve-environment-action.js b/lib/resolve-environment-action.js index 33efad7c4..69e614862 100644 --- a/lib/resolve-environment-action.js +++ b/lib/resolve-environment-action.js @@ -90552,6 +90552,7 @@ function wrapCliConfigurationError(cliError) { // src/config-utils.ts var fs3 = __toESM(require("fs")); var path3 = __toESM(require("path")); +var semver5 = __toESM(require_semver2()); // src/analyses.ts var AnalysisKind = /* @__PURE__ */ ((AnalysisKind2) => { @@ -90574,20 +90575,6 @@ var PACK_IDENTIFIER_PATTERN = (function() { return new RegExp(`^${component}/${component}$`); })(); -// src/feature-flags.ts -var semver5 = __toESM(require_semver2()); - -// src/overlay-database-utils.ts -var fs2 = __toESM(require("fs")); -var path2 = __toESM(require("path")); -var actionsCache = __toESM(require_cache4()); - -// src/git-utils.ts -var core8 = __toESM(require_core()); -var toolrunner2 = __toESM(require_toolrunner()); -var io3 = __toESM(require_io()); -var semver3 = __toESM(require_semver2()); - // src/logging.ts var core7 = __toESM(require_core()); function getActionsLogger() { @@ -90602,7 +90589,18 @@ function getActionsLogger() { }; } +// src/feature-flags.ts +var semver4 = __toESM(require_semver2()); + +// src/overlay-database-utils.ts +var fs2 = __toESM(require("fs")); +var path2 = __toESM(require("path")); +var actionsCache = __toESM(require_cache4()); + // src/git-utils.ts +var core8 = __toESM(require_core()); +var toolrunner2 = __toESM(require_toolrunner()); +var io3 = __toESM(require_io()); var runGitCommand = async function(workingDirectory, args, customErrorMessage) { let stdout = ""; let stderr = ""; @@ -90824,7 +90822,7 @@ function computeChangedFiles(baseFileOids, overlayFileOids) { } // src/tools-features.ts -var semver4 = __toESM(require_semver2()); +var semver3 = __toESM(require_semver2()); function isSupportedToolsFeature(versionInfo, feature) { return !!versionInfo.features && versionInfo.features[feature]; } diff --git a/lib/setup-codeql-action.js b/lib/setup-codeql-action.js index aec66229f..b250357ad 100644 --- a/lib/setup-codeql-action.js +++ b/lib/setup-codeql-action.js @@ -90466,7 +90466,7 @@ function wrapApiConfigurationError(e) { // src/feature-flags.ts var fs4 = __toESM(require("fs")); var path4 = __toESM(require("path")); -var semver4 = __toESM(require_semver2()); +var semver3 = __toESM(require_semver2()); // src/defaults.json var bundleVersion = "codeql-bundle-v2.23.8"; @@ -90481,41 +90481,13 @@ var actionsCache = __toESM(require_cache4()); var core6 = __toESM(require_core()); // src/git-utils.ts -var core8 = __toESM(require_core()); +var core7 = __toESM(require_core()); var toolrunner2 = __toESM(require_toolrunner()); var io3 = __toESM(require_io()); -var semver2 = __toESM(require_semver2()); - -// src/logging.ts -var core7 = __toESM(require_core()); -function getActionsLogger() { - return { - debug: core7.debug, - info: core7.info, - warning: core7.warning, - error: core7.error, - isDebug: core7.isDebug, - startGroup: core7.startGroup, - endGroup: core7.endGroup - }; -} -function formatDuration(durationMs) { - if (durationMs < 1e3) { - return `${durationMs}ms`; - } - if (durationMs < 60 * 1e3) { - return `${(durationMs / 1e3).toFixed(1)}s`; - } - const minutes = Math.floor(durationMs / (60 * 1e3)); - const seconds = Math.floor(durationMs % (60 * 1e3) / 1e3); - return `${minutes}m${seconds}s`; -} - -// src/git-utils.ts var runGitCommand = async function(workingDirectory, args, customErrorMessage) { let stdout = ""; let stderr = ""; - core8.debug(`Running git command: git ${args.join(" ")}`); + core7.debug(`Running git command: git ${args.join(" ")}`); try { await new toolrunner2.ToolRunner(await io3.which("git", true), args, { silent: true, @@ -90535,7 +90507,7 @@ var runGitCommand = async function(workingDirectory, args, customErrorMessage) { if (stderr.includes("not a git repository")) { reason = "The checkout path provided to the action does not appear to be a git repository."; } - core8.info(`git call failed. ${customErrorMessage} Error: ${reason}`); + core7.info(`git call failed. ${customErrorMessage} Error: ${reason}`); throw error3; } }; @@ -90646,7 +90618,7 @@ async function getRef() { ) !== head; if (hasChangedRef) { const newRef = ref.replace(pull_ref_regex, "refs/pull/$1/head"); - core8.debug( + core7.debug( `No longer on merge commit, rewriting ref from ${ref} to ${newRef}.` ); return newRef; @@ -90671,6 +90643,31 @@ async function isAnalyzingDefaultBranch() { return currentRef === defaultBranch; } +// src/logging.ts +var core8 = __toESM(require_core()); +function getActionsLogger() { + return { + debug: core8.debug, + info: core8.info, + warning: core8.warning, + error: core8.error, + isDebug: core8.isDebug, + startGroup: core8.startGroup, + endGroup: core8.endGroup + }; +} +function formatDuration(durationMs) { + if (durationMs < 1e3) { + return `${durationMs}ms`; + } + if (durationMs < 60 * 1e3) { + return `${(durationMs / 1e3).toFixed(1)}s`; + } + const minutes = Math.floor(durationMs / (60 * 1e3)); + const seconds = Math.floor(durationMs % (60 * 1e3) / 1e3); + return `${minutes}m${seconds}s`; +} + // src/overlay-database-utils.ts var CODEQL_OVERLAY_MINIMUM_VERSION = "2.23.5"; var OVERLAY_BASE_DATABASE_MAX_UPLOAD_SIZE_MB = 7500; @@ -90733,7 +90730,7 @@ function computeChangedFiles(baseFileOids, overlayFileOids) { } // src/tools-features.ts -var semver3 = __toESM(require_semver2()); +var semver2 = __toESM(require_semver2()); function isSupportedToolsFeature(versionInfo, feature) { return !!versionInfo.features && versionInfo.features[feature]; } @@ -91041,7 +91038,7 @@ var GitHubFeatureFlags = class { DEFAULT_VERSION_FEATURE_FLAG_PREFIX.length, f.length - DEFAULT_VERSION_FEATURE_FLAG_SUFFIX.length ).replace(/_/g, "."); - if (!semver4.valid(version)) { + if (!semver3.valid(version)) { this.logger.warning( `Ignoring feature flag ${f} as it does not specify a valid CodeQL version.` ); @@ -91454,6 +91451,9 @@ function wrapCliConfigurationError(cliError) { return new ConfigurationError(errorMessageBuilder); } +// src/config-utils.ts +var semver5 = __toESM(require_semver2()); + // src/analyses.ts var AnalysisKind = /* @__PURE__ */ ((AnalysisKind2) => { AnalysisKind2["CodeScanning"] = "code-scanning"; @@ -91464,7 +91464,7 @@ var supportedAnalysisKinds = new Set(Object.values(AnalysisKind)); // src/config/db-config.ts var jsonschema = __toESM(require_lib4()); -var semver5 = __toESM(require_semver2()); +var semver4 = __toESM(require_semver2()); var PACK_IDENTIFIER_PATTERN = (function() { const alphaNumeric = "[a-z0-9]"; const alphaNumericDash = "[a-z0-9-]"; diff --git a/lib/start-proxy-action-post.js b/lib/start-proxy-action-post.js index 9d149a6cc..d5e137b3a 100644 --- a/lib/start-proxy-action-post.js +++ b/lib/start-proxy-action-post.js @@ -126326,6 +126326,7 @@ async function getGitHubVersion() { // src/config-utils.ts var fs = __toESM(require("fs")); var path = __toESM(require("path")); +var semver5 = __toESM(require_semver2()); // src/analyses.ts var AnalysisKind = /* @__PURE__ */ ((AnalysisKind2) => { @@ -126348,18 +126349,6 @@ var PACK_IDENTIFIER_PATTERN = (function() { return new RegExp(`^${component}/${component}$`); })(); -// src/feature-flags.ts -var semver5 = __toESM(require_semver2()); - -// src/overlay-database-utils.ts -var actionsCache = __toESM(require_cache4()); - -// src/git-utils.ts -var core8 = __toESM(require_core()); -var toolrunner2 = __toESM(require_toolrunner()); -var io3 = __toESM(require_io()); -var semver3 = __toESM(require_semver2()); - // src/logging.ts var core7 = __toESM(require_core()); function getActionsLogger() { @@ -126374,13 +126363,24 @@ function getActionsLogger() { }; } +// src/feature-flags.ts +var semver4 = __toESM(require_semver2()); + +// src/overlay-database-utils.ts +var actionsCache = __toESM(require_cache4()); + +// src/git-utils.ts +var core8 = __toESM(require_core()); +var toolrunner2 = __toESM(require_toolrunner()); +var io3 = __toESM(require_io()); + // src/overlay-database-utils.ts var CODEQL_OVERLAY_MINIMUM_VERSION = "2.23.5"; var OVERLAY_BASE_DATABASE_MAX_UPLOAD_SIZE_MB = 7500; var OVERLAY_BASE_DATABASE_MAX_UPLOAD_SIZE_BYTES = OVERLAY_BASE_DATABASE_MAX_UPLOAD_SIZE_MB * 1e6; // src/tools-features.ts -var semver4 = __toESM(require_semver2()); +var semver3 = __toESM(require_semver2()); // src/feature-flags.ts var featureConfig = { diff --git a/lib/start-proxy-action.js b/lib/start-proxy-action.js index 85c70a06b..c65acde80 100644 --- a/lib/start-proxy-action.js +++ b/lib/start-proxy-action.js @@ -107527,6 +107527,9 @@ async function getDownloadUrl(logger) { var os = __toESM(require("os")); var core10 = __toESM(require_core()); +// src/config-utils.ts +var semver5 = __toESM(require_semver2()); + // src/analyses.ts var AnalysisKind = /* @__PURE__ */ ((AnalysisKind2) => { AnalysisKind2["CodeScanning"] = "code-scanning"; @@ -107549,7 +107552,7 @@ var PACK_IDENTIFIER_PATTERN = (function() { })(); // src/feature-flags.ts -var semver5 = __toESM(require_semver2()); +var semver4 = __toESM(require_semver2()); // src/overlay-database-utils.ts var actionsCache = __toESM(require_cache4()); @@ -107558,7 +107561,6 @@ var actionsCache = __toESM(require_cache4()); var core9 = __toESM(require_core()); var toolrunner2 = __toESM(require_toolrunner()); var io3 = __toESM(require_io()); -var semver3 = __toESM(require_semver2()); var runGitCommand = async function(workingDirectory, args, customErrorMessage) { let stdout = ""; let stderr = ""; @@ -107653,7 +107655,7 @@ var OVERLAY_BASE_DATABASE_MAX_UPLOAD_SIZE_MB = 7500; var OVERLAY_BASE_DATABASE_MAX_UPLOAD_SIZE_BYTES = OVERLAY_BASE_DATABASE_MAX_UPLOAD_SIZE_MB * 1e6; // src/tools-features.ts -var semver4 = __toESM(require_semver2()); +var semver3 = __toESM(require_semver2()); // src/feature-flags.ts var featureConfig = { diff --git a/lib/upload-lib.js b/lib/upload-lib.js index bf357334f..881a8ee6d 100644 --- a/lib/upload-lib.js +++ b/lib/upload-lib.js @@ -93582,6 +93582,7 @@ function wrapCliConfigurationError(cliError) { // src/config-utils.ts var fs5 = __toESM(require("fs")); var path5 = __toESM(require("path")); +var semver5 = __toESM(require_semver2()); // src/caching-utils.ts var core6 = __toESM(require_core()); @@ -93596,28 +93597,6 @@ var PACK_IDENTIFIER_PATTERN = (function() { return new RegExp(`^${component}/${component}$`); })(); -// src/diff-informed-analysis-utils.ts -var fs4 = __toESM(require("fs")); -var path4 = __toESM(require("path")); - -// src/feature-flags.ts -var semver5 = __toESM(require_semver2()); - -// src/defaults.json -var bundleVersion = "codeql-bundle-v2.23.8"; -var cliVersion = "2.23.8"; - -// src/overlay-database-utils.ts -var fs3 = __toESM(require("fs")); -var path3 = __toESM(require("path")); -var actionsCache = __toESM(require_cache4()); - -// src/git-utils.ts -var core8 = __toESM(require_core()); -var toolrunner2 = __toESM(require_toolrunner()); -var io3 = __toESM(require_io()); -var semver3 = __toESM(require_semver2()); - // src/logging.ts var core7 = __toESM(require_core()); function formatDuration(durationMs) { @@ -93632,7 +93611,26 @@ function formatDuration(durationMs) { return `${minutes}m${seconds}s`; } +// src/diff-informed-analysis-utils.ts +var fs4 = __toESM(require("fs")); +var path4 = __toESM(require("path")); + +// src/feature-flags.ts +var semver4 = __toESM(require_semver2()); + +// src/defaults.json +var bundleVersion = "codeql-bundle-v2.23.8"; +var cliVersion = "2.23.8"; + +// src/overlay-database-utils.ts +var fs3 = __toESM(require("fs")); +var path3 = __toESM(require("path")); +var actionsCache = __toESM(require_cache4()); + // src/git-utils.ts +var core8 = __toESM(require_core()); +var toolrunner2 = __toESM(require_toolrunner()); +var io3 = __toESM(require_io()); var runGitCommand = async function(workingDirectory, args, customErrorMessage) { let stdout = ""; let stderr = ""; @@ -93888,7 +93886,7 @@ function computeChangedFiles(baseFileOids, overlayFileOids) { } // src/tools-features.ts -var semver4 = __toESM(require_semver2()); +var semver3 = __toESM(require_semver2()); function isSupportedToolsFeature(versionInfo, feature) { return !!versionInfo.features && versionInfo.features[feature]; } diff --git a/lib/upload-sarif-action-post.js b/lib/upload-sarif-action-post.js index 56a79d053..7c65f4161 100644 --- a/lib/upload-sarif-action-post.js +++ b/lib/upload-sarif-action-post.js @@ -126489,6 +126489,9 @@ var cliErrorsConfig = { } }; +// src/config-utils.ts +var semver5 = __toESM(require_semver2()); + // src/caching-utils.ts var core6 = __toESM(require_core()); @@ -126502,18 +126505,6 @@ var PACK_IDENTIFIER_PATTERN = (function() { return new RegExp(`^${component}/${component}$`); })(); -// src/feature-flags.ts -var semver5 = __toESM(require_semver2()); - -// src/overlay-database-utils.ts -var actionsCache = __toESM(require_cache4()); - -// src/git-utils.ts -var core8 = __toESM(require_core()); -var toolrunner2 = __toESM(require_toolrunner()); -var io3 = __toESM(require_io()); -var semver3 = __toESM(require_semver2()); - // src/logging.ts var core7 = __toESM(require_core()); function getActionsLogger() { @@ -126536,16 +126527,27 @@ function withGroup(groupName, f) { } } +// src/feature-flags.ts +var semver4 = __toESM(require_semver2()); + +// src/overlay-database-utils.ts +var actionsCache = __toESM(require_cache4()); + +// src/git-utils.ts +var core8 = __toESM(require_core()); +var toolrunner2 = __toESM(require_toolrunner()); +var io3 = __toESM(require_io()); + // src/overlay-database-utils.ts var CODEQL_OVERLAY_MINIMUM_VERSION = "2.23.5"; var OVERLAY_BASE_DATABASE_MAX_UPLOAD_SIZE_MB = 7500; var OVERLAY_BASE_DATABASE_MAX_UPLOAD_SIZE_BYTES = OVERLAY_BASE_DATABASE_MAX_UPLOAD_SIZE_MB * 1e6; // src/tools-features.ts -var semver4 = __toESM(require_semver2()); +var semver3 = __toESM(require_semver2()); var SafeArtifactUploadVersion = "2.20.3"; function isSafeArtifactUpload(codeQlVersion) { - return !codeQlVersion ? true : semver4.gte(codeQlVersion, SafeArtifactUploadVersion); + return !codeQlVersion ? true : semver3.gte(codeQlVersion, SafeArtifactUploadVersion); } // src/feature-flags.ts diff --git a/lib/upload-sarif-action.js b/lib/upload-sarif-action.js index 4ee32fe28..0972175ad 100644 --- a/lib/upload-sarif-action.js +++ b/lib/upload-sarif-action.js @@ -93382,7 +93382,7 @@ function wrapApiConfigurationError(e) { // src/feature-flags.ts var fs4 = __toESM(require("fs")); var path4 = __toESM(require("path")); -var semver4 = __toESM(require_semver2()); +var semver3 = __toESM(require_semver2()); // src/defaults.json var bundleVersion = "codeql-bundle-v2.23.8"; @@ -93397,41 +93397,13 @@ var actionsCache = __toESM(require_cache4()); var core6 = __toESM(require_core()); // src/git-utils.ts -var core8 = __toESM(require_core()); +var core7 = __toESM(require_core()); var toolrunner2 = __toESM(require_toolrunner()); var io3 = __toESM(require_io()); -var semver2 = __toESM(require_semver2()); - -// src/logging.ts -var core7 = __toESM(require_core()); -function getActionsLogger() { - return { - debug: core7.debug, - info: core7.info, - warning: core7.warning, - error: core7.error, - isDebug: core7.isDebug, - startGroup: core7.startGroup, - endGroup: core7.endGroup - }; -} -function formatDuration(durationMs) { - if (durationMs < 1e3) { - return `${durationMs}ms`; - } - if (durationMs < 60 * 1e3) { - return `${(durationMs / 1e3).toFixed(1)}s`; - } - const minutes = Math.floor(durationMs / (60 * 1e3)); - const seconds = Math.floor(durationMs % (60 * 1e3) / 1e3); - return `${minutes}m${seconds}s`; -} - -// src/git-utils.ts var runGitCommand = async function(workingDirectory, args, customErrorMessage) { let stdout = ""; let stderr = ""; - core8.debug(`Running git command: git ${args.join(" ")}`); + core7.debug(`Running git command: git ${args.join(" ")}`); try { await new toolrunner2.ToolRunner(await io3.which("git", true), args, { silent: true, @@ -93451,7 +93423,7 @@ var runGitCommand = async function(workingDirectory, args, customErrorMessage) { if (stderr.includes("not a git repository")) { reason = "The checkout path provided to the action does not appear to be a git repository."; } - core8.info(`git call failed. ${customErrorMessage} Error: ${reason}`); + core7.info(`git call failed. ${customErrorMessage} Error: ${reason}`); throw error3; } }; @@ -93596,7 +93568,7 @@ async function getRef() { ) !== head; if (hasChangedRef) { const newRef = ref.replace(pull_ref_regex, "refs/pull/$1/head"); - core8.debug( + core7.debug( `No longer on merge commit, rewriting ref from ${ref} to ${newRef}.` ); return newRef; @@ -93621,6 +93593,31 @@ async function isAnalyzingDefaultBranch() { return currentRef === defaultBranch; } +// src/logging.ts +var core8 = __toESM(require_core()); +function getActionsLogger() { + return { + debug: core8.debug, + info: core8.info, + warning: core8.warning, + error: core8.error, + isDebug: core8.isDebug, + startGroup: core8.startGroup, + endGroup: core8.endGroup + }; +} +function formatDuration(durationMs) { + if (durationMs < 1e3) { + return `${durationMs}ms`; + } + if (durationMs < 60 * 1e3) { + return `${(durationMs / 1e3).toFixed(1)}s`; + } + const minutes = Math.floor(durationMs / (60 * 1e3)); + const seconds = Math.floor(durationMs % (60 * 1e3) / 1e3); + return `${minutes}m${seconds}s`; +} + // src/overlay-database-utils.ts var CODEQL_OVERLAY_MINIMUM_VERSION = "2.23.5"; var OVERLAY_BASE_DATABASE_MAX_UPLOAD_SIZE_MB = 7500; @@ -93683,7 +93680,7 @@ function computeChangedFiles(baseFileOids, overlayFileOids) { } // src/tools-features.ts -var semver3 = __toESM(require_semver2()); +var semver2 = __toESM(require_semver2()); function isSupportedToolsFeature(versionInfo, feature) { return !!versionInfo.features && versionInfo.features[feature]; } @@ -93991,7 +93988,7 @@ var GitHubFeatureFlags = class { DEFAULT_VERSION_FEATURE_FLAG_PREFIX.length, f.length - DEFAULT_VERSION_FEATURE_FLAG_SUFFIX.length ).replace(/_/g, "."); - if (!semver4.valid(version)) { + if (!semver3.valid(version)) { this.logger.warning( `Ignoring feature flag ${f} as it does not specify a valid CodeQL version.` ); @@ -94161,10 +94158,11 @@ var core9 = __toESM(require_core()); // src/config-utils.ts var fs6 = __toESM(require("fs")); var path6 = __toESM(require("path")); +var semver5 = __toESM(require_semver2()); // src/config/db-config.ts var jsonschema = __toESM(require_lib4()); -var semver5 = __toESM(require_semver2()); +var semver4 = __toESM(require_semver2()); var PACK_IDENTIFIER_PATTERN = (function() { const alphaNumeric = "[a-z0-9]"; const alphaNumericDash = "[a-z0-9-]"; diff --git a/src/config-utils.test.ts b/src/config-utils.test.ts index a9cb1802a..6f45c2637 100644 --- a/src/config-utils.test.ts +++ b/src/config-utils.test.ts @@ -4,7 +4,6 @@ import * as path from "path"; import * as github from "@actions/github"; import test, { ExecutionContext } from "ava"; import * as yaml from "js-yaml"; -import * as semver from "semver"; import * as sinon from "sinon"; import * as actionsUtil from "./actions-util"; @@ -994,7 +993,7 @@ const defaultOverlayDatabaseModeTestSetup: OverlayDatabaseModeTestSetup = { languages: [KnownLanguage.javascript], codeqlVersion: CODEQL_OVERLAY_MINIMUM_VERSION, gitRoot: "/some/git/root", - gitVersion: "2.40.0", // Default to a version that supports overlay analysis + gitVersion: gitUtils.GIT_MINIMUM_VERSION_FOR_OVERLAY, codeScanningConfig: {}, diskUsage: { numAvailableBytes: 50_000_000_000, @@ -1060,19 +1059,6 @@ const getOverlayDatabaseModeMacro = test.macro({ sinon.stub(gitUtils, "getGitRoot").resolves(setup.gitRoot); } - // Mock git version detection - stub gitVersionAtLeast directly - // since internal calls to getGitVersion won't be stubbed - if (setup.gitVersion !== undefined) { - sinon - .stub(gitUtils, "gitVersionAtLeast") - .callsFake(async (requiredVersion: string) => { - return semver.gte(setup.gitVersion!, requiredVersion); - }); - } else { - // When git version is undefined, gitVersionAtLeast should return false - sinon.stub(gitUtils, "gitVersionAtLeast").resolves(false); - } - // Mock default branch detection sinon .stub(gitUtils, "isAnalyzingDefaultBranch") @@ -1086,6 +1072,7 @@ const getOverlayDatabaseModeMacro = test.macro({ setup.buildMode, undefined, setup.codeScanningConfig, + setup.gitVersion, logger, ); diff --git a/src/config-utils.ts b/src/config-utils.ts index f9be6702e..de72474cd 100644 --- a/src/config-utils.ts +++ b/src/config-utils.ts @@ -3,6 +3,7 @@ import * as path from "path"; import { performance } from "perf_hooks"; import * as yaml from "js-yaml"; +import * as semver from "semver"; import { getActionVersion, isAnalyzingPullRequest } from "./actions-util"; import { @@ -22,14 +23,15 @@ import { parseUserConfig, UserConfig, } from "./config/db-config"; +import { addDiagnostic, makeTelemetryDiagnostic } from "./diagnostics"; import { shouldPerformDiffInformedAnalysis } from "./diff-informed-analysis-utils"; import * as errorMessages from "./error-messages"; import { Feature, FeatureEnablement } from "./feature-flags"; import { RepositoryProperties } from "./feature-flags/properties"; import { getGitRoot, + getGitVersionOrThrow, GIT_MINIMUM_VERSION_FOR_OVERLAY, - gitVersionAtLeast, isAnalyzingDefaultBranch, } from "./git-utils"; import { KnownLanguage, Language } from "./languages"; @@ -50,6 +52,7 @@ import { isDefined, checkDiskUsage, getCodeQLMemoryLimit, + getErrorMessage, } from "./util"; export * from "./config/db-config"; @@ -714,6 +717,7 @@ export async function getOverlayDatabaseMode( buildMode: BuildMode | undefined, ramInput: string | undefined, codeScanningConfig: UserConfig, + gitVersion: string | undefined, logger: Logger, ): Promise<{ overlayDatabaseMode: OverlayDatabaseMode; @@ -816,7 +820,15 @@ export async function getOverlayDatabaseMode( ); return nonOverlayAnalysis; } - if (!(await gitVersionAtLeast(GIT_MINIMUM_VERSION_FOR_OVERLAY, logger))) { + if (gitVersion === undefined) { + logger.warning( + `Cannot build an ${overlayDatabaseMode} database because ` + + "the Git version could not be determined. " + + "Falling back to creating a normal full database instead.", + ); + return nonOverlayAnalysis; + } + if (!semver.gte(gitVersion, GIT_MINIMUM_VERSION_FOR_OVERLAY)) { logger.warning( `Cannot build an ${overlayDatabaseMode} database because ` + `the installed Git version is older than ${GIT_MINIMUM_VERSION_FOR_OVERLAY}. ` + @@ -916,6 +928,15 @@ export async function initConfig( config.computedConfig["query-filters"] = []; } + let gitVersion: string | undefined = undefined; + try { + gitVersion = await getGitVersionOrThrow(); + logger.info(`Using Git version ${gitVersion}`); + await logGitVersionTelemetry(config, gitVersion); + } catch (e) { + logger.debug(`Could not determine Git version: ${getErrorMessage(e)}`); + } + // The choice of overlay database mode depends on the selection of languages // and queries, which in turn depends on the user config and the augmentation // properties. So we need to calculate the overlay database mode after the @@ -929,6 +950,7 @@ export async function initConfig( config.buildMode, inputs.ramInput, config.computedConfig, + gitVersion, logger, ); logger.info( @@ -1329,3 +1351,23 @@ export function getPrimaryAnalysisConfig(config: Config): AnalysisConfig { ? CodeScanning : CodeQuality; } + +/** Logs the Git version as a telemetry diagnostic. */ +async function logGitVersionTelemetry( + config: Config, + gitVersion: string, +): Promise { + if (config.languages.length > 0) { + addDiagnostic( + config, + // Arbitrarily choose the first language. We could also choose all languages, but that + // increases the risk of misinterpreting the data. + config.languages[0], + makeTelemetryDiagnostic( + "codeql-action/git-version-telemetry", + "Git version telemetry", + { gitVersion }, + ), + ); + } +} diff --git a/src/git-utils.test.ts b/src/git-utils.test.ts index d2072e798..d00a7cba8 100644 --- a/src/git-utils.test.ts +++ b/src/git-utils.test.ts @@ -7,12 +7,7 @@ import * as sinon from "sinon"; import * as actionsUtil from "./actions-util"; import * as gitUtils from "./git-utils"; -import { - getRecordingLogger, - LoggedMessage, - setupActionsVars, - setupTests, -} from "./testing-utils"; +import { setupActionsVars, setupTests } from "./testing-utils"; import { withTmpDir } from "./util"; setupTests(test); @@ -464,66 +459,3 @@ test("getGitVersionOrThrow throws when git command fails", async (t) => { runGitCommandStub.restore(); } }); - -test("gitVersionAtLeast returns true for version meeting requirement", async (t) => { - const runGitCommandStub = sinon - .stub(gitUtils as any, "runGitCommand") - .resolves("git version 2.40.0\n"); - - const messages: LoggedMessage[] = []; - const logger = getRecordingLogger(messages); - - try { - const result = await gitUtils.gitVersionAtLeast("2.38.0", logger); - t.true(result); - t.true( - messages.some( - (m) => - m.type === "debug" && - m.message === "Installed Git version is 2.40.0.", - ), - ); - } finally { - runGitCommandStub.restore(); - } -}); - -test("gitVersionAtLeast returns false for version not meeting requirement", async (t) => { - const runGitCommandStub = sinon - .stub(gitUtils as any, "runGitCommand") - .resolves("git version 2.30.0\n"); - - const messages: LoggedMessage[] = []; - const logger = getRecordingLogger(messages); - - try { - const result = await gitUtils.gitVersionAtLeast("2.38.0", logger); - t.false(result); - } finally { - runGitCommandStub.restore(); - } -}); - -test("gitVersionAtLeast returns false when version cannot be determined", async (t) => { - const runGitCommandStub = sinon - .stub(gitUtils as any, "runGitCommand") - .rejects(new Error("git not found")); - - const messages: LoggedMessage[] = []; - const logger = getRecordingLogger(messages); - - try { - const result = await gitUtils.gitVersionAtLeast("2.38.0", logger); - t.false(result); - t.true( - messages.some( - (m) => - m.type === "debug" && - typeof m.message === "string" && - m.message.includes("Could not determine Git version"), - ), - ); - } finally { - runGitCommandStub.restore(); - } -}); diff --git a/src/git-utils.ts b/src/git-utils.ts index 71a19a665..6c097bf4b 100644 --- a/src/git-utils.ts +++ b/src/git-utils.ts @@ -1,21 +1,13 @@ import * as core from "@actions/core"; import * as toolrunner from "@actions/exec/lib/toolrunner"; import * as io from "@actions/io"; -import * as semver from "semver"; import { getOptionalInput, getWorkflowEvent, getWorkflowEventName, } from "./actions-util"; -import type { Config } from "./config-utils"; -import { addDiagnostic, makeTelemetryDiagnostic } from "./diagnostics"; -import { Logger } from "./logging"; -import { - ConfigurationError, - getErrorMessage, - getRequiredEnvParam, -} from "./util"; +import { ConfigurationError, getRequiredEnvParam } from "./util"; /** * Minimum Git version required for overlay analysis. The `git ls-files --format` @@ -45,59 +37,6 @@ export async function getGitVersionOrThrow(): Promise { throw new Error(`Could not parse Git version from output: ${stdout.trim()}`); } -/** - * Logs the Git version as a telemetry diagnostic. Should be called once during - * initialization after the config is available. - * - * @param config The configuration that tells us where to store the diagnostic. - * @param logger A logger to use for logging errors. - */ -export async function logGitVersionTelemetry( - config: Config, - logger: Logger, -): Promise { - try { - const version = await getGitVersionOrThrow(); - if (config.languages.length > 0) { - addDiagnostic( - config, - // Arbitrarily choose the first language. We could also choose all languages, but that - // increases the risk of misinterpreting the data. - config.languages[0], - makeTelemetryDiagnostic( - "codeql-action/git-version-telemetry", - "Git version telemetry", - { gitVersion: version }, - ), - ); - } - } catch (e) { - logger.debug(`Could not determine Git version: ${getErrorMessage(e)}`); - } -} - -/** - * Checks if the installed Git version is at least the given required version. - * - * @param requiredVersion The minimum required Git version. - * @param logger A logger to use for logging. - * @returns `true` if the installed Git version is at least the required version, - * `false` otherwise. - */ -export async function gitVersionAtLeast( - requiredVersion: string, - logger: Logger, -): Promise { - try { - const version = await getGitVersionOrThrow(); - logger.debug(`Installed Git version is ${version}.`); - return semver.gte(version, requiredVersion); - } catch (e) { - logger.debug(`Could not determine Git version: ${getErrorMessage(e)}`); - return false; - } -} - export const runGitCommand = async function ( workingDirectory: string | undefined, args: string[], diff --git a/src/init-action.ts b/src/init-action.ts index c7b606614..c36349456 100644 --- a/src/init-action.ts +++ b/src/init-action.ts @@ -38,7 +38,6 @@ import { import { EnvVar } from "./environment"; import { Feature, Features } from "./feature-flags"; import { loadPropertiesFromApi } from "./feature-flags/properties"; -import { logGitVersionTelemetry } from "./git-utils"; import { checkInstallPython311, checkPacksForOverlayCompatibility, @@ -435,9 +434,6 @@ async function run() { ); } - // Log Git version telemetry - await logGitVersionTelemetry(config, logger); - // Forward Go flags const goFlags = process.env["GOFLAGS"]; if (goFlags) {