Add explicit field for extraction streaming

This commit is contained in:
Henry Mercer 2024-10-10 19:54:56 +01:00
parent 4dca88a5fc
commit 565880b86a
6 changed files with 54 additions and 14 deletions

24
lib/tools-download.js generated
View file

@ -33,6 +33,22 @@ const feature_flags_1 = require("./feature-flags");
const logging_1 = require("./logging");
const tar = __importStar(require("./tar"));
const util_1 = require("./util");
function makeDownloadFirstToolsDownloadDurations(downloadDurationMs, extractionDurationMs) {
return {
combinedDurationMs: downloadDurationMs + extractionDurationMs,
downloadDurationMs,
extractionDurationMs,
streamExtraction: false,
};
}
function makeStreamedToolsDownloadDurations(combinedDurationMs) {
return {
combinedDurationMs,
downloadDurationMs: undefined,
extractionDurationMs: undefined,
streamExtraction: true,
};
}
async function downloadAndExtract(codeqlURL, authorization, headers, tarVersion, tempDir, features, logger) {
logger.info(`Downloading CodeQL tools from ${codeqlURL} . This may take a while.`);
const compressionMethod = tar.inferCompressionMethod(codeqlURL);
@ -46,11 +62,9 @@ async function downloadAndExtract(codeqlURL, authorization, headers, tarVersion,
return {
extractedBundlePath,
statusReport: {
combinedDurationMs,
compressionMethod,
downloadDurationMs: undefined,
extractionDurationMs: undefined,
toolsUrl: sanitizeUrlForStatusReport(codeqlURL),
...makeStreamedToolsDownloadDurations(combinedDurationMs),
},
};
}
@ -75,10 +89,8 @@ async function downloadAndExtract(codeqlURL, authorization, headers, tarVersion,
extractedBundlePath,
statusReport: {
compressionMethod,
combinedDurationMs: downloadDurationMs + extractionDurationMs,
downloadDurationMs,
extractionDurationMs,
toolsUrl: sanitizeUrlForStatusReport(codeqlURL),
...makeDownloadFirstToolsDownloadDurations(downloadDurationMs, extractionDurationMs),
},
};
}