Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitaly.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'client/upload_pack.go')
-rw-r--r--client/upload_pack.go62
1 files changed, 4 insertions, 58 deletions
diff --git a/client/upload_pack.go b/client/upload_pack.go
index 65d81746e..4ad17dcb4 100644
--- a/client/upload_pack.go
+++ b/client/upload_pack.go
@@ -4,48 +4,18 @@ import (
"context"
"io"
- "gitlab.com/gitlab-org/gitaly/v16/internal/stream"
+ "gitlab.com/gitlab-org/gitaly/v16/internal/gitaly/gitalyclient"
"gitlab.com/gitlab-org/gitaly/v16/proto/go/gitalypb"
- "gitlab.com/gitlab-org/gitaly/v16/streamio"
"google.golang.org/grpc"
)
// UploadPack proxies an SSH git-upload-pack (git fetch) session to Gitaly
func UploadPack(ctx context.Context, conn *grpc.ClientConn, stdin io.Reader, stdout, stderr io.Writer, req *gitalypb.SSHUploadPackRequest) (int32, error) {
- ctx2, cancel := context.WithCancel(ctx)
- defer cancel()
-
- ssh := gitalypb.NewSSHServiceClient(conn)
- uploadPackStream, err := ssh.SSHUploadPack(ctx2)
- if err != nil {
- return 0, err
- }
-
- if err = uploadPackStream.Send(req); err != nil {
- return 0, err
- }
-
- inWriter := streamio.NewWriter(func(p []byte) error {
- return uploadPackStream.Send(&gitalypb.SSHUploadPackRequest{Stdin: p})
- })
-
- return stream.Handler(func() (stream.StdoutStderrResponse, error) {
- return uploadPackStream.Recv()
- }, func(errC chan error) {
- _, errRecv := io.Copy(inWriter, stdin)
- if err := uploadPackStream.CloseSend(); err != nil && errRecv == nil {
- errC <- err
- } else {
- errC <- errRecv
- }
- }, stdout, stderr)
+ return gitalyclient.UploadPack(ctx, conn, stdin, stdout, stderr, req)
}
// UploadPackResult wraps ExitCode and PackfileNegotiationStatistics.
-type UploadPackResult struct {
- ExitCode int32
- PackfileNegotiationStatistics *gitalypb.PackfileNegotiationStatistics
-}
+type UploadPackResult = gitalyclient.UploadPackResult
// UploadPackWithSidechannelWithResult proxies an SSH git-upload-pack (git fetch)
// session to Gitaly using a sidechannel for the raw data transfer.
@@ -57,31 +27,7 @@ func UploadPackWithSidechannelWithResult(
stdout, stderr io.Writer,
req *gitalypb.SSHUploadPackWithSidechannelRequest,
) (UploadPackResult, error) {
- result := UploadPackResult{}
- ctx, cancel := context.WithCancel(ctx)
- defer cancel()
-
- ctx, wt := reg.Register(ctx, func(c SidechannelConn) error {
- return stream.ProxyPktLine(c, stdin, stdout, stderr)
- })
- defer func() {
- // We aleady check the error further down.
- _ = wt.Close()
- }()
-
- sshClient := gitalypb.NewSSHServiceClient(conn)
- resp, err := sshClient.SSHUploadPackWithSidechannel(ctx, req)
- if err != nil {
- return result, err
- }
- result.ExitCode = 0
- result.PackfileNegotiationStatistics = resp.PackfileNegotiationStatistics
-
- if err := wt.Close(); err != nil {
- return result, err
- }
-
- return result, nil
+ return gitalyclient.UploadPackWithSidechannel(ctx, conn, reg.registry, stdin, stdout, stderr, req)
}
// UploadPackWithSidechannel proxies an SSH git-upload-pack (git fetch)