File tree Expand file tree Collapse file tree 2 files changed +22
-0
lines changed
Expand file tree Collapse file tree 2 files changed +22
-0
lines changed Original file line number Diff line number Diff line change @@ -88,6 +88,10 @@ export function writeDiffRangesJsonFile(
8888 ) ;
8989}
9090
91+ export function hasDiffRangesJsonFile ( ) : boolean {
92+ return fs . existsSync ( actionsUtil . getDiffRangesJsonFilePath ( ) ) ;
93+ }
94+
9195export function readDiffRangesJsonFile (
9296 logger : Logger ,
9397) : DiffThunkRange [ ] | undefined {
Original file line number Diff line number Diff line change @@ -40,6 +40,8 @@ import {
4040import {
4141 getDiffInformedAnalysisBranches ,
4242 getPullRequestEditedDiffRanges ,
43+ hasDiffRangesJsonFile ,
44+ shouldPerformDiffInformedAnalysis ,
4345 writeDiffRangesJsonFile ,
4446} from "./diff-informed-analysis-utils" ;
4547import { EnvVar } from "./environment" ;
@@ -438,6 +440,22 @@ async function run(startedAt: Date) {
438440 return ;
439441 }
440442
443+ // If overlay is enabled and diff-informed analysis should have run but
444+ // failed to produce output, revert to non-overlay analysis. Overlay
445+ // without diff-informed is an untested combination that can produce
446+ // inaccurate results.
447+ if (
448+ config . overlayDatabaseMode === OverlayDatabaseMode . Overlay &&
449+ ( await shouldPerformDiffInformedAnalysis ( codeql , features , logger ) ) &&
450+ ! hasDiffRangesJsonFile ( )
451+ ) {
452+ logger . warning (
453+ "Diff-informed analysis is not available for this pull request. " +
454+ `Reverting overlay database mode to ${ OverlayDatabaseMode . None } .` ,
455+ ) ;
456+ config . overlayDatabaseMode = OverlayDatabaseMode . None ;
457+ }
458+
441459 let overlayBaseDatabaseStats : OverlayBaseDatabaseDownloadStats | undefined ;
442460 let dependencyCachingStatus : DependencyCacheRestoreStatusReport | undefined ;
443461 try {
You can’t perform that action at this time.
0 commit comments