diff options
author | Patrick Steinhardt <psteinhardt@gitlab.com> | 2021-01-06 12:16:55 +0300 |
---|---|---|
committer | Patrick Steinhardt <psteinhardt@gitlab.com> | 2021-01-06 12:56:05 +0300 |
commit | 3c13f2470e028ee41981eba0eb32a5b0817be70f (patch) | |
tree | 999efdb76c9e0807fe1a8e5b439edd12efd8d190 | |
parent | ced7db2422eae476589608386842fc3fc63c33b7 (diff) |
git: Convert `UploadPackFilterConfig()` to use command options
Now that it's possiblbe to specify command-specific options which always
get applied, let's convert the `UploadPackFilterConfig()` fucniton and
move it into the "upload-pack" `gitCommand` structure.
-rw-r--r-- | internal/git/subcommand.go | 6 | ||||
-rw-r--r-- | internal/git/uploadpack.go | 12 | ||||
-rw-r--r-- | internal/gitaly/service/smarthttp/inforefs.go | 10 | ||||
-rw-r--r-- | internal/gitaly/service/smarthttp/upload_pack.go | 6 | ||||
-rw-r--r-- | internal/gitaly/service/ssh/upload_pack.go | 6 |
5 files changed, 15 insertions, 25 deletions
diff --git a/internal/git/subcommand.go b/internal/git/subcommand.go index 06cd5f291..657b15815 100644 --- a/internal/git/subcommand.go +++ b/internal/git/subcommand.go @@ -154,6 +154,12 @@ var gitCommands = map[string]gitCommand{ }, "upload-pack": gitCommand{ flags: scReadOnly | scGeneratesPackfiles, + opts: []GlobalOption{ + ConfigPair{Key: "uploadpack.allowFilter", Value: "true"}, + // Enables the capability to request individual SHA1's from the + // remote repo. + ConfigPair{Key: "uploadpack.allowAnySHA1InWant", Value: "true"}, + }, }, "worktree": gitCommand{ flags: 0, diff --git a/internal/git/uploadpack.go b/internal/git/uploadpack.go deleted file mode 100644 index 0a1c44948..000000000 --- a/internal/git/uploadpack.go +++ /dev/null @@ -1,12 +0,0 @@ -package git - -// UploadPackFilterConfig confines config options that are required to allow -// partial-clone filters. -func UploadPackFilterConfig() []GlobalOption { - return []GlobalOption{ - ConfigPair{Key: "uploadpack.allowFilter", Value: "true"}, - // Enables the capability to request individual SHA1's from the - // remote repo. - ConfigPair{Key: "uploadpack.allowAnySHA1InWant", Value: "true"}, - } -} diff --git a/internal/gitaly/service/smarthttp/inforefs.go b/internal/gitaly/service/smarthttp/inforefs.go index 9d2c2edb1..e3afd2481 100644 --- a/internal/gitaly/service/smarthttp/inforefs.go +++ b/internal/gitaly/service/smarthttp/inforefs.go @@ -53,13 +53,9 @@ func (s *server) handleInfoRefs(ctx context.Context, service string, req *gitaly cmdOpts = append(cmdOpts, git.WithRefTxHook(ctx, req.Repository, config.Config)) } - var globalOpts []git.GlobalOption - if service == "upload-pack" { - globalOpts = append(globalOpts, git.UploadPackFilterConfig()...) - } - - for _, o := range req.GitConfigOptions { - globalOpts = append(globalOpts, git.ValueFlag{"-c", o}) + globalOpts := make([]git.GlobalOption, len(req.GitConfigOptions)) + for i, o := range req.GitConfigOptions { + globalOpts[i] = git.ValueFlag{"-c", o} } cmd, err := git.SafeBareCmd(ctx, nil, globalOpts, git.SubCmd{ diff --git a/internal/gitaly/service/smarthttp/upload_pack.go b/internal/gitaly/service/smarthttp/upload_pack.go index cec97e4fe..6303e5e89 100644 --- a/internal/gitaly/service/smarthttp/upload_pack.go +++ b/internal/gitaly/service/smarthttp/upload_pack.go @@ -71,10 +71,10 @@ func (s *server) PostUploadPack(stream gitalypb.SmartHTTPService_PostUploadPackS } git.WarnIfTooManyBitmaps(ctx, s.locator, req.GetRepository().GetStorageName(), repoPath) - globalOpts := git.UploadPackFilterConfig() - for _, o := range req.GitConfigOptions { - globalOpts = append(globalOpts, git.ValueFlag{"-c", o}) + globalOpts := make([]git.GlobalOption, len(req.GitConfigOptions)) + for i, o := range req.GitConfigOptions { + globalOpts[i] = git.ValueFlag{"-c", o} } cmd, err := git.SafeBareCmd(ctx, nil, globalOpts, git.SubCmd{ diff --git a/internal/gitaly/service/ssh/upload_pack.go b/internal/gitaly/service/ssh/upload_pack.go index 3eb8a451e..e81060cd2 100644 --- a/internal/gitaly/service/ssh/upload_pack.go +++ b/internal/gitaly/service/ssh/upload_pack.go @@ -78,9 +78,9 @@ func (s *server) sshUploadPack(stream gitalypb.SSHService_SSHUploadPackServer, r git.WarnIfTooManyBitmaps(ctx, s.locator, req.GetRepository().StorageName, repoPath) - globalOpts := git.UploadPackFilterConfig() - for _, o := range req.GitConfigOptions { - globalOpts = append(globalOpts, git.ValueFlag{"-c", o}) + globalOpts := make([]git.GlobalOption, len(req.GitConfigOptions)) + for i, o := range req.GitConfigOptions { + globalOpts[i] = git.ValueFlag{"-c", o} } pr, pw := io.Pipe() |