Fix multiline secrets replacer (#700)

* Fix multiline secrets replacer

* Add tests
This commit is contained in:
Philipp 2022-01-16 22:57:37 +01:00 committed by GitHub
parent 2f780193b1
commit 366701fde7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 11 additions and 0 deletions

View file

@ -25,6 +25,9 @@ func NewSecretsReplacer(secrets []string) *strings.Replacer {
}
// since replacer is executed on each line we have to split multi-line-secrets
for _, part := range strings.Split(old, "\n") {
if len(part) == 0 {
continue
}
oldnew = append(oldnew, part)
oldnew = append(oldnew, "********")
}

View file

@ -23,6 +23,14 @@ func TestNewSecretsReplacer(t *testing.T) {
log: "start log\ndone\nnow\nan\nmulti line secret!! ;)",
secrets: []string{"an\nmulti line secret!!"},
expect: "start log\ndone\nnow\n********\n******** ;)",
}, {
log: "start log\ndone\nnow\nan\nmulti line secret!! ;)",
secrets: []string{"Test\nwith\n\ntwo new lines"},
expect: "start log\ndone\nnow\nan\nmulti line secret!! ;)",
}, {
log: "start log\ndone\nnow\nan\nmulti line secret!! ;)\nwith\ntwo\n\nnewlines",
secrets: []string{"an\nmulti line secret!!", "two\n\nnewlines"},
expect: "start log\ndone\nnow\n********\n******** ;)\nwith\n********\n\n********",
}}
for _, c := range tc {