Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ require (
github.com/getsentry/sentry-go/echo v0.33.0
github.com/getsentry/sentry-go/slog v0.33.0
github.com/labstack/echo/v4 v4.12.0
github.com/ldez/go-git-cmd-wrapper/v2 v2.7.0
github.com/ldez/go-git-cmd-wrapper/v2 v2.8.0
github.com/peterbourgon/ff/v3 v3.4.0
github.com/stretchr/testify v1.9.0
github.com/xanzy/go-gitlab v0.93.2
Expand Down
4 changes: 2 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,8 @@ github.com/labstack/echo/v4 v4.12.0 h1:IKpw49IMryVB2p1a4dzwlhP1O2Tf2E0Ir/450lH+k
github.com/labstack/echo/v4 v4.12.0/go.mod h1:UP9Cr2DJXbOK3Kr9ONYzNowSh7HP0aG0ShAyycHSJvM=
github.com/labstack/gommon v0.4.2 h1:F8qTUNXgG1+6WQmqoUWnz8WiEU60mXVVw0P4ht1WRA0=
github.com/labstack/gommon v0.4.2/go.mod h1:QlUFxVM+SNXhDL/Z7YhocGIBYOiwB0mXm1+1bAPHPyU=
github.com/ldez/go-git-cmd-wrapper/v2 v2.7.0 h1:p+ddlPLvlBy15FCy8b9P5RkO81i+I2uIPWjaq6D1lO0=
github.com/ldez/go-git-cmd-wrapper/v2 v2.7.0/go.mod h1:0eUeas7XtKDPKQbB0KijfaMPbuQ/cIprtoTRiwaUoFg=
github.com/ldez/go-git-cmd-wrapper/v2 v2.8.0 h1:+lD1DY7jRCy0hBTgrlVSRQtfQvyCr4SGOlf+C+eXBtM=
github.com/ldez/go-git-cmd-wrapper/v2 v2.8.0/go.mod h1:0eUeas7XtKDPKQbB0KijfaMPbuQ/cIprtoTRiwaUoFg=
github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA=
github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=
github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
Expand Down
53 changes: 30 additions & 23 deletions handlers/merge.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,48 +31,55 @@ func MergeMaster(username, password, repoUrl, branchName, master string) error {

dir, err := os.MkdirTemp("", "merge-bot")
if err != nil {
logger.Debug("temp dir error")
return err
logger.Debug("temp dir error", "error", err)
return fmt.Errorf("temp dir error: %w", err)
}

currentDir, err := os.Getwd()
if err != nil {
logger.Debug("getwd error", "error", err)
currentDir = "/tmp/"
}

defer os.RemoveAll(dir)
defer os.Chdir(currentDir)

if _, err := git.Clone(clone.Repository(repoUrl), clone.Directory(dir)); err != nil {
logger.Debug("git clone error", "dir", dir)
return err
if output, err := git.Clone(clone.Repository(repoUrl), clone.Directory(dir)); err != nil {
logger.Debug("git clone error", "dir", dir, "output", output)
return fmt.Errorf("git clone error: %w, output: %s", err, output)
}

if err := os.Chdir(dir); err != nil {
logger.Debug("chdir error")
return err
return fmt.Errorf("chdir error: %w", err)
}

if _, err := git.Config(config.Entry("user.email", fmt.Sprintf("%s@localhost", username))); err != nil {
logger.Debug("git config error", "user.email", fmt.Sprintf("%s@localhost", username))
return err
if output, err := git.Config(config.Entry("user.email", fmt.Sprintf("%s@localhost", username))); err != nil {
logger.Debug("git config error", "user.email", fmt.Sprintf("%s@localhost", username), "output", output)
return fmt.Errorf("git config error: %w, output: %s", err, output)
}

if _, err := git.Config(config.Entry("user.name", username)); err != nil {
logger.Debug("git config error", "user.name", username)
return err
if output, err := git.Config(config.Entry("user.name", username)); err != nil {
logger.Debug("git config error", "user.name", username, "output", output)
return fmt.Errorf("git config error: %w, output: %s", err, output)
}

if _, err := git.Checkout(checkout.Branch(branchName)); err != nil {
logger.Debug("git checkout error", "branch", branchName)
return err
if output, err := git.Checkout(checkout.Branch(branchName)); err != nil {
logger.Debug("git checkout error", "branch", branchName, "output", output)
return fmt.Errorf("git checkout error: %w, output: %s", err, output)
}

if _, err := git.Merge(merge.Commits(master), merge.M("update from master")); err != nil {
logger.Debug("git merge error")
if _, err := git.Merge(merge.NoFf, merge.Commits(master), merge.M("update from master")); err != nil {
logger.Debug("git merge --noff error")
return err
if output, err := git.Merge(merge.Commits(master), merge.M("update from master")); err != nil {
logger.Debug("git merge error", "output", output)
if output, err := git.Merge(merge.NoFf, merge.Commits(master), merge.M("update from master")); err != nil {
logger.Debug("git merge --noff error", "output", output)
return fmt.Errorf("git merge --noff error: %w, output: %s", err, output)
}
}

if _, err := git.Push(push.Remote(defaultRemote), push.RefSpec(branchName)); err != nil {
logger.Debug("git push error")
return err
if output, err := git.Push(push.Remote(defaultRemote), push.RefSpec(branchName)); err != nil {
logger.Debug("git push error", "output", output)
return fmt.Errorf("git push error: %w, output: %s", err, output)
}

return nil
Expand Down
3 changes: 3 additions & 0 deletions logger/logger.go
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,12 @@ func New() {
fmt.Println("Sentry is enabled")
}

//nolint:errcheck
if debug {
slog.SetLogLoggerLevel(slog.LevelDebug)
fmt.Println("Debug mode is enabled")
// os.Setenv("GIT_CURL_VERBOSE", "True")
// os.Setenv("GIT_TRACE", "True")
}
}

Expand Down
Loading