diff options
author | John Cai <jcai@gitlab.com> | 2019-05-20 18:34:30 +0300 |
---|---|---|
committer | John Cai <jcai@gitlab.com> | 2019-05-20 18:34:30 +0300 |
commit | 31edffa5fc43f64852fe69cacecca10d4d576651 (patch) | |
tree | 333004fae250e6938d7038dbf14086bc9d13bba7 | |
parent | 0e2aea7b1828a0921062ab938516f6d85e7b925f (diff) | |
parent | b1c8a152d45a5aaeadf871e980e327f6f44f395b (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.yml | 5 | ||||
-rw-r--r-- | internal/service/repository/create.go | 17 | ||||
-rw-r--r-- | internal/service/repository/create_test.go | 2 |
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) { |