UNPKG

@catladder/cli

Version:

Panter cli tool for cloud CI/CD and DevOps

28 lines 1.58 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.makeSecurityAuditOverview = exports.evaluateSecurityAudit = void 0; const ts_results_es_1 = require("ts-results-es"); const path_1 = require("path"); const promises_1 = require("fs/promises"); const createSecurityAuditMergeRequest_1 = require("./createSecurityAuditMergeRequest"); const auditDocument_1 = require("./auditDocument"); async function evaluateSecurityAudit({ path }) { return (await ts_results_es_1.Result.wrapAsync(async () => { const filePath = (0, path_1.join)(path, createSecurityAuditMergeRequest_1.SECURITY_AUDIT_FILE_NAME); const docData = await (0, promises_1.readFile)(filePath); const doc = docData.toString("utf-8"); return (0, auditDocument_1.evaluateDocument)(doc); })).mapErr((e) => `could not evaluate ${createSecurityAuditMergeRequest_1.SECURITY_AUDIT_FILE_NAME}: ${e}`); } exports.evaluateSecurityAudit = evaluateSecurityAudit; function makeSecurityAuditOverview(evaluation) { const ratingToEmo = (r) => (r < 33 ? "🟥" : r < 66 ? "🟨" : "🟩"); return `Project security posture overview: 🧐 Total topics: ${evaluation.score.totalTopics} 🔒 Secured topics: ${evaluation.score.securedTopics} 📢 Answered topics: ${evaluation.score.answeredTopics} ❔ Unknown topics: ${evaluation.score.unknownTopics} 📊 Rating: ${ratingToEmo(evaluation.score.rating)} ${evaluation.score.rating}/100`; } exports.makeSecurityAuditOverview = makeSecurityAuditOverview; //# sourceMappingURL=evaluateSecurityAudit.js.map