gitserver: Switch GetObject to hexagonal design
Created by: ryanslade
This change replaces vcs/git/GetObject
with gitserver/client.GetObject
In the process, it has been used to prototype the switch over to a hexagonal architecture by doing the followng:
- Create
internal/gitserver/domain
package - Create
internal/gitserver/adapters
package - Introduce a new "/commands" endpoint on gitserver
Move some domain logic and errors into the domain
package.
Interaction with git itself is isolated to the adapters package.
Our plan is to migrate all the functions in vcs/git
in this manner, especially any that call out to gitserver.