gitutil: use BuildKit urlutil.RedactCredentials for remote URLs
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
This commit is contained in:
+33
@@ -0,0 +1,33 @@
|
||||
package urlutil
|
||||
|
||||
import (
|
||||
"net/url"
|
||||
)
|
||||
|
||||
const mask = "xxxxx"
|
||||
|
||||
// RedactCredentials takes a URL and redacts username and password from it.
|
||||
// e.g. "https://user:password@host.tld/path.git" will be changed to
|
||||
// "https://xxxxx:xxxxx@host.tld/path.git".
|
||||
func RedactCredentials(s string) string {
|
||||
ru, err := url.Parse(s)
|
||||
if err != nil {
|
||||
return s // string is not a URL, just return it
|
||||
}
|
||||
var (
|
||||
hasUsername bool
|
||||
hasPassword bool
|
||||
)
|
||||
if ru.User != nil {
|
||||
hasUsername = len(ru.User.Username()) > 0
|
||||
_, hasPassword = ru.User.Password()
|
||||
}
|
||||
if hasUsername && hasPassword {
|
||||
ru.User = url.UserPassword(mask, mask)
|
||||
} else if hasUsername {
|
||||
ru.User = url.User(mask)
|
||||
} else if hasPassword {
|
||||
ru.User = url.UserPassword(ru.User.Username(), mask)
|
||||
}
|
||||
return ru.String()
|
||||
}
|
||||
Vendored
+1
@@ -743,6 +743,7 @@ github.com/moby/buildkit/util/tracing/delegated
|
||||
github.com/moby/buildkit/util/tracing/detect
|
||||
github.com/moby/buildkit/util/tracing/env
|
||||
github.com/moby/buildkit/util/tracing/otlptracegrpc
|
||||
github.com/moby/buildkit/util/urlutil
|
||||
github.com/moby/buildkit/version
|
||||
# github.com/moby/docker-image-spec v1.3.1
|
||||
## explicit; go 1.18
|
||||
|
||||
Reference in New Issue
Block a user