Optionallogger: LoggerOptionalexcludePatterns: string[]ReadonlynameHuman-readable display name (e.g. "git", "s3:my-bucket/docs").
ReadonlyrootReadonlytypeProvider type identifier — matches the key used in virage.config.json.
Files changed since a given revision.
patterns is an optional hint — implementations that support path
filtering use it; others return all changed files for the caller to filter.
Returns null when the revision is unknown → caller falls back to full scan.
Optionalpatterns: string[]Returns CODEOWNERS-derived labels for a file (relative path, forward slashes).
Returns the CODEOWNERS resolver for this repo (lazy-loaded, cached).
Optional: a human-readable context label. Git: current branch name. S3: bucket + prefix.
An opaque revision identifier covering the whole source. Git: HEAD commit SHA. S3: manifest hash or max version timestamp. Changes whenever any file in the source changes.
A stable per-file content identifier. CLI git: blob SHA (content-addressed, stable across rebases). S3: ETag (content MD5). Local FS: SHA-256 of file bytes. Changes when and only when file content changes.
OptionalonProgress: (done: number, total: number) => voidOptional: files modified but not yet "committed" to the source. Git: uncommitted working-tree changes. S3 / local FS: return empty Set.
Enumerate all tracked files in HEAD as SourceItems. Labels are pre-populated from CODEOWNERS for each file.
Optionalfilter: SourceFilter
Extended source interface that supports listing all available items.
SourceProvider extends SourceRepository so all existing git-based implementations satisfy the interface without changes. New providers (S3, JDBC, etc.) implement this interface directly.
The
nameandtypefields identify the provider in logs and config.listAll()returns an async iterable so large sources stream without buffering all items in memory.