From 133e8a44752178aa971e79b4ddae527ef3af5299 Mon Sep 17 00:00:00 2001 From: Markus Wolf Date: Thu, 6 May 2021 15:55:23 +0200 Subject: [PATCH] Write git clone progress only if terminal is a TTY (#670) --- act/common/git.go | 37 +++++++++++++++++-------------------- 1 file changed, 17 insertions(+), 20 deletions(-) diff --git a/act/common/git.go b/act/common/git.go index db98f81f..a066856b 100644 --- a/act/common/git.go +++ b/act/common/git.go @@ -17,6 +17,7 @@ import ( "github.com/go-git/go-git/v5/plumbing" "github.com/go-git/go-git/v5/plumbing/transport/http" "github.com/go-ini/ini" + "github.com/mattn/go-isatty" log "github.com/sirupsen/logrus" ) @@ -238,29 +239,25 @@ func CloneIfRequired(ctx context.Context, refName plumbing.ReferenceName, input r, err := git.PlainOpen(input.Dir) if err != nil { var progressWriter io.Writer - if entry, ok := logger.(*log.Entry); ok { - progressWriter = entry.WriterLevel(log.DebugLevel) - } else if lgr, ok := logger.(*log.Logger); ok { - progressWriter = lgr.WriterLevel(log.DebugLevel) - } else { - log.Errorf("Unable to get writer from logger (type=%T)", logger) - progressWriter = os.Stdout + if isatty.IsTerminal(os.Stdout.Fd()) || isatty.IsCygwinTerminal(os.Stdout.Fd()) { + if entry, ok := logger.(*log.Entry); ok { + progressWriter = entry.WriterLevel(log.DebugLevel) + } else if lgr, ok := logger.(*log.Logger); ok { + progressWriter = lgr.WriterLevel(log.DebugLevel) + } else { + log.Errorf("Unable to get writer from logger (type=%T)", logger) + progressWriter = os.Stdout + } } - var cloneOptions git.CloneOptions + cloneOptions := git.CloneOptions{ + URL: input.URL, + Progress: progressWriter, + } if input.Token != "" { - cloneOptions = git.CloneOptions{ - URL: input.URL, - Progress: progressWriter, - Auth: &http.BasicAuth{ - Username: "token", - Password: input.Token, - }, - } - } else { - cloneOptions = git.CloneOptions{ - URL: input.URL, - Progress: progressWriter, + cloneOptions.Auth = &http.BasicAuth{ + Username: "token", + Password: input.Token, } }