Skip to content

Commit a97619a

Browse files
committed
Improve --sysinfo command to show version data and env variables
1 parent a90fcd5 commit a97619a

File tree

2 files changed

+51
-5
lines changed

2 files changed

+51
-5
lines changed

gpt_engineer/applications/cli/main.py

Lines changed: 27 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -240,13 +240,35 @@ def prompt_yesno() -> bool:
240240
print("Please respond with 'y' or 'n'")
241241

242242

243+
def mask_sensitive_value(value: str) -> str:
244+
"""Mask sensitive values in environment variables."""
245+
if len(value) <= 4:
246+
return "****"
247+
return value[:4] + "****" + value[-4:]
248+
243249
def get_system_info():
250+
# Import here to avoid circular imports
251+
from gpt_engineer.core.version_info import get_version_info
252+
253+
# Get version information
254+
version, install_type = get_version_info()
255+
256+
# Get relevant environment variables
257+
relevant_env_vars = {
258+
key: mask_sensitive_value(value) if any(s in key.lower() for s in ['key', 'token', 'secret', 'password', 'credential'])
259+
else value
260+
for key, value in os.environ.items()
261+
if any(prefix in key.upper() for prefix in ['OPENAI_', 'GPT_', 'PYTHON', 'PATH', 'MODEL'])
262+
}
263+
244264
system_info = {
245-
"os": platform.system(),
246-
"os_version": platform.version(),
247-
"architecture": platform.machine(),
248-
"python_version": sys.version,
249-
"packages": format_installed_packages(get_installed_packages()),
265+
"GPT Engineer Version": f"{version} ({install_type} installation)",
266+
"OS": platform.system(),
267+
"OS Version": platform.version(),
268+
"Architecture": platform.machine(),
269+
"Python Version": sys.version.split()[0],
270+
"Environment Variables": relevant_env_vars,
271+
"Installed Packages": format_installed_packages(get_installed_packages()),
250272
}
251273
return system_info
252274

gpt_engineer/core/version_info.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
"""Module for retrieving version information of gpt-engineer."""
2+
import os
3+
import importlib.metadata
4+
from pathlib import Path
5+
6+
def get_version_info():
7+
"""
8+
Get version information for gpt-engineer.
9+
Returns a tuple of (version, install_type) where install_type is either 'pip' or 'development'.
10+
"""
11+
try:
12+
version = importlib.metadata.version("gpt-engineer")
13+
install_type = "pip"
14+
except importlib.metadata.PackageNotFoundError:
15+
# Check if we're in a development environment (git repo)
16+
root_dir = Path(__file__).parent.parent.parent
17+
if (root_dir / ".git").exists():
18+
version = "development"
19+
install_type = "development"
20+
else:
21+
version = "unknown"
22+
install_type = "unknown"
23+
24+
return version, install_type

0 commit comments

Comments
 (0)