summaryrefslogtreecommitdiff
path: root/git/repo/base.py
diff options
context:
space:
mode:
authorMichael Mercier <michael.mercier@ryax.tech>2021-03-11 18:46:34 +0100
committerMichael Mercier <michael.mercier@ryax.tech>2021-03-11 18:46:34 +0100
commit3a4fc6abfb3b39237f557372262ac79f45b6a9fa (patch)
treefadc8e0b68149c926aa2c1d4bac845c9dcf63b90 /git/repo/base.py
parent20f4a9d49b466a18f1af1fdfb480bc4520a4cdc2 (diff)
downloadgitpython-3a4fc6abfb3b39237f557372262ac79f45b6a9fa.tar.gz
Replace password in URI by stars if present + test
Diffstat (limited to 'git/repo/base.py')
-rw-r--r--git/repo/base.py8
1 files changed, 7 insertions, 1 deletions
diff --git a/git/repo/base.py b/git/repo/base.py
index 8f1ef0a6..44e3f859 100644
--- a/git/repo/base.py
+++ b/git/repo/base.py
@@ -969,7 +969,13 @@ class Repo(object):
handle_process_output(proc, None, progress.new_message_handler(), finalize_process, decode_streams=False)
else:
(stdout, stderr) = proc.communicate()
- log.debug("Cmd(%s)'s unused stdout: %s", getattr(proc, 'args', ''), stdout)
+ cmdline = getattr(proc, 'args', '')
+ uri = cmdline[-2]
+ if "://" in uri and "@" in uri:
+ cred = uri.split("://")[1].split("@")[0].split(":")
+ if len(cred) == 2:
+ cmdline[-2] = uri.replace(cred[1], "******")
+ log.debug("Cmd(%s)'s unused stdout: %s", cmdline, stdout)
finalize_process(proc, stderr=stderr)
# our git command could have a different working dir than our actual