@@ -25,7 +25,7 @@ import {
2525import { shouldPerformDiffInformedAnalysis } from "./diff-informed-analysis-utils" ;
2626import * as errorMessages from "./error-messages" ;
2727import { Feature , FeatureEnablement } from "./feature-flags" ;
28- import { RepositoryProperties } from "./feature-flags/properties" ;
28+ import { RepositoryProperties , RepositoryPropertyName } from "./feature-flags/properties" ;
2929import { getGitRoot , isAnalyzingDefaultBranch } from "./git-utils" ;
3030import { KnownLanguage , Language } from "./languages" ;
3131import { Logger } from "./logging" ;
@@ -656,6 +656,7 @@ export async function getOverlayDatabaseMode(
656656 sourceRoot : string ,
657657 buildMode : BuildMode | undefined ,
658658 codeScanningConfig : UserConfig ,
659+ repositoryProperties : RepositoryProperties ,
659660 logger : Logger ,
660661) : Promise < {
661662 overlayDatabaseMode : OverlayDatabaseMode ;
@@ -664,42 +665,48 @@ export async function getOverlayDatabaseMode(
664665 let overlayDatabaseMode = OverlayDatabaseMode . None ;
665666 let useOverlayDatabaseCaching = false ;
666667
667- const modeEnv = process . env . CODEQL_OVERLAY_DATABASE_MODE ;
668- // Any unrecognized CODEQL_OVERLAY_DATABASE_MODE value will be ignored and
669- // treated as if the environment variable was not set.
670- if (
671- modeEnv === OverlayDatabaseMode . Overlay ||
672- modeEnv === OverlayDatabaseMode . OverlayBase ||
673- modeEnv === OverlayDatabaseMode . None
674- ) {
675- overlayDatabaseMode = modeEnv ;
676- logger . info (
677- `Setting overlay database mode to ${ overlayDatabaseMode } ` +
678- "from the CODEQL_OVERLAY_DATABASE_MODE environment variable." ,
679- ) ;
680- } else if (
681- await isOverlayAnalysisFeatureEnabled (
682- repository ,
683- features ,
684- codeql ,
685- languages ,
686- codeScanningConfig ,
687- )
688- ) {
689- if ( isAnalyzingPullRequest ( ) ) {
690- overlayDatabaseMode = OverlayDatabaseMode . Overlay ;
691- useOverlayDatabaseCaching = true ;
692- logger . info (
693- `Setting overlay database mode to ${ overlayDatabaseMode } ` +
694- "with caching because we are analyzing a pull request." ,
695- ) ;
696- } else if ( await isAnalyzingDefaultBranch ( ) ) {
697- overlayDatabaseMode = OverlayDatabaseMode . OverlayBase ;
698- useOverlayDatabaseCaching = true ;
668+ const overlayAnalysisDisabled = repositoryProperties [ RepositoryPropertyName . DISABLE_OVERLAY_ANALYSIS ] ;
669+ if ( overlayAnalysisDisabled ) {
670+ logger . info ( `Setting overlay database mode to ${ overlayDatabaseMode } ` +
671+ `because overlay analysis is disabled by a custom repository property.` ) ;
672+ } else {
673+ const modeEnv = process . env . CODEQL_OVERLAY_DATABASE_MODE ;
674+ // Any unrecognized CODEQL_OVERLAY_DATABASE_MODE value will be ignored and
675+ // treated as if the environment variable was not set.
676+ if (
677+ modeEnv === OverlayDatabaseMode . Overlay ||
678+ modeEnv === OverlayDatabaseMode . OverlayBase ||
679+ modeEnv === OverlayDatabaseMode . None
680+ ) {
681+ overlayDatabaseMode = modeEnv ;
699682 logger . info (
700683 `Setting overlay database mode to ${ overlayDatabaseMode } ` +
701- "with caching because we are analyzing the default branch ." ,
684+ "from the CODEQL_OVERLAY_DATABASE_MODE environment variable ." ,
702685 ) ;
686+ } else if (
687+ await isOverlayAnalysisFeatureEnabled (
688+ repository ,
689+ features ,
690+ codeql ,
691+ languages ,
692+ codeScanningConfig ,
693+ )
694+ ) {
695+ if ( isAnalyzingPullRequest ( ) ) {
696+ overlayDatabaseMode = OverlayDatabaseMode . Overlay ;
697+ useOverlayDatabaseCaching = true ;
698+ logger . info (
699+ `Setting overlay database mode to ${ overlayDatabaseMode } ` +
700+ "with caching because we are analyzing a pull request." ,
701+ ) ;
702+ } else if ( await isAnalyzingDefaultBranch ( ) ) {
703+ overlayDatabaseMode = OverlayDatabaseMode . OverlayBase ;
704+ useOverlayDatabaseCaching = true ;
705+ logger . info (
706+ `Setting overlay database mode to ${ overlayDatabaseMode } ` +
707+ "with caching because we are analyzing the default branch." ,
708+ ) ;
709+ }
703710 }
704711 }
705712
@@ -855,6 +862,7 @@ export async function initConfig(
855862 inputs . sourceRoot ,
856863 config . buildMode ,
857864 config . computedConfig ,
865+ inputs . repositoryProperties ,
858866 logger ,
859867 ) ;
860868 logger . info (
0 commit comments