Documentation
¶
Overview ¶
Package workflow provides shared orchestration logic for module discovery, filtering, dependency extraction, and graph building.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ChangeDetectionRequest ¶ added in v0.10.5
type ChangeDetectionRequest struct {
WorkDir string
BaseRef string
ModuleIndex *discovery.ModuleIndex
LibraryPaths []string
}
ChangeDetectionRequest describes one VCS diff request. Implementations should derive all change dimensions from a single underlying diff.
type ChangeDetectionResult ¶ added in v0.10.5
type ChangeDetectionResult struct {
Modules []*discovery.Module
Files []string
LibraryPaths []string
}
ChangeDetectionResult contains changed files and their TerraCi projections.
type ChangeDetector ¶ added in v0.10.0
type ChangeDetector interface {
DetectChanges(ctx context.Context, req ChangeDetectionRequest) (*ChangeDetectionResult, error)
}
ChangeDetector detects changed modules from git or another VCS.
type ChangeDetectorResolver ¶ added in v0.10.0
type ChangeDetectorResolver func() (ChangeDetector, error)
ChangeDetectorResolver resolves the change detection provider for changed-only target selection.
type LibrarySummary ¶ added in v0.10.5
LibrarySummary describes discovered library_modules diagnostics.
func SummarizeLibraries ¶ added in v0.10.5
func SummarizeLibraries(cfg config.Snapshot, result *Result) *LibrarySummary
SummarizeLibraries derives configured library_modules diagnostics.
type LibraryUsage ¶ added in v0.10.5
LibraryUsage describes one tracked library module path and its consumers.
func LibraryUsages ¶ added in v0.10.5
func LibraryUsages(workDir string, result *Result) []LibraryUsage
LibraryUsages derives deterministic library usage diagnostics.
type ModuleSet ¶ added in v0.10.0
type ModuleSet struct {
Modules []*discovery.Module
Index *discovery.ModuleIndex
}
ModuleSet keeps a module slice and its lookup index together.
func NewModuleSet ¶ added in v0.10.0
NewModuleSet builds a consistent module collection and lookup index.
type Options ¶
type Options struct {
WorkDir string
Segments []string
Excludes []string
Includes []string
SegmentFilters map[string][]string
// LibraryPaths are project-relative roots whose discovered modules will be
// flagged Module.IsLibrary=true and routed into Result.Libraries instead
// of the executable target sets. Empty/nil disables the feature.
LibraryPaths []string
}
Options configures module discovery, filtering, and graph building.
type ProjectRequest ¶ added in v0.10.5
type ProjectRequest struct {
WorkDir string
Config config.Snapshot
Filters filter.Flags
Targeting TargetRequest
}
ProjectRequest describes one canonical Terraform project planning request.
type ProjectResult ¶ added in v0.10.5
type ProjectResult struct {
Workflow *Result
Targets []*discovery.Module
LibraryUsages []LibraryUsage
LibrarySummary *LibrarySummary
}
ProjectResult contains workflow output plus target selection and diagnostics.
func PlanProject ¶ added in v0.10.5
func PlanProject(ctx context.Context, req ProjectRequest) (*ProjectResult, error)
PlanProject runs workflow discovery and optional target selection from one canonical request.
type Result ¶
type Result struct {
// All contains every discovered module (executable + library), in scan
// order. Use Filtered for execution targets and Libraries for reporting.
All ModuleSet
// Filtered is the executable subset after filters; library modules are
// always excluded regardless of filters.
Filtered ModuleSet
// Libraries holds modules under any configured library_modules.paths.
// They are not included in Filtered and never become execution targets,
// but are tracked here for diagnostics (validate/graph).
Libraries ModuleSet
Graph *graph.DependencyGraph
Dependencies map[string]*parser.ModuleDependencies
Warnings []error
}
Result contains everything produced by the module workflow.
type TargetRequest ¶ added in v0.10.5
type TargetRequest struct {
Enabled bool
ModulePath string
ChangedOnly bool
BaseRef string
ChangeDetectorResolver ChangeDetectorResolver
}
TargetRequest controls optional executable target selection.