Handle FailedPrecondition for repository languages
What does this MR do?
Handle FailedPrecondition for repository languages
Repository language detection is expensive, and as such Gitaly might limit the number of GRPC::OK responses GitLab-Rails will receive as part of: gitaly!1690 (closed).
This is expected to have following effects:
- Repository language detection is considered best effort data and can be stale
- The most active repositories are merging to the default branch the most, and will not be scanned as often, decreasing the call rate
- The 99 percentile for the Gitaly RPC will stay the same, though the median will fall
- The SLA will drop for this RPC, as FailedPrecondition is now returned a lot
Additionally, as a small refactor, I've removed support to Gitaly side ref finding when Rails passes an empty ref. This was not used, except in the tests once.