@@ -6,7 +6,7 @@ import * as io from "@actions/io";
66import * as del from "del" ;
77import * as yaml from "js-yaml" ;
88
9- import { getTemporaryDirectory , PullRequestBranches } from "./actions-util" ;
9+ import { getTemporaryDirectory } from "./actions-util" ;
1010import * as analyses from "./analyses" ;
1111import { setupCppAutobuild } from "./autobuild" ;
1212import { type CodeQL } from "./codeql" ;
@@ -15,8 +15,7 @@ import { getJavaTempDependencyDir } from "./dependency-caching";
1515import { addDiagnostic , makeDiagnostic } from "./diagnostics" ;
1616import {
1717 DiffThunkRange ,
18- writeDiffRangesJsonFile ,
19- getPullRequestEditedDiffRanges ,
18+ readDiffRangesJsonFile ,
2019} from "./diff-informed-analysis-utils" ;
2120import { EnvVar } from "./environment" ;
2221import { FeatureEnablement , Feature } from "./feature-flags" ;
@@ -282,16 +281,36 @@ async function finalizeDatabaseCreation(
282281 * the diff range information, or `undefined` if the feature is disabled.
283282 */
284283export async function setupDiffInformedQueryRun (
285- branches : PullRequestBranches ,
286284 logger : Logger ,
287285) : Promise < string | undefined > {
288286 return await withGroupAsync (
289287 "Generating diff range extension pack" ,
290288 async ( ) => {
289+ // Only use precomputed diff ranges; never recompute here.
290+ let diffRanges : DiffThunkRange [ ] | undefined ;
291+ try {
292+ diffRanges = readDiffRangesJsonFile ( logger ) ;
293+ } catch ( e ) {
294+ logger . debug (
295+ `Failed to read precomputed diff ranges: ${ util . getErrorMessage ( e ) } ` ,
296+ ) ;
297+ diffRanges = undefined ;
298+ }
299+
300+ if ( diffRanges === undefined ) {
301+ logger . info (
302+ "No precomputed diff ranges found; skipping diff-informed analysis stage." ,
303+ ) ;
304+ return undefined ;
305+ }
306+
307+ const fileCount = new Set (
308+ diffRanges . filter ( ( r ) => r . path ) . map ( ( r ) => r . path ) ,
309+ ) . size ;
291310 logger . info (
292- `Calculating diff ranges for ${ branches . base } ... ${ branches . head } ` ,
311+ `Using precomputed diff ranges ( ${ diffRanges . length } ranges across ${ fileCount } files). ` ,
293312 ) ;
294- const diffRanges = await getPullRequestEditedDiffRanges ( branches , logger ) ;
313+
295314 const packDir = writeDiffRangeDataExtensionPack ( logger , diffRanges ) ;
296315 if ( packDir === undefined ) {
297316 logger . warning (
@@ -388,10 +407,6 @@ extensions:
388407 `Wrote pr-diff-range extension pack to ${ extensionFilePath } :\n${ extensionContents } ` ,
389408 ) ;
390409
391- // Write the diff ranges to a JSON file, for action-side alert filtering by the
392- // upload-lib module.
393- writeDiffRangesJsonFile ( logger , ranges ) ;
394-
395410 return diffRangeDir ;
396411}
397412
0 commit comments