You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
refactor: Split IPipelineHookContext for Interface Segregation Principle compliance (#1463)
* chore: Add .worktrees/ to .gitignore for parallel development
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* refactor: Split IPipelineHookContext into focused interfaces for ISP compliance
Split the monolithic IPipelineHookContext (27+ members) into focused sub-interfaces
to comply with the Interface Segregation Principle (ISP):
- IPipelineServices: DI and configuration (ServiceProvider, Get<T>, Configuration, PipelineOptions)
- IPipelineLogging: Logging functionality (Logger)
- IPipelineTools: Command execution and tools (Command, Powershell, Bash, Http, Downloader, Installer)
- IPipelineEncoding: Serialization and encoding (Json, Xml, Yaml, Hex, Base64, Hasher)
- IPipelineFileSystem: File operations (FileSystem, Zip, Checksum)
- IPipelineEnvironment: Environment and build detection (Environment, BuildSystemDetector)
IPipelineHookContext now inherits from all sub-interfaces, maintaining full backwards
compatibility while allowing consumers to depend on only the subset of functionality
they need.
Fixes#1454
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
0 commit comments