Graceful degradation when git-repo can't be reached
Description
Per the discussion in https://gitlab.com/gitlab-org/gitlab-ce/issues/26897#note_31309725, currently when an NFS server has an outage, GitLab.com has an outage. This is unnecessary: it should be possible to have GitLab.com continue to run while serving an error message that can be understood by any user when the git repo that they are trying to access can't be reached. (I'd like to restrict the discussion to NFS servers with git repos, to limit scope and because there are other solutions in the works for non git repos.)
Proposal
As a user, I expect to be able to surf around to issue boards, merge requests, and different projects, even when an NFS server is down. Instead of GitLab.com being down, I'd expect to see an error message in that part of the screen where I would have seen information from / about the git repo, that simply states "Sorry, this repo seems to be temporarily unavailable, for more details check the status of NFS server XX on monitor.gitlab.net/{relevant-deeplink-that-was-automatically-prepopulated}"
Deliverable
This issue has Deliverable for the Circuit Breaker functionality - making the rest of the application work is a lot more complex and isn't part of this Deliverable.
Links / references
https://gitlab.com/gitlab-org/gitlab-ce/issues/26897#note_31309725
Documentation blurb
(Write the start of the documentation of this feature here, include:
- Why should someone use it; what's the underlying problem.
- What is the solution.
- How does someone use this
During implementation, this can then be copied and used as a starter for the documentation.)