Currently we rely on Git to provide an interface to source files (packages or templates). We should move to a narrower interface which would allow us to support different package sources down the line, and be more conscious about where we actually require certain Git functionality. One way to implement that would be to have a pretty generic class/Protocol which provides generic functionality and which could be fulfilled by git.Repo, and use that generic approach wherever possible.
I am linking issues which could be solved more easily if we had that clean abstraction.
Currently we rely on Git to provide an interface to source files (packages or templates). We should move to a narrower interface which would allow us to support different package sources down the line, and be more conscious about where we actually require certain Git functionality. One way to implement that would be to have a pretty generic class/
Protocolwhich provides generic functionality and which could be fulfilled bygit.Repo, and use that generic approach wherever possible.I am linking issues which could be solved more easily if we had that clean abstraction.