lockfiles: Decouple git service functions
Created by: efritz
This PR removes the function pointers in the lockfiles service constructor and replaces it with a GitService
interface. This has several benefits, including:
- The authz checker is now hidden behind the proper interface boundary
- (related) We no longer need to pass dependencies of dependencies down just because we don't want to change the function pointer signature)
- We can more ergonomically pass an instrumented git service if we want to separate the calls we make to shared infrastructure from the rest of the application (useful to measure the load increase of new features)
Test plan
Unit and integration tests.