fix: improve error handling and logging for diff range path resolution

This commit is contained in:
Sam Robson
2026-03-25 19:49:42 +00:00
parent d5bb39fa0b
commit 23a0098b57
11 changed files with 169 additions and 26 deletions

32
lib/init-action.js generated
View File

@@ -105491,10 +105491,19 @@ function computeChangedFiles(baseFileOids, overlayFileOids) {
}
async function getDiffRangeFilePaths(sourceRoot, logger) {
const jsonFilePath = getDiffRangesJsonFilePath();
if (!fs3.existsSync(jsonFilePath)) {
logger.debug(
`No diff ranges JSON file found at ${jsonFilePath}; skipping.`
);
return [];
}
let contents;
try {
contents = await fs3.promises.readFile(jsonFilePath, "utf8");
} catch {
} catch (e) {
logger.warning(
`Failed to read diff ranges JSON file at ${jsonFilePath}: ${e}`
);
return [];
}
let diffRanges;
@@ -105511,6 +105520,11 @@ async function getDiffRangeFilePaths(sourceRoot, logger) {
);
const repoRoot = await getGitRoot(sourceRoot);
if (repoRoot === void 0) {
if (getOptionalInput("source-root")) {
throw new Error(
"Cannot determine git root to convert diff range paths relative to source-root. Failing to avoid omitting files from the analysis."
);
}
logger.warning(
"Cannot determine git root; returning diff range paths as-is."
);
@@ -110588,8 +110602,8 @@ async function loadRepositoryProperties(repositoryNwo, logger) {
}
}
async function computeAndPersistDiffRanges(codeql, features, logger) {
try {
await withGroupAsync("Compute PR diff ranges", async () => {
await withGroupAsync("Computing PR diff ranges", async () => {
try {
const branches = await getDiffInformedAnalysisBranches(
codeql,
features,
@@ -110607,12 +110621,12 @@ async function computeAndPersistDiffRanges(codeql, features, logger) {
logger.info(
`Persisted ${ranges.length} diff range(s) across ${distinctFiles} file(s).`
);
});
} catch (e) {
logger.warning(
`Failed to compute and persist PR diff ranges: ${getErrorMessage(e)}`
);
}
} catch (e) {
logger.warning(
`Failed to compute and persist PR diff ranges: ${getErrorMessage(e)}`
);
}
});
}
async function recordZstdAvailability(config, zstdAvailability) {
addNoLanguageDiagnostic(