UNPKG

@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
"use strict"; 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;