mirror of
https://github.com/github/codeql-action.git
synced 2026-10-30 17:39:50 +00:00
Add repository property for disabling overlay
This commit is contained in:
@@ -14,6 +14,7 @@ import { createStubCodeQL } from "./codeql";
|
||||
import * as configUtils from "./config-utils";
|
||||
import * as errorMessages from "./error-messages";
|
||||
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";
|
||||
@@ -983,6 +984,7 @@ interface OverlayDatabaseModeTestSetup {
|
||||
diskUsage: DiskUsage | undefined;
|
||||
memoryFlagValue: number;
|
||||
shouldSkipOverlayAnalysisDueToCachedStatus: boolean;
|
||||
repositoryProperties: RepositoryProperties;
|
||||
}
|
||||
|
||||
const defaultOverlayDatabaseModeTestSetup: OverlayDatabaseModeTestSetup = {
|
||||
@@ -1005,6 +1007,7 @@ const defaultOverlayDatabaseModeTestSetup: OverlayDatabaseModeTestSetup = {
|
||||
},
|
||||
memoryFlagValue: 6920,
|
||||
shouldSkipOverlayAnalysisDueToCachedStatus: false,
|
||||
repositoryProperties: {},
|
||||
};
|
||||
|
||||
const getOverlayDatabaseModeMacro = test.macro({
|
||||
@@ -1082,6 +1085,7 @@ const getOverlayDatabaseModeMacro = test.macro({
|
||||
setup.buildMode,
|
||||
undefined,
|
||||
setup.codeScanningConfig,
|
||||
setup.repositoryProperties,
|
||||
setup.gitVersion,
|
||||
logger,
|
||||
);
|
||||
@@ -1920,6 +1924,55 @@ test(
|
||||
},
|
||||
);
|
||||
|
||||
test(
|
||||
getOverlayDatabaseModeMacro,
|
||||
"No overlay when disabled via repository property",
|
||||
{
|
||||
languages: [KnownLanguage.javascript],
|
||||
features: [Feature.OverlayAnalysis, Feature.OverlayAnalysisJavascript],
|
||||
isPullRequest: true,
|
||||
repositoryProperties: {
|
||||
"github-codeql-disable-overlay": true,
|
||||
},
|
||||
},
|
||||
{
|
||||
overlayDatabaseMode: OverlayDatabaseMode.None,
|
||||
useOverlayDatabaseCaching: false,
|
||||
},
|
||||
);
|
||||
|
||||
test(
|
||||
getOverlayDatabaseModeMacro,
|
||||
"Overlay not disabled when repository property is false",
|
||||
{
|
||||
languages: [KnownLanguage.javascript],
|
||||
features: [Feature.OverlayAnalysis, Feature.OverlayAnalysisJavascript],
|
||||
isPullRequest: true,
|
||||
repositoryProperties: {
|
||||
"github-codeql-disable-overlay": false,
|
||||
},
|
||||
},
|
||||
{
|
||||
overlayDatabaseMode: OverlayDatabaseMode.Overlay,
|
||||
useOverlayDatabaseCaching: true,
|
||||
},
|
||||
);
|
||||
|
||||
test(
|
||||
getOverlayDatabaseModeMacro,
|
||||
"Environment variable override takes precedence over repository property",
|
||||
{
|
||||
overlayDatabaseEnvVar: "overlay",
|
||||
repositoryProperties: {
|
||||
"github-codeql-disable-overlay": true,
|
||||
},
|
||||
},
|
||||
{
|
||||
overlayDatabaseMode: OverlayDatabaseMode.Overlay,
|
||||
useOverlayDatabaseCaching: false,
|
||||
},
|
||||
);
|
||||
|
||||
// Exercise language-specific overlay analysis features code paths
|
||||
for (const language in KnownLanguage) {
|
||||
test(
|
||||
|
||||
@@ -35,7 +35,10 @@ import { DocUrl } from "./doc-url";
|
||||
import { EnvVar } from "./environment";
|
||||
import * as errorMessages from "./error-messages";
|
||||
import { Feature, FeatureEnablement } from "./feature-flags";
|
||||
import { RepositoryProperties } from "./feature-flags/properties";
|
||||
import {
|
||||
RepositoryProperties,
|
||||
RepositoryPropertyName,
|
||||
} from "./feature-flags/properties";
|
||||
import {
|
||||
getGeneratedFiles,
|
||||
getGitRoot,
|
||||
@@ -750,6 +753,7 @@ export async function getOverlayDatabaseMode(
|
||||
buildMode: BuildMode | undefined,
|
||||
ramInput: string | undefined,
|
||||
codeScanningConfig: UserConfig,
|
||||
repositoryProperties: RepositoryProperties,
|
||||
gitVersion: GitVersionInfo | undefined,
|
||||
logger: Logger,
|
||||
): Promise<{
|
||||
@@ -774,6 +778,14 @@ export async function getOverlayDatabaseMode(
|
||||
`Setting overlay database mode to ${overlayDatabaseMode} ` +
|
||||
"from the CODEQL_OVERLAY_DATABASE_MODE environment variable.",
|
||||
);
|
||||
} else if (
|
||||
repositoryProperties[RepositoryPropertyName.DISABLE_OVERLAY] === true
|
||||
) {
|
||||
logger.info(
|
||||
`Setting overlay database mode to ${OverlayDatabaseMode.None} ` +
|
||||
`because the ${RepositoryPropertyName.DISABLE_OVERLAY} repository property is set to true.`,
|
||||
);
|
||||
overlayDatabaseMode = OverlayDatabaseMode.None;
|
||||
} else if (
|
||||
await isOverlayAnalysisFeatureEnabled(
|
||||
features,
|
||||
@@ -1067,6 +1079,7 @@ export async function initConfig(
|
||||
config.buildMode,
|
||||
inputs.ramInput,
|
||||
config.computedConfig,
|
||||
config.repositoryProperties,
|
||||
gitVersion,
|
||||
logger,
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user