Documentation
¶
Index ¶
- Constants
- Variables
- func AddProfilingFlags(cmd *cobra.Command, ...)
- func Execute()
- func FilterOverlapSummariesByMinPercent(overlapSummaries []c.OverlapSummary, minPercent float64) []c.OverlapSummary
- func GenerateConflictReport(logger *multilog.Logger, summaryFile string) (string, error)
- func GetConfigPath() (string, error)
- func InitForTesting()
- func IsConsolidatedSummaryValid(summary c.ConsolidatedSummary) bool
- func ResolveConflictsByCounts(logger *multilog.Logger, processedFiles []c.ProcessedFile) (string, string, string, error)
- type CategoriesStats
- type ConflictDetail
- func BuildResolutionSets(logger *multilog.Logger, processedFiles []c.ProcessedFile) (map[string]u.StringSet, map[string]u.StringSet, []ConflictDetail, ...)
- func GetCachedResolutionSets(logger *multilog.Logger, processedFiles []c.ProcessedFile) (map[string]u.StringSet, map[string]u.StringSet, []ConflictDetail, ...)
- type ConsolidateListStats
- type ConsolidateStats
- type ConsolidateTypeStats
- type ConsolidationManager
- type ConsolidationParams
- type DownloadStats
- type GroupsStats
- type OverallSummaryStats
- type OverlapDetail
- type OverlapStats
- type OverrideRecord
- type ProcessingConfig
- type ProcessingStats
- type ResolutionResult
- type SourceMaps
- type SourceStats
- type SummariesInfo
- type SummaryTypeInfo
- type TargetDetail
- type TopFileDetail
- type TopStats
- type WorkflowSummary
Constants ¶
const ( DecisionBlock = "block" DecisionAllow = "allow" DecisionConflict = "conflict" ReasonCounts = "counts" ReasonManualForcedBlock = "manual_forced_block" ReasonManualForcedAllow = "manual_forced_allow" ReasonEqualCounts = "equal_counts" )
Decision constants
Variables ¶
var ( Logger *multilog.Logger AppConfig *config.AppConfig SourcesConfigs []config.SourcesConfig )
Functions ¶
func AddProfilingFlags ¶
func AddProfilingFlags( cmd *cobra.Command, cpuProfileVar, memProfileVar, goroutineProfileVar, blockProfileVar *bool, profileDirVar *string, )
AddProfilingFlags adds profiling flags to the provided command
func FilterOverlapSummariesByMinPercent ¶ added in v0.4.0
func FilterOverlapSummariesByMinPercent(overlapSummaries []c.OverlapSummary, minPercent float64) []c.OverlapSummary
FilterOverlapSummariesByMinPercent filters overlap summaries by minimum overlap percent.
func GenerateConflictReport ¶ added in v1.0.0
GenerateConflictReport generates markdown from JSON summary
func GetConfigPath ¶
GetConfigPath returns the path to the configuration file.
func InitForTesting ¶
func InitForTesting()
InitForTesting initializes directories for testing when cobra.OnInitialize is not called
func IsConsolidatedSummaryValid ¶
func IsConsolidatedSummaryValid(summary c.ConsolidatedSummary) bool
func ResolveConflictsByCounts ¶ added in v1.0.0
func ResolveConflictsByCounts( logger *multilog.Logger, processedFiles []c.ProcessedFile, ) (string, string, string, error)
ResolveConflictsByCounts builds allowlist and blocklist and JSON summary. Uses count-based resolution: higher count wins, equal counts create conflicts.
Types ¶
type CategoriesStats ¶
type ConflictDetail ¶ added in v1.0.0
type ConflictDetail struct {
Entry string `json:"entry"`
BlockSources []string `json:"block_sources"`
AllowSources []string `json:"allow_sources"`
BlockCount int `json:"block_count"`
AllowCount int `json:"allow_count"`
}
ConflictDetail captures entries that need manual review
func BuildResolutionSets ¶ added in v1.0.0
func BuildResolutionSets( logger *multilog.Logger, processedFiles []c.ProcessedFile, ) ( map[string]u.StringSet, map[string]u.StringSet, []ConflictDetail, map[string]struct{}, map[string]struct{}, map[string]ConflictDetail, )
BuildResolutionSets processes files and returns complete resolution results
func GetCachedResolutionSets ¶ added in v1.0.3
func GetCachedResolutionSets(logger *multilog.Logger, processedFiles []c.ProcessedFile) ( map[string]u.StringSet, map[string]u.StringSet, []ConflictDetail, map[string]struct{}, map[string]struct{}, map[string]ConflictDetail, )
GetCachedResolutionSets returns cached resolution sets
type ConsolidateListStats ¶
type ConsolidateStats ¶
type ConsolidateStats struct {
FilesByType map[string]ConsolidateTypeStats
LastUpdateTime string
TotalFiles int
}
type ConsolidateTypeStats ¶
type ConsolidateTypeStats struct {
Blocklist ConsolidateListStats
Allowlist ConsolidateListStats
}
type ConsolidationManager ¶ added in v1.0.0
type ConsolidationManager struct {
// contains filtered or unexported fields
}
ConsolidationManager handles general consolidation conflict resolution
func NewConsolidationManager ¶ added in v1.0.0
func NewConsolidationManager(logger *multilog.Logger) *ConsolidationManager
NewConsolidationManager creates a new manager
func (*ConsolidationManager) GenerateConflictReport ¶ added in v1.0.0
func (cm *ConsolidationManager) GenerateConflictReport(processedFiles []c.ProcessedFile) error
GenerateConflictReport generates conflict report for general consolidation
type ConsolidationParams ¶
type ConsolidationParams struct {
GenericSourceType string
ListType string
Identifier string // group or category
OutputDir string
IdentifierField string // "Group" or "Category"
}
ConsolidationParams holds parameters for consolidation functions
type DownloadStats ¶
type GroupsStats ¶
type OverallSummaryStats ¶
type OverlapDetail ¶
type OverlapStats ¶
type OverrideRecord ¶ added in v1.0.0
type OverrideRecord struct {
Entry string `json:"entry"`
Decision string `json:"decision"`
Reason string `json:"reason"`
BlockSrcs []string `json:"block_sources"`
AllowSrcs []string `json:"allow_sources"`
BlockCount int `json:"block_count"`
AllowCount int `json:"allow_count"`
}
OverrideRecord represents a single override decision
type ProcessingConfig ¶
type ProcessingConfig struct {
GetFilesFunc func([]c.ProcessedFile, string) []c.ProcessedFile
ConsolidateFunc func(*multilog.Logger, string, string, string, u.StringSet, []c.ProcessedFile) (u.StringSet, c.ConsolidatedSummary) // nolint:lll
AllowFilterByType map[string]u.StringSet
Identifier string
IdentifierField string
ProcessedFiles []c.ProcessedFile
GenericSourceTypes []string
}
ProcessingConfig holds configuration for processing consolidation
type ProcessingStats ¶
type ResolutionResult ¶ added in v1.0.0
type ResolutionResult struct {
ManualOverride struct {
AllowToBlock map[string]struct{}
BlockToAllow map[string]struct{}
}
AllowByType map[string]u.StringSet
BlockByType map[string]u.StringSet
DetailsMap map[string]ConflictDetail
Conflicts []ConflictDetail
}
ResolutionResult contains the results of conflict resolution
type SourceMaps ¶ added in v1.0.0
type SourceMaps struct {
BlockMap map[string]map[string]struct{}
AllowMap map[string]map[string]struct{}
EntryTypes map[string]map[string]struct{}
}
SourceMaps contains all source mapping data
type SourceStats ¶
type SummariesInfo ¶
type SummariesInfo struct {
SummaryTypes map[string]SummaryTypeInfo
LastGenerated string
TotalFiles int
OverallStats OverallSummaryStats
}
SummariesInfo holds information about summary files
type SummaryTypeInfo ¶
type TargetDetail ¶
type TopFileDetail ¶
type WorkflowSummary ¶
type WorkflowSummary struct {
LastRun string
Processing ProcessingStats
Groups GroupsStats
Categories CategoriesStats
Top TopStats
Consolidate ConsolidateStats
Overlap OverlapStats
Download DownloadStats
}
WorkflowSummary holds summary data for the entire workflow
Source Files
¶
- archive.go
- common.go
- config.go
- conflicts.go
- consolidate.go
- consolidate_categories.go
- consolidate_common.go
- consolidate_groups.go
- consolidation_mgr.go
- download.go
- generate_allowlist.go
- generate_credits.go
- generate_output.go
- generate_overlap.go
- generate_readme.go
- generate_stats.go
- generate_summaries_readme.go
- overlap.go
- process.go
- resolution_cache.go
- resolve_counts.go
- root.go
- search.go
- source_type_summary.go
- top_entries.go
- validate_sources.go
- version.go