fix: persist Gitea token to config file instead of clearing it on save
This commit is contained in:
+8
-13
@@ -104,20 +104,15 @@ class ConfigManager:
|
||||
logger.info(f"已创建默认配置文件: {self.config_file}")
|
||||
|
||||
def save_config(self) -> None:
|
||||
"""保存配置到文件(敏感字段不写入文件)"""
|
||||
# 保存前临时清空敏感字段,避免写入文件
|
||||
"""保存配置到文件(API 密钥不写入文件,Gitea token 需要持久化)"""
|
||||
# 保存前临时清空 API 密钥,避免写入文件(这些从 .env 读取)
|
||||
saved_keys = {}
|
||||
sensitive_fields = [
|
||||
('API', 'api_key'),
|
||||
('API', 'secret_key'),
|
||||
('Gitea', 'token'),
|
||||
]
|
||||
for section, option in sensitive_fields:
|
||||
for option in ('api_key', 'secret_key'):
|
||||
try:
|
||||
saved_keys[(section, option)] = self.config.get(section, option, fallback='')
|
||||
saved_keys[option] = self.config.get('API', option, fallback='')
|
||||
except Exception:
|
||||
saved_keys[(section, option)] = ''
|
||||
self.config.set(section, option, '')
|
||||
saved_keys[option] = ''
|
||||
self.config.set('API', option, '')
|
||||
|
||||
try:
|
||||
with open(self.config_file, 'w', encoding='utf-8') as f:
|
||||
@@ -125,9 +120,9 @@ class ConfigManager:
|
||||
logger.info(f"配置已保存到: {self.config_file}")
|
||||
finally:
|
||||
# 恢复内存中的值(即使写入失败也恢复)
|
||||
for (section, option), val in saved_keys.items():
|
||||
for option, val in saved_keys.items():
|
||||
if val:
|
||||
self.config.set(section, option, val)
|
||||
self.config.set('API', option, val)
|
||||
|
||||
def get(self, section: str, option: str, fallback: Any = None) -> Any:
|
||||
"""获取配置值"""
|
||||
|
||||
Reference in New Issue
Block a user