summaryrefslogtreecommitdiff
path: root/cross-project-tests
diff options
context:
space:
mode:
authorStephen Tozer <stephen.tozer@sony.com>2024-08-22 10:56:28 +0100
committerGitHub <noreply@github.com>2024-08-22 10:56:28 +0100
commit57dc09341e5eef758b1abce78822c51069157869 (patch)
tree00f4a83a83a5ba3915deb7a6a49faec6a61667d5 /cross-project-tests
parent716f7e2d18d03039c13ad90d5b3cb4f65c413b74 (diff)
[Dexter] Sanitize user details from git repo URL in dexter --version (#105533)
Currently the output of dexter --version contains the raw output of `git remote get-url origin`, which may contain a username and password. This patch adds a small change to remove these from the output string. A similar patch for LLVM's default version string* also removes the git URL altogether unless opted-in to; it's not clear whether this is a necessary or desirable step yet, but if so we can trivially remove the URL from Dexter as well. *PR here: https://github.com/llvm/llvm-project/pull/105220
Diffstat (limited to 'cross-project-tests')
-rw-r--r--cross-project-tests/debuginfo-tests/dexter/dex/utils/Version.py15
1 files changed, 14 insertions, 1 deletions
diff --git a/cross-project-tests/debuginfo-tests/dexter/dex/utils/Version.py b/cross-project-tests/debuginfo-tests/dexter/dex/utils/Version.py
index 505aebaebc4f..89ab5c2dbd72 100644
--- a/cross-project-tests/debuginfo-tests/dexter/dex/utils/Version.py
+++ b/cross-project-tests/debuginfo-tests/dexter/dex/utils/Version.py
@@ -9,10 +9,23 @@
import os
from subprocess import CalledProcessError, check_output, STDOUT
import sys
+from urllib.parse import urlparse, urlunparse
from dex import __version__
+def sanitize_repo_url(repo):
+ parsed = urlparse(repo)
+ # No username present, repo URL is fine.
+ if parsed.username is None:
+ return repo
+ # Otherwise, strip the login details from the URL by reconstructing the netloc from just `<hostname>(:<port>)?`.
+ sanitized_netloc = parsed.hostname
+ if parsed.port:
+ sanitized_netloc = f"{sanitized_netloc}:{parsed.port}"
+ return urlunparse(parsed._replace(netloc=sanitized_netloc))
+
+
def _git_version():
dir_ = os.path.dirname(__file__)
try:
@@ -28,7 +41,7 @@ def _git_version():
.rstrip()
.decode("utf-8")
)
- repo = (
+ repo = sanitize_repo_url(
check_output(
["git", "remote", "get-url", "origin"], stderr=STDOUT, cwd=dir_
)