diff --git a/lib/upload-lib.js b/lib/upload-lib.js index d4fdcc4cd..f8cba1c4e 100644 --- a/lib/upload-lib.js +++ b/lib/upload-lib.js @@ -130,10 +130,20 @@ function validateSarifFileSchema(sarifFilePath) { const schema = JSON.parse(fs.readFileSync(__dirname + '/../src/sarif_v2.1.0_schema.json', 'utf8')); const result = new jsonschema.Validator().validate(sarif, schema); if (result.valid) { - return []; + return true; } else { - return result.errors.map(e => e.message); + // Set the failure message to the stacks of all the errors. + // This should be of a manageable size and may even give enough to fix the error. + const errorMessages = result.errors.map(e => "- " + e.stack); + core.setFailed("Unable to upload \"" + sarifFilePath + "\" as it is not valid SARIF:\n" + errorMessages.join("\n")); + // Also output the more verbose error messages in groups as these may be very large. + for (const error of result.errors) { + core.startGroup("Error details: " + error.stack); + core.info(JSON.stringify(error, null, 2)); + core.endGroup(); + } + return false; } } exports.validateSarifFileSchema = validateSarifFileSchema; @@ -152,9 +162,7 @@ async function uploadFiles(sarifFiles) { core.exportVariable(sentinelEnvVar, sentinelEnvVar); // Validate that the files we were asked to upload are all valid SARIF files for (const file of sarifFiles) { - const errors = validateSarifFileSchema(file); - if (errors.length > 0) { - core.setFailed("Unable to upload \"" + file + "\" as it is not valid SARIF:\n" + errors.join("\n")); + if (!validateSarifFileSchema(file)) { return false; } } diff --git a/lib/upload-lib.js.map b/lib/upload-lib.js.map index e72a3ba75..5934dd4c3 100644 --- a/lib/upload-lib.js.map +++ b/lib/upload-lib.js.map @@ -1 +1 @@ -{"version":3,"file":"upload-lib.js","sourceRoot":"","sources":["../src/upload-lib.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"upload-lib.js","sourceRoot":"","sources":["../src/upload-lib.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/lib/upload-lib.test.js b/lib/upload-lib.test.js index c8fe694cb..74c0039c7 100644 --- a/lib/upload-lib.test.js +++ b/lib/upload-lib.test.js @@ -14,12 +14,10 @@ const ava_1 = __importDefault(require("ava")); const uploadLib = __importStar(require("./upload-lib")); ava_1.default('validateSarifFileSchema - valid', t => { const inputFile = __dirname + '/../src/testdata/valid-sarif.sarif'; - const errors = uploadLib.validateSarifFileSchema(inputFile); - t.deepEqual(errors, []); + t.true(uploadLib.validateSarifFileSchema(inputFile)); }); ava_1.default('validateSarifFileSchema - invalid', t => { const inputFile = __dirname + '/../src/testdata/invalid-sarif.sarif'; - const errors = uploadLib.validateSarifFileSchema(inputFile); - t.notDeepEqual(errors, []); + t.false(uploadLib.validateSarifFileSchema(inputFile)); }); //# sourceMappingURL=upload-lib.test.js.map \ No newline at end of file diff --git a/lib/upload-lib.test.js.map b/lib/upload-lib.test.js.map index e612b9e65..1c4eae356 100644 --- a/lib/upload-lib.test.js.map +++ b/lib/upload-lib.test.js.map @@ -1 +1 @@ -{"version":3,"file":"upload-lib.test.js","sourceRoot":"","sources":["../src/upload-lib.test.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,8CAAuB;AAEvB,wDAA0C;AAE1C,aAAI,CAAC,iCAAiC,EAAE,CAAC,CAAC,EAAE;IAC1C,MAAM,SAAS,GAAG,SAAS,GAAG,oCAAoC,CAAC;IACnE,MAAM,MAAM,GAAG,SAAS,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;IAC5D,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AAC1B,CAAC,CAAC,CAAC;AAEH,aAAI,CAAC,mCAAmC,EAAE,CAAC,CAAC,EAAE;IAC5C,MAAM,SAAS,GAAG,SAAS,GAAG,sCAAsC,CAAC;IACrE,MAAM,MAAM,GAAG,SAAS,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;IAC5D,CAAC,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AAC7B,CAAC,CAAC,CAAC"} \ No newline at end of file +{"version":3,"file":"upload-lib.test.js","sourceRoot":"","sources":["../src/upload-lib.test.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,8CAAuB;AAEvB,wDAA0C;AAE1C,aAAI,CAAC,iCAAiC,EAAE,CAAC,CAAC,EAAE;IAC1C,MAAM,SAAS,GAAG,SAAS,GAAG,oCAAoC,CAAC;IACnE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC,CAAC;AACvD,CAAC,CAAC,CAAC;AAEH,aAAI,CAAC,mCAAmC,EAAE,CAAC,CAAC,EAAE;IAC5C,MAAM,SAAS,GAAG,SAAS,GAAG,sCAAsC,CAAC;IACrE,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC,CAAC;AACxD,CAAC,CAAC,CAAC"} \ No newline at end of file diff --git a/src/upload-lib.test.ts b/src/upload-lib.test.ts index e3b53efd9..e89c457dd 100644 --- a/src/upload-lib.test.ts +++ b/src/upload-lib.test.ts @@ -4,12 +4,10 @@ import * as uploadLib from './upload-lib'; test('validateSarifFileSchema - valid', t => { const inputFile = __dirname + '/../src/testdata/valid-sarif.sarif'; - const errors = uploadLib.validateSarifFileSchema(inputFile); - t.deepEqual(errors, []); + t.true(uploadLib.validateSarifFileSchema(inputFile)); }); test('validateSarifFileSchema - invalid', t => { const inputFile = __dirname + '/../src/testdata/invalid-sarif.sarif'; - const errors = uploadLib.validateSarifFileSchema(inputFile); - t.notDeepEqual(errors, []); + t.false(uploadLib.validateSarifFileSchema(inputFile)); }); diff --git a/src/upload-lib.ts b/src/upload-lib.ts index 7e6283a52..d8e9ba3f5 100644 --- a/src/upload-lib.ts +++ b/src/upload-lib.ts @@ -127,15 +127,27 @@ export function countResultsInSarif(sarif: string): number { // Validates that the given file path refers to a valid SARIF file. // Returns a non-empty list of error message if the file is invalid, // otherwise returns the empty list if the file is valid. -export function validateSarifFileSchema(sarifFilePath: string): string[] { +export function validateSarifFileSchema(sarifFilePath: string): boolean { const sarif = JSON.parse(fs.readFileSync(sarifFilePath, 'utf8')); const schema = JSON.parse(fs.readFileSync(__dirname + '/../src/sarif_v2.1.0_schema.json', 'utf8')); const result = new jsonschema.Validator().validate(sarif, schema); if (result.valid) { - return []; + return true; } else { - return result.errors.map(e => e.message); + // Set the failure message to the stacks of all the errors. + // This should be of a manageable size and may even give enough to fix the error. + const errorMessages = result.errors.map(e => "- " + e.stack); + core.setFailed("Unable to upload \"" + sarifFilePath + "\" as it is not valid SARIF:\n" + errorMessages.join("\n")); + + // Also output the more verbose error messages in groups as these may be very large. + for (const error of result.errors) { + core.startGroup("Error details: " + error.stack); + core.info(JSON.stringify(error, null, 2)); + core.endGroup(); + } + + return false; } } @@ -156,9 +168,7 @@ async function uploadFiles(sarifFiles: string[]): Promise { // Validate that the files we were asked to upload are all valid SARIF files for (const file of sarifFiles) { - const errors = validateSarifFileSchema(file); - if (errors.length > 0) { - core.setFailed("Unable to upload \"" + file + "\" as it is not valid SARIF:\n" + errors.join("\n")); + if (!validateSarifFileSchema(file)) { return false; } }