Documentation
¶
Index ¶
- Variables
- func FormatCheckstyleColumns(w io.Writer, columns *scanner.FindingColumns)
- func FormatJSONColumns(w io.Writer, columns *scanner.FindingColumns, version string, ...) error
- func FormatJSONColumnsCompact(w io.Writer, columns *scanner.FindingColumns, version string, ...) error
- func FormatPlainColumns(w io.Writer, columns *scanner.FindingColumns)
- func FormatSARIFColumns(w io.Writer, columns *scanner.FindingColumns, version string) error
- func GradeForScore(score int) string
- type JSONFinding
- type JSONReport
- type JSONSummary
- type ScoreReport
- type ScoreSummary
- type ScoreWeights
Constants ¶
This section is empty.
Variables ¶
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 ¶
FormatSARIFColumns writes columnar findings as SARIF 2.1.0 JSON.
func GradeForScore ¶
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