From ff90c6b259f597a17d73aaf5c3a437bfdda3e68e Mon Sep 17 00:00:00 2001 From: nsfisis Date: Mon, 29 Jun 2026 05:14:02 +0900 Subject: feat(repository): instantiate vcs, artifact, path repositories by class Co-Authored-By: Claude Opus 4.8 (1M context) --- .../shirabe/src/repository/repository_manager.rs | 25 ++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'crates/shirabe/src') diff --git a/crates/shirabe/src/repository/repository_manager.rs b/crates/shirabe/src/repository/repository_manager.rs index eb755dc..ee5d2d8 100644 --- a/crates/shirabe/src/repository/repository_manager.rs +++ b/crates/shirabe/src/repository/repository_manager.rs @@ -165,6 +165,31 @@ impl RepositoryManager { "Composer\\Repository\\PackageRepository" => Ok(RepositoryInterfaceHandle::new( crate::repository::PackageRepository::new(config), )), + "Composer\\Repository\\VcsRepository" => Ok(RepositoryInterfaceHandle::new( + crate::repository::VcsRepository::new( + config, + self.io.clone(), + self.config.clone(), + self.http_downloader.clone(), + self.event_dispatcher.clone(), + Some(self.process.clone()), + None, + None, + )?, + )), + "Composer\\Repository\\ArtifactRepository" => Ok(RepositoryInterfaceHandle::new( + crate::repository::ArtifactRepository::new(config, self.io.clone())?, + )), + "Composer\\Repository\\PathRepository" => Ok(RepositoryInterfaceHandle::new( + crate::repository::PathRepository::new( + config, + self.io.clone(), + self.config.clone(), + Some(self.http_downloader.clone()), + self.event_dispatcher.clone(), + Some(self.process.clone()), + )?, + )), other => todo!( "Phase B: dynamic class instantiation by class name: {}", other -- cgit v1.3.1