diff options
author | Patrick Steinhardt <psteinhardt@gitlab.com> | 2022-05-25 06:48:40 +0300 |
---|---|---|
committer | Patrick Steinhardt <psteinhardt@gitlab.com> | 2022-05-30 09:09:53 +0300 |
commit | 0bc5c6dd945972ffa0b118ce00ca14a6123e09a4 (patch) | |
tree | 668be2c397a4f7d859a168e0f40024e1215a90cc | |
parent | 5a252a7bfe81e29d0ea673d52f5d28243ec333cc (diff) |
gitaly-lfs-smudge: Move configuration-code into separate package
Move the configuration-related code of gitaly-lfs-smudge into a separate
package so that we can access and inject it in Gitaly's services.
-rw-r--r-- | cmd/gitaly-lfs-smudge/lfs_smudge.go | 5 | ||||
-rw-r--r-- | cmd/gitaly-lfs-smudge/lfs_smudge_test.go | 19 | ||||
-rw-r--r-- | cmd/gitaly-lfs-smudge/main.go | 5 | ||||
-rw-r--r-- | cmd/gitaly-lfs-smudge/main_test.go | 3 | ||||
-rw-r--r-- | internal/git/smudge/config.go (renamed from cmd/gitaly-lfs-smudge/config.go) | 5 | ||||
-rw-r--r-- | internal/git/smudge/config_test.go (renamed from cmd/gitaly-lfs-smudge/config_test.go) | 4 |
6 files changed, 23 insertions, 18 deletions
diff --git a/cmd/gitaly-lfs-smudge/lfs_smudge.go b/cmd/gitaly-lfs-smudge/lfs_smudge.go index 501e8ca47..74852bf3a 100644 --- a/cmd/gitaly-lfs-smudge/lfs_smudge.go +++ b/cmd/gitaly-lfs-smudge/lfs_smudge.go @@ -7,13 +7,14 @@ import ( "net/url" "github.com/git-lfs/git-lfs/lfs" + "gitlab.com/gitlab-org/gitaly/v15/internal/git/smudge" "gitlab.com/gitlab-org/gitaly/v15/internal/gitaly/config/prometheus" "gitlab.com/gitlab-org/gitaly/v15/internal/gitlab" "gitlab.com/gitlab-org/labkit/log" "gitlab.com/gitlab-org/labkit/tracing" ) -func smudge(cfg Config, to io.Writer, from io.Reader) (returnedErr error) { +func smudgeContents(cfg smudge.Config, to io.Writer, from io.Reader) (returnedErr error) { // Since the environment is sanitized at the moment, we're only // using this to extract the correlation ID. The finished() call // to clean up the tracing will be a NOP here. @@ -37,7 +38,7 @@ func smudge(cfg Config, to io.Writer, from io.Reader) (returnedErr error) { return nil } -func handleSmudge(ctx context.Context, cfg Config, to io.Writer, from io.Reader) (io.ReadCloser, error) { +func handleSmudge(ctx context.Context, cfg smudge.Config, to io.Writer, from io.Reader) (io.ReadCloser, error) { logger := log.ContextLogger(ctx) ptr, contents, err := lfs.DecodeFrom(from) diff --git a/cmd/gitaly-lfs-smudge/lfs_smudge_test.go b/cmd/gitaly-lfs-smudge/lfs_smudge_test.go index 5d8e50db7..477a2131f 100644 --- a/cmd/gitaly-lfs-smudge/lfs_smudge_test.go +++ b/cmd/gitaly-lfs-smudge/lfs_smudge_test.go @@ -7,6 +7,7 @@ import ( "testing" "github.com/stretchr/testify/require" + "gitlab.com/gitlab-org/gitaly/v15/internal/git/smudge" "gitlab.com/gitlab-org/gitaly/v15/internal/gitaly/config" "gitlab.com/gitlab-org/gitaly/v15/internal/gitlab" ) @@ -66,7 +67,7 @@ func TestSuccessfulLfsSmudge(t *testing.T) { gitlabCfg, cleanup := runTestServer(t, defaultOptions) defer cleanup() - cfg := Config{ + cfg := smudge.Config{ GlRepository: "project-1", Gitlab: gitlabCfg, TLS: config.TLS{ @@ -75,15 +76,15 @@ func TestSuccessfulLfsSmudge(t *testing.T) { }, } - require.NoError(t, smudge(cfg, &b, reader)) + require.NoError(t, smudgeContents(cfg, &b, reader)) require.Equal(t, testData, b.String()) }) } } func TestUnsuccessfulLfsSmudge(t *testing.T) { - defaultConfig := func(t *testing.T, gitlabCfg config.Gitlab) Config { - return Config{ + defaultConfig := func(t *testing.T, gitlabCfg config.Gitlab) smudge.Config { + return smudge.Config{ GlRepository: "project-1", Gitlab: gitlabCfg, } @@ -91,7 +92,7 @@ func TestUnsuccessfulLfsSmudge(t *testing.T) { testCases := []struct { desc string - setupCfg func(*testing.T, config.Gitlab) Config + setupCfg func(*testing.T, config.Gitlab) smudge.Config data string expectedError bool options gitlab.TestServerOptions @@ -121,7 +122,7 @@ func TestUnsuccessfulLfsSmudge(t *testing.T) { { desc: "missing GL_REPOSITORY", data: lfsPointer, - setupCfg: func(t *testing.T, gitlabCfg config.Gitlab) Config { + setupCfg: func(t *testing.T, gitlabCfg config.Gitlab) smudge.Config { cfg := defaultConfig(t, gitlabCfg) cfg.GlRepository = "" return cfg @@ -132,7 +133,7 @@ func TestUnsuccessfulLfsSmudge(t *testing.T) { { desc: "missing GL_INTERNAL_CONFIG", data: lfsPointer, - setupCfg: func(t *testing.T, gitlabCfg config.Gitlab) Config { + setupCfg: func(t *testing.T, gitlabCfg config.Gitlab) smudge.Config { cfg := defaultConfig(t, gitlabCfg) cfg.Gitlab = config.Gitlab{} return cfg @@ -156,7 +157,7 @@ func TestUnsuccessfulLfsSmudge(t *testing.T) { { desc: "invalid TLS paths", data: lfsPointer, - setupCfg: func(t *testing.T, gitlabCfg config.Gitlab) Config { + setupCfg: func(t *testing.T, gitlabCfg config.Gitlab) smudge.Config { cfg := defaultConfig(t, gitlabCfg) cfg.TLS = config.TLS{CertPath: "fake-path", KeyPath: "not-real"} return cfg @@ -174,7 +175,7 @@ func TestUnsuccessfulLfsSmudge(t *testing.T) { cfg := tc.setupCfg(t, gitlabCfg) var b bytes.Buffer - err := smudge(cfg, &b, strings.NewReader(tc.data)) + err := smudgeContents(cfg, &b, strings.NewReader(tc.data)) if tc.expectedError { require.Error(t, err) diff --git a/cmd/gitaly-lfs-smudge/main.go b/cmd/gitaly-lfs-smudge/main.go index 397989b3c..9db0fbd55 100644 --- a/cmd/gitaly-lfs-smudge/main.go +++ b/cmd/gitaly-lfs-smudge/main.go @@ -6,6 +6,7 @@ import ( "os" "path/filepath" + "gitlab.com/gitlab-org/gitaly/v15/internal/git/smudge" "gitlab.com/gitlab-org/gitaly/v15/internal/helper/env" gitalylog "gitlab.com/gitlab-org/gitaly/v15/internal/log" "gitlab.com/gitlab-org/labkit/log" @@ -58,12 +59,12 @@ func initLogging(environment []string) (io.Closer, error) { } func run(environment []string, out io.Writer, in io.Reader) error { - cfg, err := configFromEnvironment(environment) + cfg, err := smudge.ConfigFromEnvironment(environment) if err != nil { return fmt.Errorf("loading configuration: %w", err) } - if err := smudge(cfg, out, in); err != nil { + if err := smudgeContents(cfg, out, in); err != nil { return fmt.Errorf("running smudge filter: %w", err) } diff --git a/cmd/gitaly-lfs-smudge/main_test.go b/cmd/gitaly-lfs-smudge/main_test.go index 68011289b..37814a34b 100644 --- a/cmd/gitaly-lfs-smudge/main_test.go +++ b/cmd/gitaly-lfs-smudge/main_test.go @@ -11,6 +11,7 @@ import ( "github.com/stretchr/testify/require" "gitlab.com/gitlab-org/gitaly/v15/internal/command" + "gitlab.com/gitlab-org/gitaly/v15/internal/git/smudge" "gitlab.com/gitlab-org/gitaly/v15/internal/gitaly/config" "gitlab.com/gitlab-org/gitaly/v15/internal/testhelper" "gitlab.com/gitlab-org/gitaly/v15/internal/testhelper/testcfg" @@ -70,7 +71,7 @@ func TestGitalyLFSSmudge(t *testing.T) { setup: func(t *testing.T) ([]string, string) { logDir := testhelper.TempDir(t) - cfg := Config{ + cfg := smudge.Config{ GlRepository: "project-1", Gitlab: gitlabCfg, TLS: tlsCfg, diff --git a/cmd/gitaly-lfs-smudge/config.go b/internal/git/smudge/config.go index 521373617..79ca4b1ba 100644 --- a/cmd/gitaly-lfs-smudge/config.go +++ b/internal/git/smudge/config.go @@ -1,4 +1,4 @@ -package main +package smudge import ( "encoding/json" @@ -26,7 +26,8 @@ type Config struct { TLS config.TLS `json:"tls"` } -func configFromEnvironment(environment []string) (Config, error) { +// ConfigFromEnvironment loads the Config structure from the set of given environment variables. +func ConfigFromEnvironment(environment []string) (Config, error) { var cfg Config // If ConfigEnvironmentKey is set, then we use that instead of the separate environment diff --git a/cmd/gitaly-lfs-smudge/config_test.go b/internal/git/smudge/config_test.go index a7a855953..d988bf16c 100644 --- a/cmd/gitaly-lfs-smudge/config_test.go +++ b/internal/git/smudge/config_test.go @@ -1,4 +1,4 @@ -package main +package smudge import ( "encoding/json" @@ -134,7 +134,7 @@ func TestConfigFromEnvironment(t *testing.T) { }, } { t.Run(tc.desc, func(t *testing.T) { - cfg, err := configFromEnvironment(tc.environment) + cfg, err := ConfigFromEnvironment(tc.environment) if tc.expectedErr == "" { require.NoError(t, err) } else { |