/** * SARIF Export Module * * Exports certification findings to SARIF (Static Analysis Results Interchange Format) * for integration with GitHub Security, SonarQube, and other analysis tools. * * SARIF Spec: https://docs.oasis-open.org/sarif/sarif/v2.1.0/sarif-v2.1.0.html * * @module certification/sarif */ import { Certification } from "./types.js"; /** * SARIF severity levels */ type SarifLevel = "error" | "warning" | "note" | "none"; /** * SARIF report structure (simplified for common use) */ export interface SarifReport { $schema: string; version: string; runs: SarifRun[]; } export interface SarifRun { tool: { driver: { name: string; version: string; informationUri: string; rules: SarifRule[]; }; }; results: SarifResult[]; invocations: SarifInvocation[]; } export interface SarifRule { id: string; name: string; shortDescription: { text: string; }; fullDescription?: { text: string; }; help?: { text: string; }; defaultConfiguration: { level: SarifLevel; }; properties?: { tags?: string[]; "security-severity"?: string; }; } export interface SarifResult { ruleId: string; level: SarifLevel; message: { text: string; }; locations: SarifLocation[]; partialFingerprints?: Record; properties?: { confidence?: number; agent?: string; category?: string; instances?: number; }; } export interface SarifLocation { physicalLocation: { artifactLocation: { uri: string; uriBaseId?: string; }; region?: { startLine: number; startColumn?: number; endLine?: number; endColumn?: number; }; }; } export interface SarifInvocation { executionSuccessful: boolean; startTimeUtc?: string; endTimeUtc?: string; } /** * Generate a SARIF report from certification data */ export declare function generateSarifReport(certification: Certification): SarifReport; /** * Export certification to SARIF file */ export declare function exportToSarif(projectPath: string, certification: Certification, outputFilename?: string): Promise; /** * Export to GitHub Code Scanning format (compatible with SARIF upload action) */ export declare function exportForGitHub(projectPath: string, certification: Certification): Promise; /** * Export to SonarQube format (subset of SARIF) */ export declare function exportForSonarQube(projectPath: string, certification: Certification): Promise; export {}; //# sourceMappingURL=sarif.d.ts.map