summaryrefslogtreecommitdiff
path: root/go/internal/handler/upload_archive.go
diff options
context:
space:
mode:
authorAlejandro Rodríguez <alejorro70@gmail.com>2018-03-08 19:25:14 -0300
committerAlejandro Rodríguez <alejorro70@gmail.com>2018-03-20 14:38:55 -0300
commit27bdba30336bf31242b8168ae710a52246c8f9eb (patch)
tree8136b7672ab3cecba1dd68c75ff90dced152c836 /go/internal/handler/upload_archive.go
parent9b9ada1013bd91e316c2e85b7c0f0ef8cb02f688 (diff)
downloadgitlab-shell-gitaly-upload-archive.tar.gz
Add Gitaly git-upload-archive migrated commandgitaly-upload-archive
Diffstat (limited to 'go/internal/handler/upload_archive.go')
-rw-r--r--go/internal/handler/upload_archive.go26
1 files changed, 26 insertions, 0 deletions
diff --git a/go/internal/handler/upload_archive.go b/go/internal/handler/upload_archive.go
new file mode 100644
index 0000000..4ab1e71
--- /dev/null
+++ b/go/internal/handler/upload_archive.go
@@ -0,0 +1,26 @@
+package handler
+
+import (
+ "context"
+ "fmt"
+ "os"
+
+ pb "gitlab.com/gitlab-org/gitaly-proto/go"
+ "gitlab.com/gitlab-org/gitaly/client"
+)
+
+func UploadArchive(gitalyAddress string, request *pb.SSHUploadArchiveRequest) (int32, error) {
+ if gitalyAddress == "" {
+ return 0, fmt.Errorf("no gitaly_address given")
+ }
+
+ conn, err := client.Dial(gitalyAddress, dialOpts())
+ if err != nil {
+ return 0, err
+ }
+ defer conn.Close()
+
+ ctx, cancel := context.WithCancel(context.Background())
+ defer cancel()
+ return client.UploadArchive(ctx, conn, os.Stdin, os.Stdout, os.Stderr, request)
+}