Documentation
¶
Overview ¶
Package collectors provides signal extraction modules for stringer.
Package collectors provides signal extraction modules for stringer.
Package collectors provides signal extraction modules for stringer.
Index ¶
- Variables
- func ModuleFromPath(path string) string
- func ParseDuration(s string) (time.Duration, error)
- type AuthorShare
- type DepHealthCollector
- type DepHealthMetrics
- type DirectoryOwnership
- type DirectoryTestRatio
- type FileChurn
- type GitHubCollector
- type GitlogCollector
- type GitlogMetrics
- type LotteryRiskCollector
- type LotteryRiskMetrics
- type ModuleDep
- type ModuleReplace
- type ModuleRetract
- type PackageQuery
- type PatternsCollector
- type PatternsMetrics
- type TodoCollector
- type TodoMetrics
- type VulnCollector
- type VulnDetail
- type VulnEntry
- type VulnMetrics
Constants ¶
This section is empty.
Variables ¶
var FS testable.FileSystem = testable.DefaultFS
FS is the file system implementation used by this package. Override in tests with a testable.MockFileSystem.
Functions ¶
func ModuleFromPath ¶ added in v0.5.0
ModuleFromPath derives a module name from a file path by taking the first two path segments (e.g., "internal/collectors") or the directory name if only one level deep. Root-level files return ".".
Types ¶
type AuthorShare ¶ added in v0.5.0
type AuthorShare struct {
}
AuthorShare describes a single author's ownership share of a directory.
type DepHealthCollector ¶ added in v0.6.0
type DepHealthCollector struct {
// contains filtered or unexported fields
}
DepHealthCollector parses dependency manifests (go.mod, package.json, Cargo.toml, pom.xml, *.csproj, requirements.txt, pyproject.toml) to extract dependency information and emits signals for deprecated, yanked, archived, and stale dependencies across multiple ecosystems.
func (*DepHealthCollector) Collect ¶ added in v0.6.0
func (c *DepHealthCollector) Collect(ctx context.Context, repoPath string, opts signal.CollectorOpts) ([]signal.RawSignal, error)
Collect parses dependency manifests in repoPath and returns signals for actionable findings (local replaces, retracted versions, archived repos, deprecated modules, yanked versions, stale dependencies) across Go, npm, Cargo, Maven, NuGet, and Python ecosystems.
func (*DepHealthCollector) Metrics ¶ added in v0.6.0
func (c *DepHealthCollector) Metrics() any
Metrics returns structured dependency data from the last Collect call.
func (*DepHealthCollector) Name ¶ added in v0.6.0
func (c *DepHealthCollector) Name() string
Name returns the collector name used for registration and filtering.
type DepHealthMetrics ¶ added in v0.6.0
type DepHealthMetrics struct {
ModulePath string
GoVersion string
Dependencies []ModuleDep
Replaces []ModuleReplace
Retracts []ModuleRetract
Archived []string
Deprecated []string
Stale []string
Yanked []string
Ecosystems []string // ecosystems detected (e.g., "go", "npm", "cargo")
}
DepHealthMetrics holds structured dependency data parsed from manifests.
type DirectoryOwnership ¶ added in v0.5.0
type DirectoryOwnership struct {
Path string
LotteryRisk int
Authors []AuthorShare
TotalLines int
}
DirectoryOwnership describes ownership distribution for a single directory.
type DirectoryTestRatio ¶ added in v0.5.0
DirectoryTestRatio describes the test coverage ratio for a directory.
type GitHubCollector ¶ added in v0.3.0
type GitHubCollector struct {
// GitOpener is the opener used to access the git repository.
// If nil, testable.DefaultGitOpener is used.
GitOpener testable.GitOpener
// contains filtered or unexported fields
}
GitHubCollector imports open issues, pull requests, and actionable review comments from GitHub.
func (*GitHubCollector) Collect ¶ added in v0.3.0
func (c *GitHubCollector) Collect(ctx context.Context, repoPath string, opts signal.CollectorOpts) ([]signal.RawSignal, error)
Collect fetches open issues, PRs, and review comments from GitHub and returns them as raw signals.
func (*GitHubCollector) Name ¶ added in v0.3.0
func (c *GitHubCollector) Name() string
Name returns the collector name used for registration and filtering.
type GitlogCollector ¶
type GitlogCollector struct {
// GitOpener is the opener used to access the git repository.
// If nil, testable.DefaultGitOpener is used.
GitOpener testable.GitOpener
// contains filtered or unexported fields
}
GitlogCollector examines git history for reverts, high-churn files, and stale branches.
func (*GitlogCollector) Collect ¶
func (c *GitlogCollector) Collect(ctx context.Context, repoPath string, opts signal.CollectorOpts) ([]signal.RawSignal, error)
Collect scans the repository at repoPath for git-level signals.
func (*GitlogCollector) Metrics ¶ added in v0.5.0
func (c *GitlogCollector) Metrics() any
Metrics returns structured metrics from the git log analysis.
func (*GitlogCollector) Name ¶
func (c *GitlogCollector) Name() string
Name returns the collector name used for registration and filtering.
type GitlogMetrics ¶ added in v0.5.0
GitlogMetrics holds structured metrics from the git log analysis.
type LotteryRiskCollector ¶ added in v0.3.0
type LotteryRiskCollector struct {
// contains filtered or unexported fields
}
LotteryRiskCollector analyzes git blame and commit history to identify directories with low lottery risk (single-author ownership risk).
func (*LotteryRiskCollector) Collect ¶ added in v0.3.0
func (c *LotteryRiskCollector) Collect(ctx context.Context, repoPath string, opts signal.CollectorOpts) ([]signal.RawSignal, error)
Collect scans the repository at repoPath for directories with low bus factor and returns them as raw signals.
func (*LotteryRiskCollector) Metrics ¶ added in v0.5.0
func (c *LotteryRiskCollector) Metrics() any
Metrics returns structured ownership data for all analyzed directories.
func (*LotteryRiskCollector) Name ¶ added in v0.3.0
func (c *LotteryRiskCollector) Name() string
Name returns the collector name used for registration and filtering.
type LotteryRiskMetrics ¶ added in v0.5.0
type LotteryRiskMetrics struct {
Directories []DirectoryOwnership
}
LotteryRiskMetrics holds structured metrics from the lottery risk analysis.
type ModuleReplace ¶ added in v0.6.0
type ModuleReplace struct {
OldPath string
OldVersion string
NewPath string
NewVersion string
IsLocal bool
}
ModuleReplace represents a single replace directive.
type ModuleRetract ¶ added in v0.6.0
ModuleRetract represents a single retract directive.
type PackageQuery ¶ added in v0.7.0
PackageQuery represents a single dependency to check for vulnerabilities.
type PatternsCollector ¶
type PatternsCollector struct {
// contains filtered or unexported fields
}
PatternsCollector detects structural code-quality patterns such as oversized files, missing tests, and low test-to-source ratios.
func (*PatternsCollector) Collect ¶
func (c *PatternsCollector) Collect(ctx context.Context, repoPath string, opts signal.CollectorOpts) ([]signal.RawSignal, error)
Collect walks source files in repoPath, detects pattern-based signals, and returns them as raw signals.
func (*PatternsCollector) Metrics ¶ added in v0.5.0
func (c *PatternsCollector) Metrics() any
Metrics returns structured metrics from the patterns analysis.
func (*PatternsCollector) Name ¶
func (c *PatternsCollector) Name() string
Name returns the collector name used for registration and filtering.
type PatternsMetrics ¶ added in v0.5.0
type PatternsMetrics struct {
LargeFiles int
DirectoryTestRatios []DirectoryTestRatio
}
PatternsMetrics holds structured metrics from the patterns analysis.
type TodoCollector ¶
type TodoCollector struct {
// contains filtered or unexported fields
}
TodoCollector scans repository files for TODO, FIXME, HACK, XXX, BUG, and OPTIMIZE comments, enriches them with git blame data, and produces scored RawSignal values.
func (*TodoCollector) Collect ¶
func (c *TodoCollector) Collect(ctx context.Context, repoPath string, opts signal.CollectorOpts) ([]signal.RawSignal, error)
Collect walks source files in repoPath, extracts TODO-style comments, and returns them as raw signals with confidence scores and blame attribution.
func (*TodoCollector) Metrics ¶ added in v0.5.0
func (c *TodoCollector) Metrics() any
Metrics returns structured metrics from the TODO scan.
func (*TodoCollector) Name ¶
func (c *TodoCollector) Name() string
Name returns the collector name used for registration and filtering.
type TodoMetrics ¶ added in v0.5.0
TodoMetrics holds structured metrics from the TODO scan.
type VulnCollector ¶ added in v0.7.0
type VulnCollector struct {
// contains filtered or unexported fields
}
VulnCollector detects known vulnerabilities in Go module dependencies using the OSV.dev API.
func (*VulnCollector) Collect ¶ added in v0.7.0
func (c *VulnCollector) Collect(ctx context.Context, repoPath string, _ signal.CollectorOpts) ([]signal.RawSignal, error)
Collect parses dependency manifests (go.mod, pom.xml, build.gradle/kts, Cargo.toml, *.csproj, requirements.txt, pyproject.toml, package.json) in repoPath, queries OSV.dev for known vulnerabilities, and returns signals with severity-based confidence scoring.
func (*VulnCollector) Metrics ¶ added in v0.7.0
func (c *VulnCollector) Metrics() any
Metrics returns structured vulnerability data from the last Collect call.
func (*VulnCollector) Name ¶ added in v0.7.0
func (c *VulnCollector) Name() string
Name returns the collector name used for registration and filtering.
type VulnDetail ¶ added in v0.7.0
type VulnDetail struct {
ID string
Aliases []string
Summary string
Ecosystem string
PackageName string
Version string
FixedVersion string
Severity string // CVSS v3 score string, or ""
}
VulnDetail holds processed vulnerability information from OSV.dev.
type VulnEntry ¶ added in v0.7.0
type VulnEntry struct {
OSVID string
CVE string
Module string
Version string
FixedVersion string
Summary string
Severity string
Ecosystem string
FilePath string
}
VulnEntry represents a single vulnerability finding.
type VulnMetrics ¶ added in v0.7.0
VulnMetrics holds structured vulnerability data from the last scan.
Source Files
¶
- dephealth.go
- dephealth_crates.go
- dephealth_deprecated.go
- dephealth_github.go
- dephealth_maven.go
- dephealth_npm.go
- dephealth_nuget.go
- dephealth_pypi.go
- duration.go
- github.go
- githubclient.go
- gitlog.go
- lotteryrisk.go
- lotteryrisk_ownership.go
- lotteryrisk_reviews.go
- patterns.go
- todos.go
- vuln.go
- vuln_gradle.go
- vuln_maven.go
- vuln_npm.go
- vuln_nuget.go
- vuln_osv.go
- vuln_python.go
- vuln_rust.go