Just a quick comment - I would rather see "String repository" as "Repository repository", and then resolve the instance of the interface before the call.
I'm assuming that we will have different implementations; FileSystemRepository, MavenRepository, IvyRepository, ...