@@ -14,6 +14,7 @@ import { createStubCodeQL } from "./codeql";
1414import * as configUtils from "./config-utils" ;
1515import * as errorMessages from "./error-messages" ;
1616import { Feature } from "./feature-flags" ;
17+ import { RepositoryProperties } from "./feature-flags/properties" ;
1718import * as gitUtils from "./git-utils" ;
1819import { GitVersionInfo } from "./git-utils" ;
1920import { KnownLanguage , Language } from "./languages" ;
@@ -983,6 +984,7 @@ interface OverlayDatabaseModeTestSetup {
983984 diskUsage : DiskUsage | undefined ;
984985 memoryFlagValue : number ;
985986 shouldSkipOverlayAnalysisDueToCachedStatus : boolean ;
987+ repositoryProperties : RepositoryProperties ;
986988}
987989
988990const defaultOverlayDatabaseModeTestSetup : OverlayDatabaseModeTestSetup = {
@@ -1005,6 +1007,7 @@ const defaultOverlayDatabaseModeTestSetup: OverlayDatabaseModeTestSetup = {
10051007 } ,
10061008 memoryFlagValue : 6920 ,
10071009 shouldSkipOverlayAnalysisDueToCachedStatus : false ,
1010+ repositoryProperties : { } ,
10081011} ;
10091012
10101013const getOverlayDatabaseModeMacro = test . macro ( {
@@ -1082,6 +1085,7 @@ const getOverlayDatabaseModeMacro = test.macro({
10821085 setup . buildMode ,
10831086 undefined ,
10841087 setup . codeScanningConfig ,
1088+ setup . repositoryProperties ,
10851089 setup . gitVersion ,
10861090 logger ,
10871091 ) ;
@@ -1920,6 +1924,55 @@ test(
19201924 } ,
19211925) ;
19221926
1927+ test (
1928+ getOverlayDatabaseModeMacro ,
1929+ "No overlay when disabled via repository property" ,
1930+ {
1931+ languages : [ KnownLanguage . javascript ] ,
1932+ features : [ Feature . OverlayAnalysis , Feature . OverlayAnalysisJavascript ] ,
1933+ isPullRequest : true ,
1934+ repositoryProperties : {
1935+ "github-codeql-disable-overlay" : true ,
1936+ } ,
1937+ } ,
1938+ {
1939+ overlayDatabaseMode : OverlayDatabaseMode . None ,
1940+ useOverlayDatabaseCaching : false ,
1941+ } ,
1942+ ) ;
1943+
1944+ test (
1945+ getOverlayDatabaseModeMacro ,
1946+ "Overlay not disabled when repository property is false" ,
1947+ {
1948+ languages : [ KnownLanguage . javascript ] ,
1949+ features : [ Feature . OverlayAnalysis , Feature . OverlayAnalysisJavascript ] ,
1950+ isPullRequest : true ,
1951+ repositoryProperties : {
1952+ "github-codeql-disable-overlay" : false ,
1953+ } ,
1954+ } ,
1955+ {
1956+ overlayDatabaseMode : OverlayDatabaseMode . Overlay ,
1957+ useOverlayDatabaseCaching : true ,
1958+ } ,
1959+ ) ;
1960+
1961+ test (
1962+ getOverlayDatabaseModeMacro ,
1963+ "Environment variable override takes precedence over repository property" ,
1964+ {
1965+ overlayDatabaseEnvVar : "overlay" ,
1966+ repositoryProperties : {
1967+ "github-codeql-disable-overlay" : true ,
1968+ } ,
1969+ } ,
1970+ {
1971+ overlayDatabaseMode : OverlayDatabaseMode . Overlay ,
1972+ useOverlayDatabaseCaching : false ,
1973+ } ,
1974+ ) ;
1975+
19231976// Exercise language-specific overlay analysis features code paths
19241977for ( const language in KnownLanguage ) {
19251978 test (
0 commit comments