diff options
author | Igor <idrozdov@gitlab.com> | 2019-06-05 15:53:33 +0000 |
---|---|---|
committer | Nick Thomas <nick@gitlab.com> | 2019-06-05 15:53:33 +0000 |
commit | 60e258e32b5df579136ba3cf10f7f07eb8206415 (patch) | |
tree | a425982099197962547ce903899d2456434736a6 /go/internal/command/uploadarchive/gitalycall.go | |
parent | f61185b8a8f8974225a701137ba4b75cf5d4c4ef (diff) | |
download | gitlab-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.go | 32 |
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) + }) +} |