diff options
author | Patrick Steinhardt <psteinhardt@gitlab.com> | 2020-10-22 16:24:20 +0300 |
---|---|---|
committer | Patrick Steinhardt <psteinhardt@gitlab.com> | 2020-10-22 16:33:08 +0300 |
commit | 9d1e847ab180e1c31ded0aeff34d14bea50c52af (patch) | |
tree | 3001b4e3610bbda00bc118c4f6479b7f6a0fcaf8 /internal/gitaly/service/operations/merge.go | |
parent | 0ebfb705b79a8baecc1db46f31761f83f4e471f9 (diff) |
operations: Return correct error code when merge fails
When the UserMergeToRef fails because of a conflict, then it's currently
not using any gRPC error code but instead directly returns an internal
error, where the Ruby implementation returned a PreconditionFailed error
instead.
Fix this discrepancy by also returning a FailedPrecondition error.
Adjust a test to pin down this error case.
Diffstat (limited to 'internal/gitaly/service/operations/merge.go')
-rw-r--r-- | internal/gitaly/service/operations/merge.go | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/internal/gitaly/service/operations/merge.go b/internal/gitaly/service/operations/merge.go index 194d48786..cd8163d35 100644 --- a/internal/gitaly/service/operations/merge.go +++ b/internal/gitaly/service/operations/merge.go @@ -460,7 +460,7 @@ func (s *server) userMergeToRef(ctx context.Context, request *gitalypb.UserMerge return nil, helper.ErrInvalidArgument(err) } //nolint:stylecheck - return nil, fmt.Errorf("Failed to create merge commit for source_sha %s and target_sha %s at %s", sourceRef, string(request.TargetRef), refName) + return nil, helper.ErrPreconditionFailed(fmt.Errorf("Failed to create merge commit for source_sha %s and target_sha %s at %s", sourceRef, string(request.TargetRef), refName)) } // ... and move branch from target ref to the merge commit. The Ruby |