(updates: Dict[str, str])
| 898 | return dict(values) |
| 899 | |
| 900 | |
| 901 | def _env_edit_payload() -> List[Dict[str, str]]: |
| 902 | file_values = _read_env_file() |
| 903 | sensitive = ("KEY", "TOKEN", "SECRET", "PASSWORD") |
| 904 | rows = [] |
| 905 | for key in EDITABLE_ENV_KEYS: |
| 906 | raw_value = file_values.get(key, os.environ.get(key, "")) |
| 907 | rows.append( |
| 908 | { |
| 909 | "key": key, |
| 910 | "value": "***" if any(part in key for part in sensitive) and raw_value else str(raw_value), |
| 911 | "is_secret": bool(any(part in key for part in sensitive)), |
| 912 | "present": bool(str(raw_value).strip()), |
| 913 | } |
| 914 | ) |
| 915 | return rows |
| 916 | |
| 917 | |
| 918 | def _serialize_env_value(value: Any) -> str: |
| 919 | text = str(value or "").strip() |
| 920 | if not text: |
| 921 | return "" |
| 922 | if any(char.isspace() for char in text) or "#" in text: |
| 923 | escaped = text.replace('"', '\\"') |
| 924 | return f'"{escaped}"' |
| 925 | return text |
| 926 |
no test coverage detected