broker
broker copied to clipboard
Git clone cache
- [x] Ready for review
- [x] Follows CONTRIBUTING rules
What does this PR do?
Add ability for Client to perform a git clone as a caching mechanism
To work around rate-limit issues, it is now possible for the Client to perform a Git Clone, and to look up certain requests in that cloned version of the repository. The clone is triggered by a request for a list of files (to prevent cloning the entire repository if we only need a single file), and has a default lifetime of 5 minutes.
This adds more complexity to the deployment of the client, as it is necessary to do a full clone of the repo, and potentially multiple clones of the repo (if, for example, multiple different revisions are needed) and this requires a potentially large amount of storage.
This feature is disabled by default, and is only available for GitHub and GitHub Enterprise when enabled.