Module: Gitlab::Git::WrapsGitalyErrors
- Included in:
- Blob, Commit, CommitStats, Conflict::Resolver, Patches::CommitPatches, RemoteMirror, Repository, RepositoryCleaner, Tree, Wiki
- Defined in:
- lib/gitlab/git/wraps_gitaly_errors.rb
Instance Method Summary collapse
Instance Method Details
#wrapped_gitaly_errors(&block) ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/gitlab/git/wraps_gitaly_errors.rb', line 6 def wrapped_gitaly_errors(&block) yield block rescue GRPC::BadStatus => e # The GRPC::BadStatus is the fundamental error that serves as the basis for all other gRPC error categories, # including GRPC::InvalidArgument. It is essential to note that rescuing the specific exception class does not # account for all possible cases. In this regard, a status exception can be directly generated from # GRPC::BadStatus. Therefore, it is recommended that we capture and rescue the GRPC::BadStatus and assert the # status code to ensure adequate coverage of error cases. case e.code when GRPC::Core::StatusCodes::NOT_FOUND raise Gitlab::Git::Repository::NoRepository, e when GRPC::Core::StatusCodes::INVALID_ARGUMENT raise ArgumentError, e when GRPC::Core::StatusCodes::DEADLINE_EXCEEDED raise Gitlab::Git::CommandTimedOut, e when GRPC::Core::StatusCodes::RESOURCE_EXHAUSTED handle_resource_exhausted(e) else raise Gitlab::Git::CommandError, e end end |