/** * GitHub Action Types * * Types for the Vaspera Certify GitHub Action. * * @module action/types */ import type { Severity } from "../certification/types.js"; import type { AggregatedScanResult } from "../scanners/types.js"; /** * Action input parameters */ export interface ActionInputs { mode: "scan" | "certify" | "diff"; failOn: Severity | "none"; uploadSarif: boolean; commentOnPr: boolean; scanners: string[]; agents: string[]; anthropicApiKey?: string; workingDirectory: string; configFile?: string; } /** * Action output values */ export interface ActionOutputs { certificationId?: string; totalFindings: number; criticalCount: number; highCount: number; mediumCount: number; lowCount: number; sarifFile?: string; certificationLevel?: string; scannerSummary: string; } /** * GitHub context information */ export interface GitHubContext { owner: string; repo: string; sha: string; ref: string; eventName: string; pullRequest?: { number: number; base: { sha: string; ref: string; }; head: { sha: string; ref: string; }; }; workflow: string; runId: number; runNumber: number; actor: string; } /** * Changed file information for diff mode */ export interface ChangedFile { filename: string; status: "added" | "removed" | "modified" | "renamed" | "copied" | "changed" | "unchanged"; additions: number; deletions: number; changes: number; previousFilename?: string; } /** * PR comment content */ export interface PrCommentContent { title: string; summary: string; findingsTable: string; scannerStatus: string; certificationBadge?: string; footer: string; } /** * Action result */ export interface ActionResult { success: boolean; outputs: ActionOutputs; scanResult?: AggregatedScanResult; certificationId?: string; sarifPath?: string; error?: string; } /** * Severity threshold for failing the action */ export declare const SEVERITY_LEVELS: Record; /** * Check if findings exceed the fail threshold */ export declare function exceedsThreshold(bySeverity: Record, threshold: Severity | "none"): boolean; //# sourceMappingURL=types.d.ts.map