Avoid reloading features when uploading SARIF

This commit is contained in:
Henry Mercer
2024-07-01 14:00:32 +02:00
parent 6c2a71ced3
commit 9679491cab
15 changed files with 37 additions and 26 deletions

View File

@@ -305,6 +305,7 @@ async function run() {
outputDir,
actionsUtil.getRequiredInput("checkout_path"),
actionsUtil.getOptionalInput("category"),
features,
logger,
);
core.setOutput("sarif-id", uploadResult.sarifID);

View File

@@ -419,6 +419,7 @@ async function testFailedSarifUpload(
sinon.match.string,
category,
sinon.match.any,
sinon.match.any,
),
`Actual args were: ${uploadFiles.args}`,
);

View File

@@ -108,6 +108,7 @@ async function maybeUploadFailedSarif(
sarifFile,
checkoutPath,
category,
features,
logger,
);
await uploadLib.waitForProcessing(

View File

@@ -15,7 +15,7 @@ import { getGitHubVersion, wrapApiConfigurationError } from "./api-client";
import { CodeQL, getCodeQL } from "./codeql";
import { getConfig } from "./config-utils";
import { EnvVar } from "./environment";
import { FeatureEnablement, Features } from "./feature-flags";
import { FeatureEnablement } from "./feature-flags";
import * as fingerprints from "./fingerprints";
import { initCodeQL } from "./init";
import { Logger } from "./logging";
@@ -545,23 +545,15 @@ export async function uploadFiles(
sarifPath: string,
checkoutPath: string,
category: string | undefined,
features: FeatureEnablement,
logger: Logger,
): Promise<UploadResult> {
const repositoryNwo = parseRepositoryNwo(
util.getRequiredEnvParam("GITHUB_REPOSITORY"),
);
const sarifFiles = getSarifFilePaths(sarifPath);
logger.startGroup("Uploading results");
logger.info(`Processing sarif files: ${JSON.stringify(sarifFiles)}`);
const gitHubVersion = await getGitHubVersion();
const features = new Features(
gitHubVersion,
repositoryNwo,
actionsUtil.getTemporaryDirectory(),
logger,
);
// Validate that the files we were asked to upload are all valid SARIF files
for (const file of sarifFiles) {
@@ -618,7 +610,11 @@ export async function uploadFiles(
logger.debug(`Number of results in upload: ${numResultInSarif}`);
// Make the upload
const sarifID = await uploadPayload(payload, repositoryNwo, logger);
const sarifID = await uploadPayload(
payload,
parseRepositoryNwo(util.getRequiredEnvParam("GITHUB_REPOSITORY")),
logger,
);
logger.endGroup();

View File

@@ -1,8 +1,9 @@
import * as core from "@actions/core";
import * as actionsUtil from "./actions-util";
import { getActionVersion } from "./actions-util";
import { getActionVersion, getTemporaryDirectory } from "./actions-util";
import { getGitHubVersion } from "./api-client";
import { Features } from "./feature-flags";
import { Logger, getActionsLogger } from "./logging";
import { parseRepositoryNwo } from "./repository";
import {
@@ -58,6 +59,16 @@ async function run() {
const gitHubVersion = await getGitHubVersion();
checkActionVersion(getActionVersion(), gitHubVersion);
const repositoryNwo = parseRepositoryNwo(
getRequiredEnvParam("GITHUB_REPOSITORY"),
);
const features = new Features(
gitHubVersion,
repositoryNwo,
getTemporaryDirectory(),
logger,
);
const startingStatusReportBase = await createStatusReportBase(
ActionName.UploadSarif,
"starting",
@@ -75,6 +86,7 @@ async function run() {
actionsUtil.getRequiredInput("sarif_file"),
actionsUtil.getRequiredInput("checkout_path"),
actionsUtil.getOptionalInput("category"),
features,
logger,
);
core.setOutput("sarif-id", uploadResult.sarifID);