diff options
-rw-r--r-- | cmd/gitlab-shell/main.go | 12 | ||||
-rw-r--r-- | internal/sshd/session.go | 7 |
2 files changed, 18 insertions, 1 deletions
diff --git a/cmd/gitlab-shell/main.go b/cmd/gitlab-shell/main.go index 2576e8b..a945d0c 100644 --- a/cmd/gitlab-shell/main.go +++ b/cmd/gitlab-shell/main.go @@ -3,6 +3,9 @@ package main import ( "fmt" "os" + "reflect" + + "gitlab.com/gitlab-org/labkit/log" shellCmd "gitlab.com/gitlab-org/gitlab-shell/cmd/gitlab-shell/command" "gitlab.com/gitlab-org/gitlab-shell/internal/command" @@ -62,8 +65,15 @@ func main() { ctx, finished := command.Setup(executable.Name, config) defer finished() - if err = cmd.Execute(ctx); err != nil { + cmdName := reflect.TypeOf(cmd).String() + ctxlog := log.ContextLogger(ctx) + ctxlog.WithFields(log.Fields{"env": env, "command": cmdName}).Info("gitlab-shell: main: executing command") + + if err := cmd.Execute(ctx); err != nil { + ctxlog.WithError(err).Warn("gitlab-shell: main: command execution failed") console.DisplayWarningMessage(err.Error(), readWriter.ErrOut) os.Exit(1) } + + ctxlog.Info("gitlab-shell: main: command executed successfully") } diff --git a/internal/sshd/session.go b/internal/sshd/session.go index b26edc5..b8e8625 100644 --- a/internal/sshd/session.go +++ b/internal/sshd/session.go @@ -4,6 +4,7 @@ import ( "context" "errors" "fmt" + "reflect" "gitlab.com/gitlab-org/labkit/log" "golang.org/x/crypto/ssh" @@ -149,11 +150,17 @@ func (s *session) handleShell(ctx context.Context, req *ssh.Request) uint32 { return 128 } + cmdName := reflect.TypeOf(cmd).String() + ctxlog := log.ContextLogger(ctx) + ctxlog.WithFields(log.Fields{"env": env, "command": cmdName}).Info("session: handleShell: executing command") + if err := cmd.Execute(ctx); err != nil { s.toStderr(ctx, "remote: ERROR: %v\n", err.Error()) return 1 } + ctxlog.Info("session: handleShell: command executed successfully") + return 0 } |