feat: reclassify InvalidSarifUploadError as a user-error when final status report is produced

This commit is contained in:
Fotis Koutoulakis (@NlightNFotis) 2025-03-31 12:22:18 +01:00
parent 72a2b1295e
commit f21cf0bbd7
6 changed files with 28 additions and 4 deletions

7
lib/status-report.js generated
View file

@ -47,6 +47,7 @@ const doc_url_1 = require("./doc-url");
const environment_1 = require("./environment");
const git_utils_1 = require("./git-utils");
const repository_1 = require("./repository");
const upload_lib_1 = require("./upload-lib");
const util_1 = require("./util");
var ActionName;
(function (ActionName) {
@ -81,7 +82,11 @@ var JobStatus;
})(JobStatus || (exports.JobStatus = JobStatus = {}));
function getActionsStatus(error, otherFailureCause) {
if (error || otherFailureCause) {
return error instanceof util_1.ConfigurationError ? "user-error" : "failure";
if (error instanceof util_1.ConfigurationError ||
error instanceof upload_lib_1.InvalidSarifUploadError) {
return "user-error";
}
return "failure";
}
else {
return "success";

File diff suppressed because one or more lines are too long

View file

@ -44,6 +44,7 @@ const languages_1 = require("./languages");
const logging_1 = require("./logging");
const status_report_1 = require("./status-report");
const testing_utils_1 = require("./testing-utils");
const upload_lib_1 = require("./upload-lib");
const util_1 = require("./util");
(0, testing_utils_1.setupTests)(ava_1.default);
function setupEnvironmentAndStub(tmpDir) {
@ -118,5 +119,6 @@ function setupEnvironmentAndStub(tmpDir) {
t.is((0, status_report_1.getActionsStatus)(new Object()), "failure", "getActionsStatus should return failure if passed an arbitrary object");
t.is((0, status_report_1.getActionsStatus)(null, "an error occurred"), "failure", "getActionsStatus should return failure if passed null and an additional failure cause");
t.is((0, status_report_1.getActionsStatus)((0, util_1.wrapError)(new util_1.ConfigurationError("arbitrary error"))), "user-error", "We still recognise a wrapped ConfigurationError as a user error");
t.is((0, status_report_1.getActionsStatus)(new upload_lib_1.InvalidSarifUploadError("SyntaxError: Unexpected end of JSON input")), "user-error", "We recognise an InvalidSarifUploadError as a user error");
});
//# sourceMappingURL=status-report.test.js.map

File diff suppressed because one or more lines are too long

View file

@ -15,6 +15,7 @@ import {
setupActionsVars,
createTestConfig,
} from "./testing-utils";
import { InvalidSarifUploadError } from "./upload-lib";
import { BuildMode, ConfigurationError, withTmpDir, wrapError } from "./util";
setupTests(test);
@ -242,4 +243,12 @@ test("getActionStatus handling correctly various types of errors", (t) => {
"user-error",
"We still recognise a wrapped ConfigurationError as a user error",
);
t.is(
getActionsStatus(
new InvalidSarifUploadError("SyntaxError: Unexpected end of JSON input"),
),
"user-error",
"We recognise an InvalidSarifUploadError as a user error",
);
});

View file

@ -18,6 +18,7 @@ import { EnvVar } from "./environment";
import { getRef } from "./git-utils";
import { Logger } from "./logging";
import { getRepositoryNwo } from "./repository";
import { InvalidSarifUploadError } from "./upload-lib";
import {
ConfigurationError,
isHTTPError,
@ -173,7 +174,14 @@ export function getActionsStatus(
otherFailureCause?: string,
): ActionStatus {
if (error || otherFailureCause) {
return error instanceof ConfigurationError ? "user-error" : "failure";
if (
error instanceof ConfigurationError ||
error instanceof InvalidSarifUploadError
) {
return "user-error";
}
return "failure";
} else {
return "success";
}