Add repository branch/commit. Remove repository key.
Add a repository factory to manage multiple types of repositories.