diff options
author | Hordur Freyr Yngvason <hfyngvason@gitlab.com> | 2022-03-16 04:19:04 +0300 |
---|---|---|
committer | Hordur Freyr Yngvason <hfyngvason@gitlab.com> | 2022-03-16 04:19:04 +0300 |
commit | d560b30cdac936e74296c0f5673e4b4b4b8247ce (patch) | |
tree | b81f98660b00a1fbf3390c311d6d6dd8d9fd3ca1 | |
parent | 8c372d53c4cd72eba6c5546bdcbf6485be08a694 (diff) |
Fix Unknown error in TreeEntry handlergettreeentries-return-grpc-not-found-when-ref-does-not-exist
-rw-r--r-- | internal/gitaly/service/commit/tree_entry.go | 4 | ||||
-rw-r--r-- | internal/gitaly/service/commit/tree_entry_test.go | 7 |
2 files changed, 10 insertions, 1 deletions
diff --git a/internal/gitaly/service/commit/tree_entry.go b/internal/gitaly/service/commit/tree_entry.go index 2573fe3c0..f9d704243 100644 --- a/internal/gitaly/service/commit/tree_entry.go +++ b/internal/gitaly/service/commit/tree_entry.go @@ -1,6 +1,7 @@ package commit import ( + "errors" "fmt" "io" "strings" @@ -23,6 +24,9 @@ func sendTreeEntry( treeEntry, err := catfile.NewTreeEntryFinder(objectReader, objectInfoReader).FindByRevisionAndPath(ctx, revision, path) if err != nil { + if errors.Is(err, git.ErrReferenceNotFound) { + return helper.ErrNotFoundf("reference not found: %s", revision) + } return err } diff --git a/internal/gitaly/service/commit/tree_entry_test.go b/internal/gitaly/service/commit/tree_entry_test.go index 08ef53116..d06480ecf 100644 --- a/internal/gitaly/service/commit/tree_entry_test.go +++ b/internal/gitaly/service/commit/tree_entry_test.go @@ -209,11 +209,16 @@ func TestFailedTreeEntry(t *testing.T) { expectedCode: codes.NotFound, }, { - name: "Missing file with space in path", + name: "Revision is valid but does not exist", req: &gitalypb.TreeEntryRequest{Repository: repo, Revision: []byte("deadfacedeadfacedeadfacedeadfacedeadface"), Path: []byte("with space/README.md")}, expectedCode: codes.NotFound, }, { + name: "Missing file with space in path", + req: &gitalypb.TreeEntryRequest{Repository: repo, Revision: []byte("913c66a37b4a45b9769037c55c2d238bd0942d2e"), Path: []byte("with space/README.md")}, + expectedCode: codes.NotFound, + }, + { name: "Missing file", req: &gitalypb.TreeEntryRequest{Repository: repo, Revision: []byte("e63f41fe459e62e1228fcef60d7189127aeba95a"), Path: []byte("missing.rb")}, expectedCode: codes.NotFound, |