Geo: Proxy Git fetch/clone over SSH via Gitlab Shell
<!-- The first section "Release notes" is required if you want to have your release post blog MR auto generated. Currently in BETA, details on the **release post item generator** can be found in the handbook: https://about.gitlab.com/handbook/marketing/blog/release-posts/#release-post-item-generator and this video: https://www.youtube.com/watch?v=rfn9ebgTwKg. The next four sections: "Problem to solve", "Intended users", "User experience goal", and "Proposal", are strongly recommended in your first draft, while the rest of the sections can be filled out during the problem validation or breakdown phase. However, keep in mind that providing complete and relevant information early helps our product team validate the problem and start working on a solution. -->
### Release notes
<!-- What is the problem and solution you're proposing? This content sets the overall vision for the feature and serves as the release notes that will populate in various places, including the [release post blog](https://about.gitlab.com/releases/categories/releases/) and [Gitlab project releases](https://gitlab.com/gitlab-org/gitlab/-/releases). " -->
### Problem to solve
Move proxying of Git clone and fetch operations over SSH from secondary Geo sites to primary currently handle via rails to Gitlab shell.
The current proxying implementation suffers from some shortcomings where we see certain git options fails. e.g https://gitlab.com/gitlab-org/gitlab/-/issues/391980
We have changed the proxying of git push workflow to go via the Gitlab shell. It will be beneficial for both the push and pull workflows to be consolidated and work via Gitlab shell.
While it may be possible to fix shortcomings of the pull/fetch/clone operations in the current implementation it would be better to have a single proxying workflow via Gitlab shell and have one place where fixes need to be applied in the future.
### Intended users
- [Sascha, Software Developer](https://about.gitlab.com/handbook/product/personas/#sasha-software-developer)
### User experience goal
No change to existing developer experience. Git fetch/pull/clone requests are transparently proxied from the secondary Geo site to the primary when needed.
### Proposal
Move git fetch/pull/clone proxying workflow to the Gitlab shell to follow a similar workflow to proxied git push operations.
### Permissions and Security
Permissions and security should mirror existing scope.
### Documentation
Update developer documentation to related to Geo proxying https://docs.gitlab.com/ee/development/geo/proxying.html
### Availability & Testing
Testing should cover all git fetch/pull/operations and options such as `--depth`, `--deepen`, `--sparse` etc.. If certain options are found to be unsupported we should document them as limitations.
### Available Tier
* Premium/Silver
* Ultimate/Gold
### Feature Usage Metrics
TBD
### What does success look like, and how can we measure that?
We see a seemless transition to the new proxying workflow. In future will see fewer discrepancies between supported git operations and proxied operations.
### Is this a cross-stage feature?
No
### What is the competitive advantage or differentiation for this feature?
None. This is an enhancement to an existing feature.
### Links / references
epic