UNPKG

pi-lens

Version:

Real-time code feedback for pi — LSP, linters, formatters, type-checking, structural analysis & booboo

26 lines (25 loc) • 951 B
import * as path from "node:path"; /** * A gitleaks finding is a leaked secret at a concrete `file:startLine`. Secrets * are treated as **blocking** — a committed credential is not a style nit. */ export function gitleaksFindingToProjectDiagnostic(cwd, finding) { return { filePath: path.isAbsolute(finding.file) ? finding.file : path.resolve(cwd, finding.file), line: finding.startLine, severity: "error", semantic: "blocking", tool: "gitleaks", runner: "gitleaks", rule: `gitleaks:${finding.ruleId}`, message: `Potential secret: ${finding.description || finding.ruleId}`, source: "project-scan", }; } export function gitleaksResultToProjectDiagnostics(cwd, result) { if (!result.success || result.findings.length === 0) return []; return result.findings.map((finding) => gitleaksFindingToProjectDiagnostic(cwd, finding)); }