Add diagnostic when overlay disabled by repo property

This commit is contained in:
Henry Mercer
2026-02-25 11:44:45 +00:00
parent 9c61a2ddf4
commit 70db156dcb
3 changed files with 63 additions and 3 deletions
+29 -3
View File
@@ -106249,6 +106249,7 @@ async function getOverlayDatabaseMode(codeql, features, languages, sourceRoot, b
let overlayDatabaseMode = "none" /* None */;
let useOverlayDatabaseCaching = false;
let skippedDueToCachedStatus = false;
let disabledByRepositoryProperty = false;
const modeEnv = process.env.CODEQL_OVERLAY_DATABASE_MODE;
if (modeEnv === "overlay" /* Overlay */ || modeEnv === "overlay-base" /* OverlayBase */ || modeEnv === "none" /* None */) {
overlayDatabaseMode = modeEnv;
@@ -106260,6 +106261,7 @@ async function getOverlayDatabaseMode(codeql, features, languages, sourceRoot, b
`Setting overlay database mode to ${"none" /* None */} because the ${"github-codeql-disable-overlay" /* DISABLE_OVERLAY */} repository property is set to true.`
);
overlayDatabaseMode = "none" /* None */;
disabledByRepositoryProperty = true;
} else if (await isOverlayAnalysisFeatureEnabled(
features,
codeql,
@@ -106312,7 +106314,8 @@ async function getOverlayDatabaseMode(codeql, features, languages, sourceRoot, b
const nonOverlayAnalysis = {
overlayDatabaseMode: "none" /* None */,
useOverlayDatabaseCaching: false,
skippedDueToCachedStatus
skippedDueToCachedStatus,
disabledByRepositoryProperty
};
if (overlayDatabaseMode === "none" /* None */) {
return nonOverlayAnalysis;
@@ -106358,7 +106361,8 @@ async function getOverlayDatabaseMode(codeql, features, languages, sourceRoot, b
return {
overlayDatabaseMode,
useOverlayDatabaseCaching,
skippedDueToCachedStatus
skippedDueToCachedStatus,
disabledByRepositoryProperty
};
}
function dbLocationOrDefault(dbLocation, tempDir) {
@@ -106450,7 +106454,8 @@ async function initConfig(features, inputs) {
const {
overlayDatabaseMode,
useOverlayDatabaseCaching,
skippedDueToCachedStatus: overlaySkippedDueToCachedStatus
skippedDueToCachedStatus: overlaySkippedDueToCachedStatus,
disabledByRepositoryProperty: overlayDisabledByRepositoryProperty
} = await getOverlayDatabaseMode(
inputs.codeql,
inputs.features,
@@ -106491,6 +106496,27 @@ Improved incremental analysis will be automatically retried when the next versio
)
);
}
if (overlayDisabledByRepositoryProperty) {
addNoLanguageDiagnostic(
config,
makeDiagnostic(
"codeql-action/overlay-disabled-by-repository-property",
"Improved incremental analysis disabled by repository property",
{
attributes: {
languages: config.languages
},
markdownMessage: `Improved incremental analysis has been disabled because the \`${"github-codeql-disable-overlay" /* DISABLE_OVERLAY */}\` repository property is set to \`true\`. To re-enable improved incremental analysis, set this property to \`false\` or remove it.`,
severity: "note",
visibility: {
cliSummaryTable: true,
statusPage: true,
telemetry: true
}
}
)
);
}
if (overlayDatabaseMode === "overlay" /* Overlay */ || await shouldPerformDiffInformedAnalysis(
inputs.codeql,
inputs.features,
+3
View File
@@ -1019,6 +1019,7 @@ const getOverlayDatabaseModeMacro = test.macro({
overlayDatabaseMode: OverlayDatabaseMode;
useOverlayDatabaseCaching: boolean;
skippedDueToCachedStatus?: boolean;
disabledByRepositoryProperty?: boolean;
},
) => {
return await withTmpDir(async (tempDir) => {
@@ -1092,6 +1093,7 @@ const getOverlayDatabaseModeMacro = test.macro({
t.deepEqual(result, {
skippedDueToCachedStatus: false,
disabledByRepositoryProperty: false,
...expected,
});
} finally {
@@ -1938,6 +1940,7 @@ test(
{
overlayDatabaseMode: OverlayDatabaseMode.None,
useOverlayDatabaseCaching: false,
disabledByRepositoryProperty: true,
},
);
+31
View File
@@ -760,10 +760,12 @@ export async function getOverlayDatabaseMode(
overlayDatabaseMode: OverlayDatabaseMode;
useOverlayDatabaseCaching: boolean;
skippedDueToCachedStatus: boolean;
disabledByRepositoryProperty: boolean;
}> {
let overlayDatabaseMode = OverlayDatabaseMode.None;
let useOverlayDatabaseCaching = false;
let skippedDueToCachedStatus = false;
let disabledByRepositoryProperty = false;
const modeEnv = process.env.CODEQL_OVERLAY_DATABASE_MODE;
// Any unrecognized CODEQL_OVERLAY_DATABASE_MODE value will be ignored and
@@ -786,6 +788,7 @@ export async function getOverlayDatabaseMode(
`because the ${RepositoryPropertyName.DISABLE_OVERLAY} repository property is set to true.`,
);
overlayDatabaseMode = OverlayDatabaseMode.None;
disabledByRepositoryProperty = true;
} else if (
await isOverlayAnalysisFeatureEnabled(
features,
@@ -856,6 +859,7 @@ export async function getOverlayDatabaseMode(
overlayDatabaseMode: OverlayDatabaseMode.None,
useOverlayDatabaseCaching: false,
skippedDueToCachedStatus,
disabledByRepositoryProperty,
};
if (overlayDatabaseMode === OverlayDatabaseMode.None) {
@@ -921,6 +925,7 @@ export async function getOverlayDatabaseMode(
overlayDatabaseMode,
useOverlayDatabaseCaching,
skippedDueToCachedStatus,
disabledByRepositoryProperty,
};
}
@@ -1071,6 +1076,7 @@ export async function initConfig(
overlayDatabaseMode,
useOverlayDatabaseCaching,
skippedDueToCachedStatus: overlaySkippedDueToCachedStatus,
disabledByRepositoryProperty: overlayDisabledByRepositoryProperty,
} = await getOverlayDatabaseMode(
inputs.codeql,
inputs.features,
@@ -1119,6 +1125,31 @@ export async function initConfig(
);
}
if (overlayDisabledByRepositoryProperty) {
addNoLanguageDiagnostic(
config,
makeDiagnostic(
"codeql-action/overlay-disabled-by-repository-property",
"Improved incremental analysis disabled by repository property",
{
attributes: {
languages: config.languages,
},
markdownMessage:
"Improved incremental analysis has been disabled because the " +
`\`${RepositoryPropertyName.DISABLE_OVERLAY}\` repository property is set to \`true\`. ` +
"To re-enable improved incremental analysis, set this property to `false` or remove it.",
severity: "note",
visibility: {
cliSummaryTable: true,
statusPage: true,
telemetry: true,
},
},
),
);
}
if (
overlayDatabaseMode === OverlayDatabaseMode.Overlay ||
(await shouldPerformDiffInformedAnalysis(