Skip to content

Commit 0158d05

Browse files
committed
Make "feature not enabled" reason more specific
1 parent 9bf9733 commit 0158d05

File tree

4 files changed

+44
-39
lines changed

4 files changed

+44
-39
lines changed

lib/init-action.js

Lines changed: 10 additions & 9 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: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1151,7 +1151,7 @@ test(
11511151
{
11521152
overlayDatabaseMode: OverlayDatabaseMode.None,
11531153
useOverlayDatabaseCaching: false,
1154-
disabledReason: OverlayDisabledReason.FeatureNotEnabled,
1154+
disabledReason: OverlayDisabledReason.OverallFeatureNotEnabled,
11551155
},
11561156
);
11571157

@@ -1460,7 +1460,7 @@ test(
14601460
{
14611461
overlayDatabaseMode: OverlayDatabaseMode.None,
14621462
useOverlayDatabaseCaching: false,
1463-
disabledReason: OverlayDisabledReason.FeatureNotEnabled,
1463+
disabledReason: OverlayDisabledReason.NonDefaultQueries,
14641464
},
14651465
);
14661466

@@ -1481,7 +1481,7 @@ test(
14811481
{
14821482
overlayDatabaseMode: OverlayDatabaseMode.None,
14831483
useOverlayDatabaseCaching: false,
1484-
disabledReason: OverlayDisabledReason.FeatureNotEnabled,
1484+
disabledReason: OverlayDisabledReason.NonDefaultQueries,
14851485
},
14861486
);
14871487

@@ -1502,7 +1502,7 @@ test(
15021502
{
15031503
overlayDatabaseMode: OverlayDatabaseMode.None,
15041504
useOverlayDatabaseCaching: false,
1505-
disabledReason: OverlayDisabledReason.FeatureNotEnabled,
1505+
disabledReason: OverlayDisabledReason.NonDefaultQueries,
15061506
},
15071507
);
15081508

@@ -1523,7 +1523,7 @@ test(
15231523
{
15241524
overlayDatabaseMode: OverlayDatabaseMode.None,
15251525
useOverlayDatabaseCaching: false,
1526-
disabledReason: OverlayDisabledReason.FeatureNotEnabled,
1526+
disabledReason: OverlayDisabledReason.NonDefaultQueries,
15271527
},
15281528
);
15291529

@@ -1538,7 +1538,7 @@ test(
15381538
{
15391539
overlayDatabaseMode: OverlayDatabaseMode.None,
15401540
useOverlayDatabaseCaching: false,
1541-
disabledReason: OverlayDisabledReason.FeatureNotEnabled,
1541+
disabledReason: OverlayDisabledReason.OverallFeatureNotEnabled,
15421542
},
15431543
);
15441544

@@ -1553,7 +1553,7 @@ test(
15531553
{
15541554
overlayDatabaseMode: OverlayDatabaseMode.None,
15551555
useOverlayDatabaseCaching: false,
1556-
disabledReason: OverlayDisabledReason.FeatureNotEnabled,
1556+
disabledReason: OverlayDisabledReason.OverallFeatureNotEnabled,
15571557
},
15581558
);
15591559

@@ -1568,7 +1568,7 @@ test(
15681568
{
15691569
overlayDatabaseMode: OverlayDatabaseMode.None,
15701570
useOverlayDatabaseCaching: false,
1571-
disabledReason: OverlayDisabledReason.FeatureNotEnabled,
1571+
disabledReason: OverlayDisabledReason.LanguageNotEnabled,
15721572
},
15731573
);
15741574

@@ -1757,7 +1757,7 @@ test(
17571757
{
17581758
overlayDatabaseMode: OverlayDatabaseMode.None,
17591759
useOverlayDatabaseCaching: false,
1760-
disabledReason: OverlayDisabledReason.FeatureNotEnabled,
1760+
disabledReason: OverlayDisabledReason.NonDefaultQueries,
17611761
},
17621762
);
17631763

@@ -1778,7 +1778,7 @@ test(
17781778
{
17791779
overlayDatabaseMode: OverlayDatabaseMode.None,
17801780
useOverlayDatabaseCaching: false,
1781-
disabledReason: OverlayDisabledReason.FeatureNotEnabled,
1781+
disabledReason: OverlayDisabledReason.NonDefaultQueries,
17821782
},
17831783
);
17841784

@@ -1799,7 +1799,7 @@ test(
17991799
{
18001800
overlayDatabaseMode: OverlayDatabaseMode.None,
18011801
useOverlayDatabaseCaching: false,
1802-
disabledReason: OverlayDisabledReason.FeatureNotEnabled,
1802+
disabledReason: OverlayDisabledReason.NonDefaultQueries,
18031803
},
18041804
);
18051805

@@ -1820,7 +1820,7 @@ test(
18201820
{
18211821
overlayDatabaseMode: OverlayDatabaseMode.None,
18221822
useOverlayDatabaseCaching: false,
1823-
disabledReason: OverlayDisabledReason.FeatureNotEnabled,
1823+
disabledReason: OverlayDisabledReason.NonDefaultQueries,
18241824
},
18251825
);
18261826

@@ -1835,7 +1835,7 @@ test(
18351835
{
18361836
overlayDatabaseMode: OverlayDatabaseMode.None,
18371837
useOverlayDatabaseCaching: false,
1838-
disabledReason: OverlayDisabledReason.FeatureNotEnabled,
1838+
disabledReason: OverlayDisabledReason.OverallFeatureNotEnabled,
18391839
},
18401840
);
18411841

@@ -1850,7 +1850,7 @@ test(
18501850
{
18511851
overlayDatabaseMode: OverlayDatabaseMode.None,
18521852
useOverlayDatabaseCaching: false,
1853-
disabledReason: OverlayDisabledReason.FeatureNotEnabled,
1853+
disabledReason: OverlayDisabledReason.OverallFeatureNotEnabled,
18541854
},
18551855
);
18561856

@@ -1865,7 +1865,7 @@ test(
18651865
{
18661866
overlayDatabaseMode: OverlayDatabaseMode.None,
18671867
useOverlayDatabaseCaching: false,
1868-
disabledReason: OverlayDisabledReason.FeatureNotEnabled,
1868+
disabledReason: OverlayDisabledReason.LanguageNotEnabled,
18691869
},
18701870
);
18711871

@@ -2057,7 +2057,7 @@ for (const language in KnownLanguage) {
20572057
{
20582058
overlayDatabaseMode: OverlayDatabaseMode.None,
20592059
useOverlayDatabaseCaching: false,
2060-
disabledReason: OverlayDisabledReason.FeatureNotEnabled,
2060+
disabledReason: OverlayDisabledReason.LanguageNotEnabled,
20612061
},
20622062
);
20632063
}

src/config-utils.ts

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -653,14 +653,14 @@ const OVERLAY_ANALYSIS_CODE_SCANNING_FEATURES: Record<Language, Feature> = {
653653
swift: Feature.OverlayAnalysisCodeScanningSwift,
654654
};
655655

656-
async function isOverlayAnalysisFeatureEnabled(
656+
async function getOverlayFeatureDisabledReason(
657657
features: FeatureEnablement,
658658
codeql: CodeQL,
659659
languages: Language[],
660660
codeScanningConfig: UserConfig,
661-
): Promise<boolean> {
661+
): Promise<OverlayDisabledReason | undefined> {
662662
if (!(await features.getValue(Feature.OverlayAnalysis, codeql))) {
663-
return false;
663+
return OverlayDisabledReason.OverallFeatureNotEnabled;
664664
}
665665
let enableForCodeScanningOnly = false;
666666
for (const language of languages) {
@@ -677,20 +677,22 @@ async function isOverlayAnalysisFeatureEnabled(
677677
enableForCodeScanningOnly = true;
678678
continue;
679679
}
680-
return false;
680+
return OverlayDisabledReason.LanguageNotEnabled;
681681
}
682682
if (enableForCodeScanningOnly) {
683683
// A code-scanning configuration runs only the (default) code-scanning suite
684684
// if the default queries are not disabled, and no packs, queries, or
685685
// query-filters are specified.
686-
return (
686+
const isCodeScanningOnly =
687687
codeScanningConfig["disable-default-queries"] !== true &&
688688
codeScanningConfig.packs === undefined &&
689689
codeScanningConfig.queries === undefined &&
690-
codeScanningConfig["query-filters"] === undefined
691-
);
690+
codeScanningConfig["query-filters"] === undefined;
691+
if (!isCodeScanningOnly) {
692+
return OverlayDisabledReason.NonDefaultQueries;
693+
}
692694
}
693-
return true;
695+
return undefined;
694696
}
695697

696698
/** Checks if the runner has enough disk space for overlay analysis. */
@@ -837,12 +839,12 @@ export async function getOverlayDatabaseMode(
837839
overlayDatabaseMode = OverlayDatabaseMode.None;
838840
disabledReason = OverlayDisabledReason.DisabledByRepositoryProperty;
839841
} else if (
840-
await isOverlayAnalysisFeatureEnabled(
842+
(disabledReason = await getOverlayFeatureDisabledReason(
841843
features,
842844
codeql,
843845
languages,
844846
codeScanningConfig,
845-
)
847+
)) === undefined
846848
) {
847849
const performResourceChecks = !(await features.getValue(
848850
Feature.OverlayAnalysisSkipResourceChecks,
@@ -903,8 +905,6 @@ export async function getOverlayDatabaseMode(
903905
"with caching because we are analyzing the default branch.",
904906
);
905907
}
906-
} else {
907-
disabledReason = OverlayDisabledReason.FeatureNotEnabled;
908908
}
909909

910910
const disabledResult = (reason: OverlayDisabledReason | undefined) => ({

src/overlay/diagnostics.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,12 @@ import { RepositoryPropertyName } from "../feature-flags/properties";
1212
export enum OverlayDisabledReason {
1313
/** Overlay analysis was disabled by a repository property. */
1414
DisabledByRepositoryProperty = "disabled-by-repository-property",
15-
/** Overlay analysis feature was not enabled. */
16-
FeatureNotEnabled = "feature-not-enabled",
15+
/** The top-level overlay analysis feature flag is not enabled. */
16+
OverallFeatureNotEnabled = "overall-feature-not-enabled",
17+
/** Overlay analysis is not enabled for one or more of the configured languages. */
18+
LanguageNotEnabled = "language-not-enabled",
19+
/** Overlay analysis is restricted to code-scanning-only configs but the config uses custom queries or packs. */
20+
NonDefaultQueries = "non-default-queries",
1721
/** The build mode is incompatible with overlay analysis. */
1822
IncompatibleBuildMode = "incompatible-build-mode",
1923
/** The CodeQL CLI version is too old to support overlay analysis. */

0 commit comments

Comments
 (0)