diff options
Diffstat (limited to 'internal/gitaly/service/repository/create_repository_from_url.go')
-rw-r--r-- | internal/gitaly/service/repository/create_repository_from_url.go | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/internal/gitaly/service/repository/create_repository_from_url.go b/internal/gitaly/service/repository/create_repository_from_url.go index 1280d78fb..1079aea85 100644 --- a/internal/gitaly/service/repository/create_repository_from_url.go +++ b/internal/gitaly/service/repository/create_repository_from_url.go @@ -18,7 +18,7 @@ import ( func (s *server) cloneFromURLCommand( ctx context.Context, - repoURL, repoHost, repositoryFullPath, authorizationToken string, + repoURL, repoHost, repositoryFullPath, authorizationToken string, mirror bool, opts ...git.CmdOpt, ) (*command.Command, error) { u, err := url.Parse(repoURL) @@ -29,10 +29,15 @@ func (s *server) cloneFromURLCommand( var config []git.ConfigPair cloneFlags := []git.Option{ - git.Flag{Name: "--bare"}, git.Flag{Name: "--quiet"}, } + if mirror { + cloneFlags = append(cloneFlags, git.Flag{Name: "--mirror"}) + } else { + cloneFlags = append(cloneFlags, git.Flag{Name: "--bare"}) + } + if u.User != nil { pwd, set := u.User.Password() @@ -92,6 +97,7 @@ func (s *server) CreateRepositoryFromURL(ctx context.Context, req *gitalypb.Crea req.GetHttpHost(), targetPath, req.GetHttpAuthorizationHeader(), + req.GetMirror(), git.WithStderr(&stderr), git.WithDisabledHooks(), ) |