Documentation
¶
Overview ¶
Package core has core logic for analysis, scoring and ranking.
Index ¶
- func ExecuteHotspotCheck(ctx context.Context, cfg *contract.Config, mgr contract.CacheManager) error
- func ExecuteHotspotCompare(ctx context.Context, cfg *contract.Config, mgr contract.CacheManager) error
- func ExecuteHotspotCompareFolders(ctx context.Context, cfg *contract.Config, mgr contract.CacheManager) error
- func ExecuteHotspotFiles(ctx context.Context, cfg *contract.Config, mgr contract.CacheManager) error
- func ExecuteHotspotFolders(ctx context.Context, cfg *contract.Config, mgr contract.CacheManager) error
- func ExecuteHotspotMetrics(_ context.Context, cfg *contract.Config, _ contract.CacheManager) error
- func ExecuteHotspotTimeseries(ctx context.Context, cfg *contract.Config, mgr contract.CacheManager) error
- type CheckResultBuilder
- func (b *CheckResultBuilder) BuildResult() *CheckResultBuilder
- func (b *CheckResultBuilder) ComputeMetrics() *CheckResultBuilder
- func (b *CheckResultBuilder) GetResult() *schema.CheckResult
- func (b *CheckResultBuilder) PrepareAnalysisConfig() (*CheckResultBuilder, error)
- func (b *CheckResultBuilder) RunAnalysis() (*CheckResultBuilder, error)
- func (b *CheckResultBuilder) ValidatePrerequisites() (*CheckResultBuilder, error)
- type ComparableResult
- type DeltaExtractor
- type ExecutorFunc
- type FileResultBuilder
- func (b *FileResultBuilder) Build() schema.FileResult
- func (b *FileResultBuilder) CalculateDerivedMetrics() *FileResultBuilder
- func (b *FileResultBuilder) CalculateOwner() *FileResultBuilder
- func (b *FileResultBuilder) CalculateScore() *FileResultBuilder
- func (b *FileResultBuilder) FetchAllGitMetrics() *FileResultBuilder
- func (b *FileResultBuilder) FetchFileStats() *FileResultBuilder
- func (b *FileResultBuilder) FetchRecentInfo() *FileResultBuilder
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ExecuteHotspotCheck ¶ added in v1.9.0
func ExecuteHotspotCheck(ctx context.Context, cfg *contract.Config, mgr contract.CacheManager) error
ExecuteHotspotCheck runs the check command for CI/CD gating. It analyzes only files changed between base and target refs, checks them against thresholds, and returns a non-zero exit code if any files exceed the thresholds.
func ExecuteHotspotCompare ¶ added in v0.4.0
func ExecuteHotspotCompare(ctx context.Context, cfg *contract.Config, mgr contract.CacheManager) error
ExecuteHotspotCompare runs two file-level analyses (Base and Target) based on Git references and computes the delta results.
func ExecuteHotspotCompareFolders ¶ added in v0.5.0
func ExecuteHotspotCompareFolders(ctx context.Context, cfg *contract.Config, mgr contract.CacheManager) error
ExecuteHotspotCompareFolders runs two folder-level analyses (Base and Target) based on Git references and computes the delta results. It follows the same pattern as ExecuteHotspotCompare but aggregates to folders before performing the comparison.
func ExecuteHotspotFiles ¶
func ExecuteHotspotFiles(ctx context.Context, cfg *contract.Config, mgr contract.CacheManager) error
ExecuteHotspotFiles runs the file-level analysis and prints results to stdout. It serves as the main entry point for the 'files' mode.
func ExecuteHotspotFolders ¶
func ExecuteHotspotFolders(ctx context.Context, cfg *contract.Config, mgr contract.CacheManager) error
ExecuteHotspotFolders runs the folder-level analysis and prints results to stdout. It serves as the main entry point for the 'folders' mode.
func ExecuteHotspotMetrics ¶ added in v1.0.0
ExecuteHotspotMetrics displays the formal definitions of all scoring modes. This is a static display that does not require Git analysis.
func ExecuteHotspotTimeseries ¶ added in v0.9.0
func ExecuteHotspotTimeseries(ctx context.Context, cfg *contract.Config, mgr contract.CacheManager) error
ExecuteHotspotTimeseries runs multiple analyses over overlapping, dynamic-lookback time windows. This implements Strategy 2: Time-Boxed M_min Approximation. The Git search for M_min commits is capped by maxSearchDuration to prevent slow full-history traversal on large repos.
Types ¶
type CheckResultBuilder ¶ added in v1.10.2
type CheckResultBuilder struct {
// contains filtered or unexported fields
}
CheckResultBuilder builds the check result using a builder pattern.
func NewCheckResultBuilder ¶ added in v1.10.2
func NewCheckResultBuilder(ctx context.Context, cfg *contract.Config, mgr contract.CacheManager) *CheckResultBuilder
NewCheckResultBuilder creates a new builder for check results.
func (*CheckResultBuilder) BuildResult ¶ added in v1.10.2
func (b *CheckResultBuilder) BuildResult() *CheckResultBuilder
BuildResult constructs the final CheckResult.
func (*CheckResultBuilder) ComputeMetrics ¶ added in v1.10.2
func (b *CheckResultBuilder) ComputeMetrics() *CheckResultBuilder
ComputeMetrics calculates max scores and identifies failed files.
func (*CheckResultBuilder) GetResult ¶ added in v1.10.2
func (b *CheckResultBuilder) GetResult() *schema.CheckResult
GetResult returns the built CheckResult.
func (*CheckResultBuilder) PrepareAnalysisConfig ¶ added in v1.10.2
func (b *CheckResultBuilder) PrepareAnalysisConfig() (*CheckResultBuilder, error)
PrepareAnalysisConfig sets up the time window for analysis.
func (*CheckResultBuilder) RunAnalysis ¶ added in v1.10.2
func (b *CheckResultBuilder) RunAnalysis() (*CheckResultBuilder, error)
RunAnalysis performs the aggregation and file analysis.
func (*CheckResultBuilder) ValidatePrerequisites ¶ added in v1.10.2
func (b *CheckResultBuilder) ValidatePrerequisites() (*CheckResultBuilder, error)
ValidatePrerequisites validates config and gets files to analyze.
type ComparableResult ¶ added in v0.9.1
type ComparableResult interface {
GetPath() string
GetScore() float64
GetCommits() int
GetChurn() int
GetOwners() []string
}
ComparableResult represents a comparable result with path, score, commits, and churn.
type DeltaExtractor ¶ added in v0.9.1
type DeltaExtractor[T ComparableResult] func(base, target T) (deltaLOC, deltaContrib int)
DeltaExtractor extracts additional deltas for comparison details.
type ExecutorFunc ¶ added in v0.6.5
ExecutorFunc defines the function signature for executing different analysis modes.
type FileResultBuilder ¶ added in v0.5.0
type FileResultBuilder struct {
// contains filtered or unexported fields
}
FileResultBuilder builds the file metric from Git output.
func NewFileMetricsBuilder ¶
func NewFileMetricsBuilder(ctx context.Context, cfg *contract.Config, client contract.GitClient, path string, output *schema.AggregateOutput) *FileResultBuilder
NewFileMetricsBuilder is the starting point for building file metrics.
func (*FileResultBuilder) Build ¶ added in v0.5.0
func (b *FileResultBuilder) Build() schema.FileResult
Build finalizes the construction and returns the completed metrics object.
func (*FileResultBuilder) CalculateDerivedMetrics ¶ added in v0.5.0
func (b *FileResultBuilder) CalculateDerivedMetrics() *FileResultBuilder
CalculateDerivedMetrics computes metrics that depend on previously collected data.
func (*FileResultBuilder) CalculateOwner ¶ added in v0.5.0
func (b *FileResultBuilder) CalculateOwner() *FileResultBuilder
CalculateOwner identifies the owner based on commit volume.
func (*FileResultBuilder) CalculateScore ¶ added in v0.5.0
func (b *FileResultBuilder) CalculateScore() *FileResultBuilder
CalculateScore computes the final composite score.
func (*FileResultBuilder) FetchAllGitMetrics ¶ added in v0.5.0
func (b *FileResultBuilder) FetchAllGitMetrics() *FileResultBuilder
FetchAllGitMetrics populates basic metrics (commits, contributors) and churn from aggregated data or git log if follow is needed.
func (*FileResultBuilder) FetchFileStats ¶ added in v0.5.0
func (b *FileResultBuilder) FetchFileStats() *FileResultBuilder
FetchFileStats reads the file to populate SizeBytes and LinesOfCode (PLOC).
func (*FileResultBuilder) FetchRecentInfo ¶ added in v0.5.0
func (b *FileResultBuilder) FetchRecentInfo() *FileResultBuilder
FetchRecentInfo populates recent metrics from recent info if available.