diff options
author | Toon Claes <toon@gitlab.com> | 2021-01-29 12:59:01 +0300 |
---|---|---|
committer | Toon Claes <toon@gitlab.com> | 2021-01-29 12:59:01 +0300 |
commit | 0d8e8d6873722723e085d94af57778674db5f46f (patch) | |
tree | ea44820f1ba610f62ae4a6a427f16950377149ec | |
parent | ba7c34fefc40cf42177e806b6dc516b33d562b79 (diff) | |
parent | 6fe052f983e0a5cd031861782698473bddb44b44 (diff) |
Merge branch 'ps-git-cmd-factory-repository' into 'master'
Replacement of the git.NewXXX in repository package
See merge request gitlab-org/gitaly!3068
23 files changed, 62 insertions, 60 deletions
diff --git a/internal/gitaly/service/repository/archive.go b/internal/gitaly/service/repository/archive.go index c06c01588..c73f16045 100644 --- a/internal/gitaly/service/repository/archive.go +++ b/internal/gitaly/service/repository/archive.go @@ -92,7 +92,7 @@ func (s *server) GetArchive(in *gitalypb.GetArchiveRequest, stream gitalypb.Repo return err } - return handleArchive(archiveParams{ + return s.handleArchive(archiveParams{ ctx: ctx, writer: writer, in: in, @@ -172,7 +172,7 @@ func findGetArchivePath(ctx context.Context, f *commit.TreeEntryFinder, commitID return true, nil } -func handleArchive(p archiveParams) error { +func (s *server) handleArchive(p archiveParams) error { var args []string pathspecs := make([]string, 0, len(p.exclude)+1) if !p.in.GetElidePath() { @@ -207,7 +207,7 @@ func handleArchive(p archiveParams) error { globals = append(globals, git.ConfigPair{Key: "filter.lfs.smudge", Value: binary}) } - archiveCommand, err := git.NewCommand(p.ctx, p.in.GetRepository(), globals, git.SubCmd{ + archiveCommand, err := s.gitCmdFactory.New(p.ctx, p.in.GetRepository(), globals, git.SubCmd{ Name: "archive", Flags: []git.Option{git.ValueFlag{"--format", p.format}, git.ValueFlag{"--prefix", p.in.GetPrefix() + "/"}}, Args: args, diff --git a/internal/gitaly/service/repository/calculate_checksum.go b/internal/gitaly/service/repository/calculate_checksum.go index 54dae6153..3625be46e 100644 --- a/internal/gitaly/service/repository/calculate_checksum.go +++ b/internal/gitaly/service/repository/calculate_checksum.go @@ -28,7 +28,7 @@ func (s *server) CalculateChecksum(ctx context.Context, in *gitalypb.CalculateCh return nil, err } - cmd, err := git.NewCommand(ctx, repo, nil, git.SubCmd{Name: "show-ref", Flags: []git.Option{git.Flag{Name: "--head"}}}) + cmd, err := s.gitCmdFactory.New(ctx, repo, nil, git.SubCmd{Name: "show-ref", Flags: []git.Option{git.Flag{Name: "--head"}}}) if err != nil { if _, ok := status.FromError(err); ok { return nil, err @@ -77,7 +77,7 @@ func (s *server) CalculateChecksum(ctx context.Context, in *gitalypb.CalculateCh func (s *server) isValidRepo(ctx context.Context, repo *gitalypb.Repository) bool { stdout := &bytes.Buffer{} - cmd, err := git.NewCommand(ctx, repo, nil, + cmd, err := s.gitCmdFactory.New(ctx, repo, nil, git.SubCmd{ Name: "rev-parse", Flags: []git.Option{ diff --git a/internal/gitaly/service/repository/cleanup.go b/internal/gitaly/service/repository/cleanup.go index 562ffcf0d..453428b85 100644 --- a/internal/gitaly/service/repository/cleanup.go +++ b/internal/gitaly/service/repository/cleanup.go @@ -66,7 +66,7 @@ func (s *server) cleanStaleWorktrees(ctx context.Context, repo *gitalypb.Reposit } if info.ModTime().Before(threshold) { - cmd, err := git.NewCommand(ctx, repo, nil, + cmd, err := s.gitCmdFactory.New(ctx, repo, nil, git.SubSubCmd{ Name: "worktree", Action: "remove", @@ -89,7 +89,7 @@ func (s *server) cleanStaleWorktrees(ctx context.Context, repo *gitalypb.Reposit } func (s *server) cleanDisconnectedWorktrees(ctx context.Context, repo *gitalypb.Repository) error { - cmd, err := git.NewCommand(ctx, repo, nil, + cmd, err := s.gitCmdFactory.New(ctx, repo, nil, git.SubSubCmd{ Name: "worktree", Action: "prune", diff --git a/internal/gitaly/service/repository/clone_from_pool_internal.go b/internal/gitaly/service/repository/clone_from_pool_internal.go index ec36ad11a..181fc3e86 100644 --- a/internal/gitaly/service/repository/clone_from_pool_internal.go +++ b/internal/gitaly/service/repository/clone_from_pool_internal.go @@ -124,7 +124,7 @@ func (s *server) cloneFromPool(ctx context.Context, objectPoolRepo *gitalypb.Obj return fmt.Errorf("expected *gitlaypb.Repository but got %T", repo) } - cmd, err := git.NewCommandWithoutRepo(ctx, nil, + cmd, err := s.gitCmdFactory.NewWithoutRepo(ctx, nil, git.SubCmd{ Name: "clone", Flags: []git.Option{git.Flag{Name: "--bare"}, git.Flag{Name: "--shared"}}, diff --git a/internal/gitaly/service/repository/commit_graph.go b/internal/gitaly/service/repository/commit_graph.go index 23ce2fe4f..4fd312689 100644 --- a/internal/gitaly/service/repository/commit_graph.go +++ b/internal/gitaly/service/repository/commit_graph.go @@ -23,7 +23,7 @@ func (s *server) WriteCommitGraph(ctx context.Context, in *gitalypb.WriteCommitG } func (s *server) writeCommitGraph(ctx context.Context, in *gitalypb.WriteCommitGraphRequest) error { - cmd, err := git.NewCommand(ctx, in.GetRepository(), nil, + cmd, err := s.gitCmdFactory.New(ctx, in.GetRepository(), nil, git.SubSubCmd{ Name: "commit-graph", Action: "write", diff --git a/internal/gitaly/service/repository/config.go b/internal/gitaly/service/repository/config.go index d5fc70808..5eccb7bed 100644 --- a/internal/gitaly/service/repository/config.go +++ b/internal/gitaly/service/repository/config.go @@ -11,10 +11,10 @@ import ( "google.golang.org/grpc/status" ) -func (*server) DeleteConfig(ctx context.Context, req *gitalypb.DeleteConfigRequest) (*gitalypb.DeleteConfigResponse, error) { +func (s *server) DeleteConfig(ctx context.Context, req *gitalypb.DeleteConfigRequest) (*gitalypb.DeleteConfigResponse, error) { for _, k := range req.Keys { // We assume k does not contain any secrets; it is leaked via 'ps'. - cmd, err := git.NewCommand(ctx, req.Repository, nil, git.SubCmd{ + cmd, err := s.gitCmdFactory.New(ctx, req.Repository, nil, git.SubCmd{ Name: "config", Flags: []git.Option{git.ValueFlag{"--unset-all", k}}, }) diff --git a/internal/gitaly/service/repository/create.go b/internal/gitaly/service/repository/create.go index ca6f201cc..e711e3642 100644 --- a/internal/gitaly/service/repository/create.go +++ b/internal/gitaly/service/repository/create.go @@ -21,7 +21,7 @@ func (s *server) CreateRepository(ctx context.Context, req *gitalypb.CreateRepos } stderr := &bytes.Buffer{} - cmd, err := git.NewCommandWithoutRepo(ctx, nil, + cmd, err := s.gitCmdFactory.NewWithoutRepo(ctx, nil, git.SubCmd{ Name: "init", Flags: []git.Option{ diff --git a/internal/gitaly/service/repository/create_bundle.go b/internal/gitaly/service/repository/create_bundle.go index 277f95c30..948544d98 100644 --- a/internal/gitaly/service/repository/create_bundle.go +++ b/internal/gitaly/service/repository/create_bundle.go @@ -23,7 +23,7 @@ func (s *server) CreateBundle(req *gitalypb.CreateBundleRequest, stream gitalypb return helper.ErrInternalf("running Cleanup on repository: %w", err) } - cmd, err := git.NewCommand(ctx, repo, nil, git.SubSubCmd{ + cmd, err := s.gitCmdFactory.New(ctx, repo, nil, git.SubSubCmd{ Name: "bundle", Action: "create", Flags: []git.Option{git.OutputToStdout, git.Flag{Name: "--all"}}, diff --git a/internal/gitaly/service/repository/create_from_bundle.go b/internal/gitaly/service/repository/create_from_bundle.go index 13c8c41b5..75bd9bfec 100644 --- a/internal/gitaly/service/repository/create_from_bundle.go +++ b/internal/gitaly/service/repository/create_from_bundle.go @@ -71,7 +71,7 @@ func (s *server) CreateRepositoryFromBundle(stream gitalypb.RepositoryService_Cr } stderr := bytes.Buffer{} - cmd, err := git.NewCommandWithoutRepo(ctx, nil, + cmd, err := s.gitCmdFactory.NewWithoutRepo(ctx, nil, git.SubCmd{ Name: "clone", Flags: []git.Option{ @@ -94,7 +94,7 @@ func (s *server) CreateRepositoryFromBundle(stream gitalypb.RepositoryService_Cr // We do a fetch to get all refs including keep-around refs stderr.Reset() - cmd, err = git.NewCommandWithoutRepo(ctx, + cmd, err = s.gitCmdFactory.NewWithoutRepo(ctx, []git.GlobalOption{git.ValueFlag{Name: "-C", Value: repoPath}}, git.SubCmd{ Name: "fetch", diff --git a/internal/gitaly/service/repository/create_from_url.go b/internal/gitaly/service/repository/create_from_url.go index 10948c86e..8b1d07dbd 100644 --- a/internal/gitaly/service/repository/create_from_url.go +++ b/internal/gitaly/service/repository/create_from_url.go @@ -47,7 +47,7 @@ func (s *server) cloneFromURLCommand(ctx context.Context, repo *gitalypb.Reposit globalFlags = append(globalFlags, git.ConfigPair{Key: "http.extraHeader", Value: authHeader}) } - return git.NewCommandWithoutRepo(ctx, globalFlags, + return s.gitCmdFactory.NewWithoutRepo(ctx, globalFlags, git.SubCmd{ Name: "clone", Flags: cloneFlags, diff --git a/internal/gitaly/service/repository/create_from_url_test.go b/internal/gitaly/service/repository/create_from_url_test.go index 9ac97ebcf..c7b38df4c 100644 --- a/internal/gitaly/service/repository/create_from_url_test.go +++ b/internal/gitaly/service/repository/create_from_url_test.go @@ -10,6 +10,7 @@ import ( "testing" "github.com/stretchr/testify/require" + "gitlab.com/gitlab-org/gitaly/internal/git" "gitlab.com/gitlab-org/gitaly/internal/gitaly/config" "gitlab.com/gitlab-org/gitaly/internal/testhelper" "gitlab.com/gitlab-org/gitaly/proto/go/gitalypb" @@ -72,7 +73,8 @@ func TestCloneRepositoryFromUrlCommand(t *testing.T) { repositoryFullPath := "full/path/to/repository" url := fmt.Sprintf("https://%s@www.example.com/secretrepo.git", userInfo) - s := &server{cfg: config.Config} + cfg := config.Config + s := server{cfg: cfg, gitCmdFactory: git.NewExecCommandFactory(cfg)} cmd, err := s.cloneFromURLCommand(ctx, &gitalypb.Repository{}, url, repositoryFullPath, nil) require.NoError(t, err) diff --git a/internal/gitaly/service/repository/fetch.go b/internal/gitaly/service/repository/fetch.go index 99aa18181..0a10f31a2 100644 --- a/internal/gitaly/service/repository/fetch.go +++ b/internal/gitaly/service/repository/fetch.go @@ -76,7 +76,7 @@ func (s *server) FetchSourceBranch(ctx context.Context, req *gitalypb.FetchSourc return nil, err } - cmd, err := git.NewCommand(ctx, req.Repository, nil, + cmd, err := s.gitCmdFactory.New(ctx, req.Repository, nil, git.SubCmd{ Name: "fetch", Args: []string{gitalyssh.GitalyInternalURL, sourceOid.String()}, diff --git a/internal/gitaly/service/repository/fork.go b/internal/gitaly/service/repository/fork.go index 46c96b7fb..ce1927ed4 100644 --- a/internal/gitaly/service/repository/fork.go +++ b/internal/gitaly/service/repository/fork.go @@ -53,7 +53,7 @@ func (s *server) CreateFork(ctx context.Context, req *gitalypb.CreateForkRequest return nil, err } - cmd, err := git.NewCommandWithoutRepo(ctx, nil, + cmd, err := s.gitCmdFactory.NewWithoutRepo(ctx, nil, git.SubCmd{ Name: "clone", Flags: []git.Option{ diff --git a/internal/gitaly/service/repository/fsck.go b/internal/gitaly/service/repository/fsck.go index f53ff2812..b7f1415ab 100644 --- a/internal/gitaly/service/repository/fsck.go +++ b/internal/gitaly/service/repository/fsck.go @@ -13,7 +13,7 @@ func (s *server) Fsck(ctx context.Context, req *gitalypb.FsckRequest) (*gitalypb repo := req.GetRepository() - cmd, err := git.NewCommand(ctx, repo, nil, + cmd, err := s.gitCmdFactory.New(ctx, repo, nil, git.SubCmd{Name: "fsck"}, git.WithStdout(&stdout), git.WithStderr(&stderr), diff --git a/internal/gitaly/service/repository/gc.go b/internal/gitaly/service/repository/gc.go index c722f6661..86a9119a3 100644 --- a/internal/gitaly/service/repository/gc.go +++ b/internal/gitaly/service/repository/gc.go @@ -43,7 +43,7 @@ func (s *server) GarbageCollect(ctx context.Context, in *gitalypb.GarbageCollect return nil, err } - if err := configureCommitGraph(ctx, in); err != nil { + if err := s.configureCommitGraph(ctx, in); err != nil { return nil, err } @@ -70,7 +70,7 @@ func (s *server) gc(ctx context.Context, in *gitalypb.GarbageCollectRequest) err flags = append(flags, git.Flag{Name: "--prune=30.minutes.ago"}) } - cmd, err := git.NewCommand(ctx, in.GetRepository(), args, + cmd, err := s.gitCmdFactory.New(ctx, in.GetRepository(), args, git.SubCmd{Name: "gc", Flags: flags}, ) @@ -92,8 +92,8 @@ func (s *server) gc(ctx context.Context, in *gitalypb.GarbageCollectRequest) err return nil } -func configureCommitGraph(ctx context.Context, in *gitalypb.GarbageCollectRequest) error { - cmd, err := git.NewCommand(ctx, in.GetRepository(), nil, git.SubCmd{ +func (s *server) configureCommitGraph(ctx context.Context, in *gitalypb.GarbageCollectRequest) error { + cmd, err := s.gitCmdFactory.New(ctx, in.GetRepository(), nil, git.SubCmd{ Name: "config", Flags: []git.Option{ git.ConfigPair{Key: "core.commitGraph", Value: "true"}, @@ -177,7 +177,7 @@ func (s *server) fixRef(ctx context.Context, repo *gitalypb.Repository, batch ca } // The name is a valid sha, recreate the ref - cmd, err := git.NewCommand(ctx, repo, nil, + cmd, err := s.gitCmdFactory.New(ctx, repo, nil, git.SubCmd{ Name: "update-ref", Args: []string{name, sha}, diff --git a/internal/gitaly/service/repository/merge_base.go b/internal/gitaly/service/repository/merge_base.go index 0ae6f4198..290851140 100644 --- a/internal/gitaly/service/repository/merge_base.go +++ b/internal/gitaly/service/repository/merge_base.go @@ -21,7 +21,7 @@ func (s *server) FindMergeBase(ctx context.Context, req *gitalypb.FindMergeBaseR return nil, status.Errorf(codes.InvalidArgument, "FindMergeBase: at least 2 revisions are required") } - cmd, err := git.NewCommand(ctx, req.GetRepository(), nil, + cmd, err := s.gitCmdFactory.New(ctx, req.GetRepository(), nil, git.SubCmd{ Name: "merge-base", Args: revisions, diff --git a/internal/gitaly/service/repository/midx.go b/internal/gitaly/service/repository/midx.go index f9d5494ce..5219151ed 100644 --- a/internal/gitaly/service/repository/midx.go +++ b/internal/gitaly/service/repository/midx.go @@ -23,11 +23,11 @@ const ( func (s *server) MidxRepack(ctx context.Context, in *gitalypb.MidxRepackRequest) (*gitalypb.MidxRepackResponse, error) { repo := in.GetRepository() - if err := midxSetConfig(ctx, repo); err != nil { + if err := s.midxSetConfig(ctx, repo); err != nil { return nil, err } - for _, cmd := range []midxSubCommand{midxWrite, midxExpire, s.midxRepack} { + for _, cmd := range []midxSubCommand{s.midxWrite, s.midxExpire, s.midxRepack} { if err := s.safeMidxCommand(ctx, repo, cmd); err != nil { if git.IsInvalidArgErr(err) { return nil, helper.ErrInvalidArgumentf("MidxRepack: %w", err) @@ -53,8 +53,8 @@ func (s *server) safeMidxCommand(ctx context.Context, repo repository.GitRepo, c return s.midxEnsureExists(ctx, repo) } -func midxSetConfig(ctx context.Context, repo repository.GitRepo) error { - cmd, err := git.NewCommand(ctx, repo, nil, git.SubCmd{ +func (s *server) midxSetConfig(ctx context.Context, repo repository.GitRepo) error { + cmd, err := s.gitCmdFactory.New(ctx, repo, nil, git.SubCmd{ Name: "config", Flags: []git.Option{ git.ConfigPair{ @@ -74,8 +74,8 @@ func midxSetConfig(ctx context.Context, repo repository.GitRepo) error { return nil } -func midxWrite(ctx context.Context, repo repository.GitRepo) error { - cmd, err := git.NewCommand(ctx, repo, nil, +func (s *server) midxWrite(ctx context.Context, repo repository.GitRepo) error { + cmd, err := s.gitCmdFactory.New(ctx, repo, nil, git.SubSubCmd{ Name: "multi-pack-index", Action: "write", @@ -96,7 +96,7 @@ func midxWrite(ctx context.Context, repo repository.GitRepo) error { func (s *server) midxEnsureExists(ctx context.Context, repo repository.GitRepo) error { ctxlogger := ctxlogrus.Extract(ctx) - if err := midxVerify(ctx, repo); err != nil { + if err := s.midxVerify(ctx, repo); err != nil { ctxlogger. WithError(err). WithFields(log.Fields{"verify_success": false}). @@ -108,10 +108,10 @@ func (s *server) midxEnsureExists(ctx context.Context, repo repository.GitRepo) return nil } -func midxVerify(ctx context.Context, repo repository.GitRepo) error { +func (s *server) midxVerify(ctx context.Context, repo repository.GitRepo) error { ctxlogger := ctxlogrus.Extract(ctx) - cmd, err := git.NewCommand(ctx, repo, nil, + cmd, err := s.gitCmdFactory.New(ctx, repo, nil, git.SubSubCmd{ Name: "multi-pack-index", Action: "verify", @@ -143,11 +143,11 @@ func (s *server) midxRewrite(ctx context.Context, repo repository.GitRepo) error return err } - return midxWrite(ctx, repo) + return s.midxWrite(ctx, repo) } -func midxExpire(ctx context.Context, repo repository.GitRepo) error { - cmd, err := git.NewCommand(ctx, repo, nil, +func (s *server) midxExpire(ctx context.Context, repo repository.GitRepo) error { + cmd, err := s.gitCmdFactory.New(ctx, repo, nil, git.SubSubCmd{ Name: "multi-pack-index", Action: "expire", @@ -188,7 +188,7 @@ func (s *server) midxRepack(ctx context.Context, repo repository.GitRepo) error // - repack.useDeltaIslands // will only be respected if git version is >=2.28.0. // Bitmap index 'repack.writeBitmaps' is not yet supported. - cmd, err := git.NewCommand(ctx, repo, + cmd, err := s.gitCmdFactory.New(ctx, repo, repackConfig(ctx, false), git.SubSubCmd{ Name: "multi-pack-index", diff --git a/internal/gitaly/service/repository/optimize.go b/internal/gitaly/service/repository/optimize.go index 6e323099f..f8495e88a 100644 --- a/internal/gitaly/service/repository/optimize.go +++ b/internal/gitaly/service/repository/optimize.go @@ -174,20 +174,20 @@ func (s *server) validateOptimizeRepositoryRequest(in *gitalypb.OptimizeReposito } func (s *server) unsetAllConfigsByRegexp(ctx context.Context, repository *gitalypb.Repository, regexp string) error { - keys, err := getConfigKeys(ctx, repository, regexp) + keys, err := s.getConfigKeys(ctx, repository, regexp) if err != nil { return fmt.Errorf("get config keys: %w", err) } - if err := unsetConfigKeys(ctx, repository, keys); err != nil { + if err := s.unsetConfigKeys(ctx, repository, keys); err != nil { return fmt.Errorf("unset all keys: %w", err) } return nil } -func getConfigKeys(ctx context.Context, repository *gitalypb.Repository, regexp string) ([]string, error) { - cmd, err := git.NewCommand(ctx, repository, nil, git.SubCmd{ +func (s *server) getConfigKeys(ctx context.Context, repository *gitalypb.Repository, regexp string) ([]string, error) { + cmd, err := s.gitCmdFactory.New(ctx, repository, nil, git.SubCmd{ Name: "config", Flags: []git.Option{ git.Flag{Name: "--name-only"}, @@ -232,9 +232,9 @@ func parseConfigKeys(reader io.Reader) ([]string, error) { return keys, nil } -func unsetConfigKeys(ctx context.Context, repository *gitalypb.Repository, names []string) error { +func (s *server) unsetConfigKeys(ctx context.Context, repository *gitalypb.Repository, names []string) error { for _, name := range names { - if err := unsetAll(ctx, repository, name); err != nil { + if err := s.unsetAll(ctx, repository, name); err != nil { return fmt.Errorf("unset all: %w", err) } } @@ -242,12 +242,12 @@ func unsetConfigKeys(ctx context.Context, repository *gitalypb.Repository, names return nil } -func unsetAll(ctx context.Context, repository *gitalypb.Repository, name string) error { +func (s *server) unsetAll(ctx context.Context, repository *gitalypb.Repository, name string) error { if strings.TrimSpace(name) == "" { return nil } - cmd, err := git.NewCommand(ctx, repository, nil, git.SubCmd{ + cmd, err := s.gitCmdFactory.New(ctx, repository, nil, git.SubCmd{ Name: "config", Flags: []git.Option{git.ValueFlag{Name: "--unset-all", Value: name}}, }) diff --git a/internal/gitaly/service/repository/raw_changes.go b/internal/gitaly/service/repository/raw_changes.go index b9bbd8fe9..55f5af0fb 100644 --- a/internal/gitaly/service/repository/raw_changes.go +++ b/internal/gitaly/service/repository/raw_changes.go @@ -30,7 +30,7 @@ func (s *server) GetRawChanges(req *gitalypb.GetRawChangesRequest, stream gitaly return helper.ErrInvalidArgument(err) } - if err := getRawChanges(stream, repo, batch, req.GetFromRevision(), req.GetToRevision()); err != nil { + if err := s.getRawChanges(stream, repo, batch, req.GetFromRevision(), req.GetToRevision()); err != nil { return helper.ErrInternal(err) } @@ -53,7 +53,7 @@ func validateRawChangesRequest(ctx context.Context, req *gitalypb.GetRawChangesR return nil } -func getRawChanges(stream gitalypb.RepositoryService_GetRawChangesServer, repo *gitalypb.Repository, batch catfile.Batch, from, to string) error { +func (s *server) getRawChanges(stream gitalypb.RepositoryService_GetRawChangesServer, repo *gitalypb.Repository, batch catfile.Batch, from, to string) error { if git.ObjectID(to).IsZeroOID() { return nil } @@ -64,7 +64,7 @@ func getRawChanges(stream gitalypb.RepositoryService_GetRawChangesServer, repo * ctx := stream.Context() - diffCmd, err := git.NewCommand(ctx, repo, nil, git.SubCmd{ + diffCmd, err := s.gitCmdFactory.New(ctx, repo, nil, git.SubCmd{ Name: "diff", Flags: []git.Option{git.Flag{Name: "--raw"}, git.Flag{Name: "-z"}}, Args: []string{from, to}, diff --git a/internal/gitaly/service/repository/repack.go b/internal/gitaly/service/repository/repack.go index 939d0b8c7..53d04d5e1 100644 --- a/internal/gitaly/service/repository/repack.go +++ b/internal/gitaly/service/repository/repack.go @@ -27,27 +27,27 @@ func init() { prometheus.Register(repackCounter) } -func (*server) RepackFull(ctx context.Context, in *gitalypb.RepackFullRequest) (*gitalypb.RepackFullResponse, error) { +func (s *server) RepackFull(ctx context.Context, in *gitalypb.RepackFullRequest) (*gitalypb.RepackFullResponse, error) { options := []git.Option{ git.Flag{Name: "-A"}, git.Flag{Name: "--pack-kept-objects"}, git.Flag{Name: "-l"}, } - if err := repackCommand(ctx, in.GetRepository(), in.GetCreateBitmap(), options...); err != nil { + if err := s.repackCommand(ctx, in.GetRepository(), in.GetCreateBitmap(), options...); err != nil { return nil, err } return &gitalypb.RepackFullResponse{}, nil } -func (*server) RepackIncremental(ctx context.Context, in *gitalypb.RepackIncrementalRequest) (*gitalypb.RepackIncrementalResponse, error) { - if err := repackCommand(ctx, in.GetRepository(), false); err != nil { +func (s *server) RepackIncremental(ctx context.Context, in *gitalypb.RepackIncrementalRequest) (*gitalypb.RepackIncrementalResponse, error) { + if err := s.repackCommand(ctx, in.GetRepository(), false); err != nil { return nil, err } return &gitalypb.RepackIncrementalResponse{}, nil } -func repackCommand(ctx context.Context, repo repository.GitRepo, bitmap bool, args ...git.Option) error { - cmd, err := git.NewCommand(ctx, repo, +func (s *server) repackCommand(ctx context.Context, repo repository.GitRepo, bitmap bool, args ...git.Option) error { + cmd, err := s.gitCmdFactory.New(ctx, repo, repackConfig(ctx, bitmap), // global configs git.SubCmd{ Name: "repack", diff --git a/internal/gitaly/service/repository/search_files.go b/internal/gitaly/service/repository/search_files.go index 350394cd6..3815f56ec 100644 --- a/internal/gitaly/service/repository/search_files.go +++ b/internal/gitaly/service/repository/search_files.go @@ -39,7 +39,7 @@ func (s *server) SearchFilesByContent(req *gitalypb.SearchFilesByContentRequest, } ctx := stream.Context() - cmd, err := git.NewCommand(ctx, repo, + cmd, err := s.gitCmdFactory.New(ctx, repo, nil, git.SubCmd{Name: "grep", Flags: []git.Option{ git.Flag{Name: "--ignore-case"}, @@ -127,7 +127,7 @@ func (s *server) SearchFilesByName(req *gitalypb.SearchFilesByNameRequest, strea } ctx := stream.Context() - cmd, err := git.NewCommand( + cmd, err := s.gitCmdFactory.New( ctx, repo, nil, diff --git a/internal/gitaly/service/repository/util.go b/internal/gitaly/service/repository/util.go index 7514beecf..1218696f2 100644 --- a/internal/gitaly/service/repository/util.go +++ b/internal/gitaly/service/repository/util.go @@ -9,7 +9,7 @@ import ( ) func (s *server) removeOriginInRepo(ctx context.Context, repository *gitalypb.Repository) error { - cmd, err := git.NewCommand(ctx, repository, nil, git.SubCmd{Name: "remote", Args: []string{"remove", "origin"}}, git.WithRefTxHook(ctx, repository, s.cfg)) + cmd, err := s.gitCmdFactory.New(ctx, repository, nil, git.SubCmd{Name: "remote", Args: []string{"remove", "origin"}}, git.WithRefTxHook(ctx, repository, s.cfg)) if err != nil { return fmt.Errorf("remote cmd start: %v", err) diff --git a/internal/gitaly/service/repository/write_ref.go b/internal/gitaly/service/repository/write_ref.go index 17366f551..f35381ccf 100644 --- a/internal/gitaly/service/repository/write_ref.go +++ b/internal/gitaly/service/repository/write_ref.go @@ -31,7 +31,7 @@ func (s *server) writeRef(ctx context.Context, req *gitalypb.WriteRefRequest) er } func (s *server) updateSymbolicRef(ctx context.Context, req *gitalypb.WriteRefRequest) error { - cmd, err := git.NewCommand(ctx, req.GetRepository(), nil, + cmd, err := s.gitCmdFactory.New(ctx, req.GetRepository(), nil, git.SubCmd{ Name: "symbolic-ref", Args: []string{string(req.GetRef()), string(req.GetRevision())}, |