Skip to content

Commit 495de72

Browse files
committed
fix: safely strip newlines from secrets and improve readability #789
1 parent 543eb98 commit 495de72

File tree

1 file changed

+13
-3
lines changed

1 file changed

+13
-3
lines changed

src/config/settings.py

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,15 +47,24 @@ def secret(key, default=undefined, **kwargs):
4747
path = Path(file)
4848
try:
4949
if path.is_absolute():
50-
return Config(RepositorySecret(path.parent))(path.stem, default, **kwargs)
51-
return Config(RepositorySecret())(file, default, **kwargs)
50+
secret_value = Config(RepositorySecret(path.parent))(
51+
path.stem,
52+
default,
53+
**kwargs,
54+
)
55+
else:
56+
secret_value = Config(RepositorySecret())(file, default, **kwargs)
5257
except (
5358
FileNotFoundError,
5459
IsADirectoryError,
5560
UndefinedValueError,
5661
) as err:
5762
msg = f"File from {key} not found. Please check the path and filename."
5863
raise UndefinedValueError(msg) from err
64+
else:
65+
if isinstance(secret_value, str):
66+
return secret_value.strip()
67+
return secret_value
5968

6069

6170
# Quick-start development settings - unsuitable for production
@@ -368,7 +377,8 @@ def secret(key, default=undefined, **kwargs):
368377
STEAM_API_KEY = config(
369378
"STEAM_API_KEY",
370379
default=secret(
371-
"STEAM_API_KEY_FILE", "",
380+
"STEAM_API_KEY_FILE",
381+
"",
372382
), # Generate default key https://steamcommunity.com/dev/apikey
373383
)
374384

0 commit comments

Comments
 (0)