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:
authorZeger-Jan van de Weg <git@zjvandeweg.nl>2019-09-20 10:39:10 +0300
committerZeger-Jan van de Weg <git@zjvandeweg.nl>2019-09-20 10:39:10 +0300
commit1df8aa6317b82ad89fce7951aecf90e973eb7d59 (patch)
treedcf5cbf5c63f1b3f5920c96e819455e54c8a0b03
parent939f16257b6ada62a1d78560c942468580f9472d (diff)
parent4183925cf27f5027bba7d328f77f3067655b3f32 (diff)
Merge branch 'jc-safe-command-write-ref' into 'master'
Use SafeCmd in WriteRef Closes #1998, #1999, #2000, and #2001 See merge request gitlab-org/gitaly!1506
-rw-r--r--changelogs/unreleased/jc-safe-command-write-ref.yml5
-rw-r--r--internal/service/repository/search_files.go32
-rw-r--r--internal/service/repository/util.go2
-rw-r--r--internal/service/repository/write_ref.go2
4 files changed, 26 insertions, 15 deletions
diff --git a/changelogs/unreleased/jc-safe-command-write-ref.yml b/changelogs/unreleased/jc-safe-command-write-ref.yml
new file mode 100644
index 000000000..63f7d3639
--- /dev/null
+++ b/changelogs/unreleased/jc-safe-command-write-ref.yml
@@ -0,0 +1,5 @@
+---
+title: Use SafeCmd in WriteRef
+merge_request: 1506
+author:
+type: other
diff --git a/internal/service/repository/search_files.go b/internal/service/repository/search_files.go
index a0c6fe991..f61434fa4 100644
--- a/internal/service/repository/search_files.go
+++ b/internal/service/repository/search_files.go
@@ -31,18 +31,17 @@ func (s *server) SearchFilesByContent(req *gitalypb.SearchFilesByContentRequest,
}
ctx := stream.Context()
- cmd, err := git.Command(ctx, repo, "grep",
- "--ignore-case",
- "-I", // Don't match binary, there is no long-name for this one
- "--line-number",
- "--null",
- "--before-context", surroundContext,
- "--after-context", surroundContext,
- "--perl-regexp",
- "-e", // next arg is pattern, keep this last
- req.GetQuery(),
- string(req.GetRef()),
- )
+ cmd, err := git.SafeCmd(ctx, repo,
+ nil,
+ git.SubCmd{Name: "grep", Flags: []git.Option{
+ git.Flag{Name: "--ignore-case"},
+ git.Flag{Name: "-I"},
+ git.Flag{Name: "--line-number"},
+ git.Flag{Name: "--null"},
+ git.ValueFlag{Name: "--before-context", Value: surroundContext},
+ git.ValueFlag{Name: "--after-context", Value: surroundContext},
+ git.Flag{Name: "--perl-regexp"},
+ git.Flag{Name: "-e"}}, Args: []string{req.GetQuery(), string(req.GetRef())}})
if err != nil {
return status.Errorf(codes.Internal, "SearchFilesByContent: cmd start failed: %v", err)
@@ -108,7 +107,14 @@ func (s *server) SearchFilesByName(req *gitalypb.SearchFilesByNameRequest, strea
}
ctx := stream.Context()
- cmd, err := git.Command(ctx, repo, "ls-tree", "--full-tree", "--name-status", "-r", string(req.GetRef()), req.GetQuery())
+ cmd, err := git.SafeCmd(
+ ctx,
+ repo,
+ nil,
+ git.SubCmd{Name: "ls-tree", Flags: []git.Option{
+ git.Flag{Name: "--full-tree"},
+ git.Flag{Name: "--name-status"},
+ git.Flag{Name: "-r"}}, Args: []string{string(req.GetRef()), req.GetQuery()}})
if err != nil {
return status.Errorf(codes.Internal, "SearchFilesByName: cmd start failed: %v", err)
}
diff --git a/internal/service/repository/util.go b/internal/service/repository/util.go
index 0a585caa0..16839fa44 100644
--- a/internal/service/repository/util.go
+++ b/internal/service/repository/util.go
@@ -9,7 +9,7 @@ import (
)
func removeOriginInRepo(ctx context.Context, repository *gitalypb.Repository) error {
- cmd, err := git.Command(ctx, repository, "remote", "remove", "origin")
+ cmd, err := git.SafeCmd(ctx, repository, nil, git.SubCmd{Name: "remote", Args: []string{"remove", "origin"}})
if err != nil {
return fmt.Errorf("remote cmd start: %v", err)
diff --git a/internal/service/repository/write_ref.go b/internal/service/repository/write_ref.go
index 3e5d0739d..1a874bcac 100644
--- a/internal/service/repository/write_ref.go
+++ b/internal/service/repository/write_ref.go
@@ -30,7 +30,7 @@ func writeRef(ctx context.Context, req *gitalypb.WriteRefRequest) error {
}
func updateSymbolicRef(ctx context.Context, req *gitalypb.WriteRefRequest) error {
- cmd, err := git.Command(ctx, req.GetRepository(), "symbolic-ref", string(req.GetRef()), string(req.GetRevision()))
+ cmd, err := git.SafeCmd(ctx, req.GetRepository(), nil, git.SubCmd{Name: "symbolic-ref", Args: []string{string(req.GetRef()), string(req.GetRevision())}})
if err != nil {
return fmt.Errorf("error when creating symbolic-ref command: %v", err)
}