@jitesoft/audit-for-gitlab
Version:
Minimal application to convert npm audit report into gitlab-ci vulnerability report format.
50 lines (48 loc) • 2.82 kB
JavaScript
;
var _Object$defineProperty = require("@babel/runtime-corejs3/core-js/object/define-property");
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
_Object$defineProperty(exports, "__esModule", {
value: true
});
exports.reportFindings = exports.doExit = void 0;
var _parseInt = _interopRequireDefault(require("@babel/runtime-corejs3/core-js/number/parse-int"));
var _Util = require("./Util");
/**
*
* @param {object} meta
* @param {string} npmVersion
* @param {object} packageData
* @return {Promise<void>}
*/
const reportFindings = async (meta, npmVersion, packageData) => {
await (0, _Util.logger)(_Util.LogLevels.info, `Found ${meta.vulnerabilities.total} vulnerabilities.`);
await (0, _Util.logger)(_Util.LogLevels.info, `Project has a total of ${meta.dependencies.total} dependencies.`);
await (0, _Util.logger)(_Util.LogLevels.info, `\t${meta.dependencies.prod} production.`);
await (0, _Util.logger)(_Util.LogLevels.info, `\t${meta.dependencies.dev} develop.`);
await (0, _Util.logger)(_Util.LogLevels.info, `\t${meta.dependencies.optional} optional.`);
await (0, _Util.logger)(_Util.LogLevels.info, `\t${meta.dependencies.peer} peer.`);
await (0, _Util.logger)(_Util.LogLevels.info, `\t${meta.dependencies.peerOptional} peer optional.`);
await (0, _Util.logger)(_Util.LogLevels.info, '\nResult:');
await (0, _Util.logger)(_Util.LogLevels.info, `\t\x1b[4mTotal: ${meta.vulnerabilities.total}\x1b[0m`);
await (0, _Util.logger)(_Util.LogLevels.info, `\tCritical: ${meta.vulnerabilities.critical}`);
await (0, _Util.logger)(_Util.LogLevels.info, `\tHigh: ${meta.vulnerabilities.high}`);
await (0, _Util.logger)(_Util.LogLevels.info, `\tModerate: ${meta.vulnerabilities.moderate}`);
await (0, _Util.logger)(_Util.LogLevels.info, `\tLow: ${meta.vulnerabilities.low}`);
await (0, _Util.logger)(_Util.LogLevels.info, `\tInfo: ${meta.vulnerabilities.info}\n`);
await (0, _Util.logger)(_Util.LogLevels.info, `Scan completed. Thank you for using Jitesoft NPM Audit Analyzer (${packageData.version}) with the Npmjs scanner (${npmVersion}) for your scanning needs!`);
};
/**
*
* @param {object} vulnerabilities
* @return {Promise<void>}
*/
exports.reportFindings = reportFindings;
const doExit = async vulnerabilities => {
const exitCode = (0, _parseInt.default)((0, _Util.getConf)('SCAN_EXIT_CODE', vulnerabilities.high + vulnerabilities.critical + vulnerabilities.moderate > 0 ? 1 : 0), 10);
await (0, _Util.logger)(_Util.LogLevels.debug, `Exiting with code ${exitCode}`);
if (exitCode !== 0) {
await (0, _Util.logger)(_Util.LogLevels.error, `Found vulnerabilities with high severity in the scan, exiting with code ${exitCode}`);
}
process.exit(exitCode);
};
exports.doExit = doExit;