analyzer

package
v0.0.0-...-46597b4 Latest Latest
Warning

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

Go to latest
Published: Aug 12, 2026 License: MIT Imports: 25 Imported by: 0

Documentation

Index

Constants

View Source
const (
	SchemaVersion = "2"

	FindingUnusedDependency   = "unused-dependency"
	FindingUnlistedDependency = "unlisted-dependency"
	FindingUnusedPackage      = "unused-package"
	FindingUnusedFile         = "unused-file"
	FindingUnusedFunction     = "unused-function"
	FindingUnusedMethod       = "unused-method"
	FindingUnusedStruct       = "unused-struct"
	FindingUnusedInterface    = "unused-interface"
	FindingUnusedType         = "unused-type"
	FindingUnusedVar          = "unused-var"
	FindingUnusedConst        = "unused-const"
	FindingUnusedField        = "unused-field"
	FindingDuplicateCode      = "duplicate-code"
	FindingTidyDrift          = "tidy-drift"
	FindingToolDependency     = "tool-dependency"
)

Variables

This section is empty.

Functions

func ApplyBaseline

func ApplyBaseline(path string, report *Report) error

func RefreshReport

func RefreshReport(report *Report)

func SaveBaseline

func SaveBaseline(path string, report *Report) error

Types

type Baseline

type Baseline struct {
	SchemaVersion string          `json:"schema_version"`
	Findings      []BaselineEntry `json:"findings"`
}

type BaselineEntry

type BaselineEntry struct {
	Fingerprint string `json:"fingerprint"`
	Type        string `json:"type"`
	File        string `json:"file"`
	Line        int    `json:"line"`
	Symbol      string `json:"symbol,omitempty"`
	Module      string `json:"module,omitempty"`
	ImportPath  string `json:"import_path,omitempty"`
}

type DuplicateOptions

type DuplicateOptions struct {
	MinLines      int
	MinTokens     int
	MinTokenLines int
	MinStatements int
}

func (DuplicateOptions) Validate

func (o DuplicateOptions) Validate() error

type Finding

type Finding struct {
	Type          string       `json:"type"`
	Package       string       `json:"package,omitempty"`
	Module        string       `json:"module,omitempty"`
	Version       string       `json:"version,omitempty"`
	ImportPath    string       `json:"import_path,omitempty"`
	Symbol        string       `json:"symbol,omitempty"`
	Receiver      string       `json:"receiver,omitempty"`
	Struct        string       `json:"struct,omitempty"`
	File          string       `json:"file"`
	Line          int          `json:"line"`
	Fingerprint   string       `json:"fingerprint"`
	Remediation   *Remediation `json:"remediation,omitempty"`
	Locations     []Location   `json:"locations,omitempty"`
	Lines         int          `json:"lines,omitempty"`
	Indirect      bool         `json:"indirect,omitempty"`
	UsedIn        []ImportUse  `json:"used_in,omitempty"`
	UsedInModules []string     `json:"used_in_modules,omitempty"`
}

type FindingMatcher

type FindingMatcher struct {
	Type        string
	File        string
	Package     string
	Module      string
	ImportPath  string
	Symbol      string
	Receiver    string
	Struct      string
	Fingerprint string
}

type ImportUse

type ImportUse struct {
	ImportPath string `json:"import_path"`
	File       string `json:"file"`
	Line       int    `json:"line"`
	Test       bool   `json:"test,omitempty"`
	Generated  bool   `json:"generated,omitempty"`
	Tool       bool   `json:"tool,omitempty"`
}

type Location

type Location struct {
	File      string `json:"file"`
	StartLine int    `json:"start_line"`
	EndLine   int    `json:"end_line"`
}

type ModuleReport

type ModuleReport struct {
	ModulePath string    `json:"module_path"`
	Dir        string    `json:"dir"`
	GoMod      string    `json:"go_mod"`
	Findings   []Finding `json:"findings"`
}

type Options

type Options struct {
	Root               string
	IncludeTests       bool
	IncludeGenerated   bool
	CheckIndirect      bool
	Rules              map[string]string
	IgnorePatterns     []string
	IgnoreFindings     []FindingMatcher
	WorkspacePatterns  []string
	BuildTags          []string
	CheckModuleHygiene bool
	DuplicateCode      DuplicateOptions
}

type Remediation

type Remediation struct {
	Preferred    string   `json:"preferred"`
	Summary      string   `json:"summary"`
	Alternatives []string `json:"alternatives,omitempty"`
}

func RemediationForFinding

func RemediationForFinding(finding Finding) *Remediation

type Report

type Report struct {
	SchemaVersion string         `json:"schema_version"`
	Root          string         `json:"root"`
	Modules       []ModuleReport `json:"modules"`
	Summary       Summary        `json:"summary"`
}

func Analyze

func Analyze(opts Options) (*Report, error)

type Require

type Require struct {
	Module   string `json:"module"`
	Version  string `json:"version"`
	Indirect bool   `json:"indirect"`
	File     string `json:"file"`
	Line     int    `json:"line"`
}

type Summary

type Summary struct {
	Modules              int `json:"modules"`
	Findings             int `json:"findings"`
	SuppressedFindings   int `json:"suppressed_findings,omitempty"`
	SuppressedByBaseline int `json:"suppressed_by_baseline,omitempty"`
	SkippedModules       int `json:"skipped_modules,omitempty"`
	UnusedDependencies   int `json:"unused_dependencies"`
	UnlistedDependencies int `json:"unlisted_dependencies"`
	UnusedPackages       int `json:"unused_packages"`
	UnusedFiles          int `json:"unused_files"`
	UnusedFunctions      int `json:"unused_functions"`
	UnusedMethods        int `json:"unused_methods"`
	UnusedStructs        int `json:"unused_structs"`
	UnusedInterfaces     int `json:"unused_interfaces"`
	UnusedTypes          int `json:"unused_types"`
	UnusedVars           int `json:"unused_vars"`
	UnusedConsts         int `json:"unused_consts"`
	UnusedFields         int `json:"unused_fields"`
	DuplicateGroups      int `json:"duplicate_groups"`
	DuplicatedLines      int `json:"duplicated_lines"`
}

Jump to

Keyboard shortcuts

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