From 5994cd6ccd9e7a39ae072706d3b418eb2283d95b Mon Sep 17 00:00:00 2001 From: Thomas Miceli <27960254+thomiceli@users.noreply.github.com> Date: Thu, 21 Nov 2024 11:23:57 +0100 Subject: [PATCH] Enforce git config on startup (#383) --- Dockerfile | 4 +--- internal/cli/main.go | 4 ++++ internal/git/config.go | 23 +++++++++++++++++++++++ 3 files changed, 28 insertions(+), 3 deletions(-) create mode 100644 internal/git/config.go diff --git a/Dockerfile b/Dockerfile index 04c517e..2b486e5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -33,8 +33,6 @@ FROM base AS dev EXPOSE 6157 2222 16157 VOLUME /opengist -RUN git config --global --add safe.directory /opengist - CMD ["make", "watch"] @@ -60,7 +58,7 @@ RUN apk update && \ libstdc++ RUN addgroup -S opengist && \ - adduser -S -G opengist -H -s /bin/ash -g 'Opengist User' opengist + adduser -S -G opengist -s /bin/ash -g 'Opengist User' opengist COPY --from=build --chown=opengist:opengist /opengist/config.yml config.yml diff --git a/internal/cli/main.go b/internal/cli/main.go index 4a96637..10f272f 100644 --- a/internal/cli/main.go +++ b/internal/cli/main.go @@ -92,6 +92,10 @@ func Initialize(ctx *cli.Context) { "Current git version: " + gitVersion) } + if err := git.InitGitConfig(); err != nil { + log.Fatal().Err(err).Send() + } + homePath := config.GetHomeDir() log.Info().Msg("Data directory: " + homePath) diff --git a/internal/git/config.go b/internal/git/config.go new file mode 100644 index 0000000..001bdc0 --- /dev/null +++ b/internal/git/config.go @@ -0,0 +1,23 @@ +package git + +import "os/exec" + +func InitGitConfig() error { + configs := map[string]string{ + "receive.advertisePushOptions": "true", + "safe.directory": "*", + } + + for key, value := range configs { + if err := setGitConfig(key, value); err != nil { + return err + } + } + + return nil +} + +func setGitConfig(key, value string) error { + cmd := exec.Command("git", "config", "--global", key, value) + return cmd.Run() +}