Skip to content

Commit 70db156

Browse files
committed
Add diagnostic when overlay disabled by repo property
1 parent 9c61a2d commit 70db156

File tree

3 files changed

+63
-3
lines changed

3 files changed

+63
-3
lines changed

lib/init-action.js

Lines changed: 29 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/config-utils.test.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1019,6 +1019,7 @@ const getOverlayDatabaseModeMacro = test.macro({
10191019
overlayDatabaseMode: OverlayDatabaseMode;
10201020
useOverlayDatabaseCaching: boolean;
10211021
skippedDueToCachedStatus?: boolean;
1022+
disabledByRepositoryProperty?: boolean;
10221023
},
10231024
) => {
10241025
return await withTmpDir(async (tempDir) => {
@@ -1092,6 +1093,7 @@ const getOverlayDatabaseModeMacro = test.macro({
10921093

10931094
t.deepEqual(result, {
10941095
skippedDueToCachedStatus: false,
1096+
disabledByRepositoryProperty: false,
10951097
...expected,
10961098
});
10971099
} finally {
@@ -1938,6 +1940,7 @@ test(
19381940
{
19391941
overlayDatabaseMode: OverlayDatabaseMode.None,
19401942
useOverlayDatabaseCaching: false,
1943+
disabledByRepositoryProperty: true,
19411944
},
19421945
);
19431946

src/config-utils.ts

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -760,10 +760,12 @@ export async function getOverlayDatabaseMode(
760760
overlayDatabaseMode: OverlayDatabaseMode;
761761
useOverlayDatabaseCaching: boolean;
762762
skippedDueToCachedStatus: boolean;
763+
disabledByRepositoryProperty: boolean;
763764
}> {
764765
let overlayDatabaseMode = OverlayDatabaseMode.None;
765766
let useOverlayDatabaseCaching = false;
766767
let skippedDueToCachedStatus = false;
768+
let disabledByRepositoryProperty = false;
767769

768770
const modeEnv = process.env.CODEQL_OVERLAY_DATABASE_MODE;
769771
// Any unrecognized CODEQL_OVERLAY_DATABASE_MODE value will be ignored and
@@ -786,6 +788,7 @@ export async function getOverlayDatabaseMode(
786788
`because the ${RepositoryPropertyName.DISABLE_OVERLAY} repository property is set to true.`,
787789
);
788790
overlayDatabaseMode = OverlayDatabaseMode.None;
791+
disabledByRepositoryProperty = true;
789792
} else if (
790793
await isOverlayAnalysisFeatureEnabled(
791794
features,
@@ -856,6 +859,7 @@ export async function getOverlayDatabaseMode(
856859
overlayDatabaseMode: OverlayDatabaseMode.None,
857860
useOverlayDatabaseCaching: false,
858861
skippedDueToCachedStatus,
862+
disabledByRepositoryProperty,
859863
};
860864

861865
if (overlayDatabaseMode === OverlayDatabaseMode.None) {
@@ -921,6 +925,7 @@ export async function getOverlayDatabaseMode(
921925
overlayDatabaseMode,
922926
useOverlayDatabaseCaching,
923927
skippedDueToCachedStatus,
928+
disabledByRepositoryProperty,
924929
};
925930
}
926931

@@ -1071,6 +1076,7 @@ export async function initConfig(
10711076
overlayDatabaseMode,
10721077
useOverlayDatabaseCaching,
10731078
skippedDueToCachedStatus: overlaySkippedDueToCachedStatus,
1079+
disabledByRepositoryProperty: overlayDisabledByRepositoryProperty,
10741080
} = await getOverlayDatabaseMode(
10751081
inputs.codeql,
10761082
inputs.features,
@@ -1119,6 +1125,31 @@ export async function initConfig(
11191125
);
11201126
}
11211127

1128+
if (overlayDisabledByRepositoryProperty) {
1129+
addNoLanguageDiagnostic(
1130+
config,
1131+
makeDiagnostic(
1132+
"codeql-action/overlay-disabled-by-repository-property",
1133+
"Improved incremental analysis disabled by repository property",
1134+
{
1135+
attributes: {
1136+
languages: config.languages,
1137+
},
1138+
markdownMessage:
1139+
"Improved incremental analysis has been disabled because the " +
1140+
`\`${RepositoryPropertyName.DISABLE_OVERLAY}\` repository property is set to \`true\`. ` +
1141+
"To re-enable improved incremental analysis, set this property to `false` or remove it.",
1142+
severity: "note",
1143+
visibility: {
1144+
cliSummaryTable: true,
1145+
statusPage: true,
1146+
telemetry: true,
1147+
},
1148+
},
1149+
),
1150+
);
1151+
}
1152+
11221153
if (
11231154
overlayDatabaseMode === OverlayDatabaseMode.Overlay ||
11241155
(await shouldPerformDiffInformedAnalysis(

0 commit comments

Comments
 (0)