core

package
v1.10.4 Latest Latest
Warning

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

Go to latest
Published: Nov 26, 2025 License: MIT Imports: 19 Imported by: 0

Documentation

Overview

Package core has core logic for analysis, scoring and ranking.

Index

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

func ExecuteHotspotMetrics(_ context.Context, cfg *contract.Config, _ contract.CacheManager) error

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

type ExecutorFunc func(ctx context.Context, cfg *contract.Config, mgr contract.CacheManager) error

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.

Directories

Path Synopsis
Package agg has aggregation logic for Git activity data.
Package agg has aggregation logic for Git activity data.
Package algo holds numerical logic for rankings and scores.
Package algo holds numerical logic for rankings and scores.

Jump to

Keyboard shortcuts

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