summaryrefslogtreecommitdiff
path: root/go/internal/command/uploadarchive/gitalycall.go
diff options
context:
space:
mode:
authorIgor <idrozdov@gitlab.com>2019-06-05 15:53:33 +0000
committerNick Thomas <nick@gitlab.com>2019-06-05 15:53:33 +0000
commit60e258e32b5df579136ba3cf10f7f07eb8206415 (patch)
treea425982099197962547ce903899d2456434736a6 /go/internal/command/uploadarchive/gitalycall.go
parentf61185b8a8f8974225a701137ba4b75cf5d4c4ef (diff)
downloadgitlab-shell-60e258e32b5df579136ba3cf10f7f07eb8206415.tar.gz
Go implementation for git-upload-archive
Diffstat (limited to 'go/internal/command/uploadarchive/gitalycall.go')
-rw-r--r--go/internal/command/uploadarchive/gitalycall.go32
1 files changed, 32 insertions, 0 deletions
diff --git a/go/internal/command/uploadarchive/gitalycall.go b/go/internal/command/uploadarchive/gitalycall.go
new file mode 100644
index 0000000..c899588
--- /dev/null
+++ b/go/internal/command/uploadarchive/gitalycall.go
@@ -0,0 +1,32 @@
+package uploadarchive
+
+import (
+ "context"
+
+ "google.golang.org/grpc"
+
+ pb "gitlab.com/gitlab-org/gitaly-proto/go/gitalypb"
+ "gitlab.com/gitlab-org/gitaly/client"
+ "gitlab.com/gitlab-org/gitlab-shell/go/internal/command/commandargs"
+ "gitlab.com/gitlab-org/gitlab-shell/go/internal/gitlabnet/accessverifier"
+ "gitlab.com/gitlab-org/gitlab-shell/go/internal/handler"
+)
+
+func (c *Command) performGitalyCall(response *accessverifier.Response) error {
+ gc := &handler.GitalyCommand{
+ Config: c.Config,
+ ServiceName: string(commandargs.UploadArchive),
+ Address: response.Gitaly.Address,
+ Token: response.Gitaly.Token,
+ }
+
+ request := &pb.SSHUploadArchiveRequest{Repository: &response.Gitaly.Repo}
+
+ return gc.RunGitalyCommand(func(ctx context.Context, conn *grpc.ClientConn) (int32, error) {
+ ctx, cancel := context.WithCancel(ctx)
+ defer cancel()
+
+ rw := c.ReadWriter
+ return client.UploadArchive(ctx, conn, rw.In, rw.Out, rw.ErrOut, request)
+ })
+}