Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var IssueCodeDescriptions = map[IssueCode]string{ CodeOrphanedRelationship: "Orphaned relationship - target feature doesn't exist", CodeMissingInverse: "Missing inverse relationship - bidirectional relationship incomplete", CodeDanglingInverse: "Dangling inverse - inverse exists but forward relationship missing", CodeSchemaViolation: "Schema violation - invalid relationship structure", CodeCycleViolation: "Cycle violation - cycles in categories where not allowed", CodeVersionConstraintViolation: "Version constraint violation - target version doesn't satisfy constraint", }
IssueCodeDescriptions provides human-readable descriptions for each code
Functions ¶
func GetFeatureFileName ¶
GetFeatureFileName returns the YAML filename for a feature Uses storage.Slugify to ensure consistency
Types ¶
type AutoFixer ¶
type AutoFixer struct {
// contains filtered or unexported fields
}
AutoFixer attempts to automatically repair validation issues
func NewAutoFixer ¶
NewAutoFixer creates a new AutoFixer
func (*AutoFixer) AttemptFixes ¶
func (af *AutoFixer) AttemptFixes(ctx context.Context, issues []ValidationIssue) (*FixResult, error)
AttemptFixes tries to fix all fixable issues
type FixResult ¶
type FixResult struct {
Fixed []string // Descriptions of what was fixed
Failed []string // Descriptions of failed fixes
Skipped []string // Descriptions of skipped (not fixable)
}
FixResult represents the outcome of an auto-fix attempt
func (*FixResult) HasFailures ¶
HasFailures returns true if any fixes failed
func (*FixResult) TotalFailed ¶
TotalFailed returns the count of failed fix attempts
func (*FixResult) TotalFixed ¶
TotalFixed returns the count of successfully fixed issues
type ValidationIssue ¶
type ValidationIssue struct {
Code IssueCode // E001, E002, etc.
Severity Severity // error, warning
FeatureID string // Feature ID where issue was found
FeatureName string // Feature name for display
FileName string // Feature file name
Message string // Human-readable description
Fixable bool // Can be auto-fixed
Context map[string]string // Additional context (targetID, relType, etc.)
}
ValidationIssue represents a validation problem found
type ValidationResult ¶
type ValidationResult struct {
Issues []ValidationIssue
FeaturesCount int
RelCount int
Errors int // Count of error-severity issues
Warnings int // Count of warning-severity issues
}
ValidationResult contains all validation results
func (*ValidationResult) FilterBySeverity ¶
func (r *ValidationResult) FilterBySeverity(severity Severity) []ValidationIssue
FilterBySeverity returns issues matching the given severity
func (*ValidationResult) HasErrors ¶
func (r *ValidationResult) HasErrors() bool
HasErrors returns true if any error-severity issues exist
func (*ValidationResult) HasFixableIssues ¶
func (r *ValidationResult) HasFixableIssues() bool
HasFixableIssues returns true if any issues can be auto-fixed
func (*ValidationResult) HasWarnings ¶
func (r *ValidationResult) HasWarnings() bool
HasWarnings returns true if any warning-severity issues exist
type Validator ¶
type Validator struct {
// contains filtered or unexported fields
}
Validator performs feature and relationship validation
func New ¶
func New(repo fogit.Repository, config *fogit.Config) *Validator
New creates a new Validator
func (*Validator) DetectAllCycles ¶
DetectAllCycles finds all cycles in the relationship graph for a given category Returns a list of cycle paths (each path is a slice of feature IDs)
func (*Validator) GetFeatureMap ¶
GetFeatureMap returns the feature ID map (available after Validate is called)
func (*Validator) GetFeatures ¶
GetFeatures returns the loaded features (available after Validate is called)
func (*Validator) ValidateFeatures ¶ added in v1.4.1
func (v *Validator) ValidateFeatures(ctx context.Context, features []*fogit.Feature) (*ValidationResult, error)
ValidateFeatures performs all validation checks on the provided feature list. The caller is responsible for loading features (single branch or cross-branch).