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:
authorJohn Cai <jcai@gitlab.com>2019-05-20 18:34:30 +0300
committerJohn Cai <jcai@gitlab.com>2019-05-20 18:34:30 +0300
commit31edffa5fc43f64852fe69cacecca10d4d576651 (patch)
tree333004fae250e6938d7038dbf14086bc9d13bba7
parent0e2aea7b1828a0921062ab938516f6d85e7b925f (diff)
parentb1c8a152d45a5aaeadf871e980e327f6f44f395b (diff)
Merge branch 'zj-port-create-repo-go' into 'master'
Port repository creation to Golang See merge request gitlab-org/gitaly!1245
-rw-r--r--changelogs/unreleased/zj-port-create-repo-go.yml5
-rw-r--r--internal/service/repository/create.go17
-rw-r--r--internal/service/repository/create_test.go2
3 files changed, 17 insertions, 7 deletions
diff --git a/changelogs/unreleased/zj-port-create-repo-go.yml b/changelogs/unreleased/zj-port-create-repo-go.yml
new file mode 100644
index 000000000..e2dfdc10e
--- /dev/null
+++ b/changelogs/unreleased/zj-port-create-repo-go.yml
@@ -0,0 +1,5 @@
+---
+title: Port repository creation to Golang
+merge_request: 1245
+author:
+type: performance
diff --git a/internal/service/repository/create.go b/internal/service/repository/create.go
index 397b00238..936121503 100644
--- a/internal/service/repository/create.go
+++ b/internal/service/repository/create.go
@@ -4,19 +4,24 @@ import (
"context"
"gitlab.com/gitlab-org/gitaly-proto/go/gitalypb"
- "gitlab.com/gitlab-org/gitaly/internal/rubyserver"
+ "gitlab.com/gitlab-org/gitaly/internal/git"
+ "gitlab.com/gitlab-org/gitaly/internal/helper"
)
func (s *server) CreateRepository(ctx context.Context, req *gitalypb.CreateRepositoryRequest) (*gitalypb.CreateRepositoryResponse, error) {
- client, err := s.RepositoryServiceClient(ctx)
+ diskPath, err := helper.GetPath(req.GetRepository())
if err != nil {
- return nil, err
+ return nil, helper.ErrInvalidArgument(err)
}
- clientCtx, err := rubyserver.SetHeadersWithoutRepoCheck(ctx, req.GetRepository())
+ cmd, err := git.CommandWithoutRepo(ctx, "init", "--bare", "--quiet", diskPath)
if err != nil {
- return nil, err
+ return nil, helper.ErrInternal(err)
}
- return client.CreateRepository(clientCtx, req)
+ if err := cmd.Wait(); err != nil {
+ return nil, helper.ErrInternal(err)
+ }
+
+ return &gitalypb.CreateRepositoryResponse{}, nil
}
diff --git a/internal/service/repository/create_test.go b/internal/service/repository/create_test.go
index e238f8e18..a02ddc433 100644
--- a/internal/service/repository/create_test.go
+++ b/internal/service/repository/create_test.go
@@ -63,7 +63,7 @@ func TestCreateRepositoryFailure(t *testing.T) {
Repository: &gitalypb.Repository{StorageName: "default", RelativePath: "foo.git"},
})
- testhelper.RequireGrpcError(t, err, codes.Unknown)
+ testhelper.RequireGrpcError(t, err, codes.Internal)
}
func TestCreateRepositoryFailureInvalidArgs(t *testing.T) {