Add option to disable hiding of secrets (#460)

This commit is contained in:
Cat™
2021-01-12 06:28:45 +00:00
committed by GitHub
parent a9b3d6426b
commit 80a245652e
4 changed files with 15 additions and 7 deletions

View File

@@ -38,12 +38,13 @@ func init() {
}
// WithJobLogger attaches a new logger to context that is aware of steps
func WithJobLogger(ctx context.Context, jobName string, secrets map[string]string) context.Context {
func WithJobLogger(ctx context.Context, jobName string, secrets map[string]string, insecureSecrets bool) context.Context {
mux.Lock()
defer mux.Unlock()
formatter := new(stepLogFormatter)
formatter.color = colors[nextColor%len(colors)]
formatter.secrets = secrets
formatter.insecureSecrets = insecureSecrets
nextColor++
logger := logrus.New()
@@ -56,16 +57,19 @@ func WithJobLogger(ctx context.Context, jobName string, secrets map[string]strin
}
type stepLogFormatter struct {
color int
secrets map[string]string
color int
secrets map[string]string
insecureSecrets bool
}
func (f *stepLogFormatter) Format(entry *logrus.Entry) ([]byte, error) {
b := &bytes.Buffer{}
// Replace any secrets in the entry
for _, v := range f.secrets {
entry.Message = strings.ReplaceAll(entry.Message, v, "***")
// Replace any secrets in the entry if insecure-secrets flag is not used
if !f.insecureSecrets {
for _, v := range f.secrets {
entry.Message = strings.ReplaceAll(entry.Message, v, "***")
}
}
if f.isColored(entry) {