mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-21 10:47:03 +00:00
[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
This commit is contained in:
parent
716f7e2d18
commit
57dc09341e
@ -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_
|
||||
)
|
||||
|
Loading…
x
Reference in New Issue
Block a user