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 PatternsCollector
- type PatternsMetrics
- type TodoCollector
- type TodoMetrics
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 go.mod to extract dependency information and emits signals for local replace directives, retracted versions, archived repos, deprecated modules, and stale dependencies.
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 the go.mod file in repoPath and returns signals for actionable findings (local replaces, retracted versions, archived repos, deprecated modules, stale dependencies).
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
}
DepHealthMetrics holds structured dependency data parsed from go.mod.
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 {
// GitOpener is the opener used to access the git repository.
// If nil, testable.DefaultGitOpener is used.
GitOpener testable.GitOpener
// 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 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.