output

package
v0.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 11, 2026 License: MIT Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var DefaultScoreWeights = ScoreWeights{Error: 100, Warning: 10, Info: 1}

Functions

func FormatCheckstyleColumns

func FormatCheckstyleColumns(w io.Writer, columns *scanner.FindingColumns)

FormatCheckstyleColumns writes columnar findings as Checkstyle XML.

func FormatJSONColumns

func FormatJSONColumns(w io.Writer, columns *scanner.FindingColumns, version string,
	fileCount, ruleCount int, start time.Time,
	perfTimings []perf.TimingEntry, activeRules []*api.Rule,
	experiments []string,
	cacheStats *cache.Stats,
	caches []cacheutil.NamedCacheStats,
	cacheBudget *cacheutil.BudgetReport,
	perfRuleStats ...[]rules.RuleExecutionStat) error

FormatJSONColumns writes columnar findings as JSON with two-space indentation. CLI consumers see the indented form.

func FormatJSONColumnsCompact added in v0.2.0

func FormatJSONColumnsCompact(w io.Writer, columns *scanner.FindingColumns, version string,
	fileCount, ruleCount int, start time.Time,
	perfTimings []perf.TimingEntry, activeRules []*api.Rule,
	experiments []string,
	cacheStats *cache.Stats,
	caches []cacheutil.NamedCacheStats,
	cacheBudget *cacheutil.BudgetReport,
	perfRuleStats ...[]rules.RuleExecutionStat) error

FormatJSONColumnsCompact writes columnar findings as JSON with no indentation or internal newlines. The daemon's streaming response path uses this so the wire-level JSON sits cleanly inside the line-delimited daemon protocol (a single embedded '\n' would let the client's bufio.Reader.ReadBytes('\n') return a truncated body).

func FormatPlainColumns

func FormatPlainColumns(w io.Writer, columns *scanner.FindingColumns)

FormatPlainColumns writes columnar findings as plain text with optional color.

func FormatSARIFColumns

func FormatSARIFColumns(w io.Writer, columns *scanner.FindingColumns, version string) error

FormatSARIFColumns writes columnar findings as SARIF 2.1.0 JSON.

func GradeForScore

func GradeForScore(score int) string

Types

type JSONFinding

type JSONFinding struct {
	File       string  `json:"file"`
	Line       int     `json:"line"`
	Column     int     `json:"column"`
	StartByte  *int    `json:"startByte,omitempty"`
	EndByte    *int    `json:"endByte,omitempty"`
	RuleSet    string  `json:"ruleSet"`
	Rule       string  `json:"rule"`
	Severity   string  `json:"severity"`
	Message    string  `json:"message"`
	Fixable    bool    `json:"fixable"`
	FixLevel   string  `json:"fixLevel,omitempty"`
	Confidence float64 `json:"confidence,omitempty"`
}

JSONFinding is a single finding in JSON output.

type JSONReport

type JSONReport struct {
	Success     bool                        `json:"success"`
	Version     string                      `json:"version"`
	DurationMs  int64                       `json:"durationMs"`
	Files       int                         `json:"files"`
	Rules       int                         `json:"rules"`
	Experiments []string                    `json:"experiments,omitempty"`
	Findings    []JSONFinding               `json:"findings"`
	Summary     JSONSummary                 `json:"summary"`
	Cache       *cache.Stats                `json:"cache,omitempty"`
	Caches      []cacheutil.NamedCacheStats `json:"caches,omitempty"`
	CacheBudget *cacheutil.BudgetReport     `json:"cacheBudget,omitempty"`
	PerfTiming  []perf.TimingEntry          `json:"perfTiming,omitempty"`
	PerfRules   []rules.RuleExecutionStat   `json:"perfRuleStats,omitempty"`
}

JSONReport is the top-level JSON output.

type JSONSummary

type JSONSummary struct {
	Total     int            `json:"total"`
	ByRuleSet map[string]int `json:"byRuleSet"`
	ByRule    map[string]int `json:"byRule"`
	Fixable   int            `json:"fixable"`
}

JSONSummary summarizes findings.

type ScoreReport

type ScoreReport struct {
	Score              int            `json:"score"`
	Grade              string         `json:"grade"`
	FindingsBySeverity map[string]int `json:"findingsBySeverity"`
	Weights            ScoreWeights   `json:"weights"`
	Summary            ScoreSummary   `json:"summary"`
}

func ScoreFindings

func ScoreFindings(findings []scanner.Finding, files, rules int) ScoreReport

type ScoreSummary

type ScoreSummary struct {
	Total int `json:"total"`
	Files int `json:"files"`
	Rules int `json:"rules"`
}

type ScoreWeights

type ScoreWeights struct {
	Error   int `json:"error"`
	Warning int `json:"warning"`
	Info    int `json:"info"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL