fix: prevent Gitea token corruption from masked config values, add real connection test
This commit is contained in:
@@ -78,6 +78,7 @@ async def sync_status(
|
||||
):
|
||||
try:
|
||||
from app.config.settings import ConfigManager
|
||||
import httpx as _httpx
|
||||
cfg = ConfigManager()
|
||||
base_url = cfg.get("Gitea", "base_url", fallback="").strip()
|
||||
owner = cfg.get("Gitea", "owner", fallback="").strip()
|
||||
@@ -85,6 +86,22 @@ async def sync_status(
|
||||
token = cfg.get("Gitea", "token", fallback="").strip()
|
||||
enabled = bool(base_url and owner and repo and token)
|
||||
repo_url = f"{base_url}/{owner}/{repo}" if enabled else ""
|
||||
return {"enabled": enabled, "repo_url": repo_url}
|
||||
except Exception:
|
||||
return {"enabled": False, "repo_url": ""}
|
||||
|
||||
connected = False
|
||||
error = ""
|
||||
if enabled:
|
||||
try:
|
||||
async with _httpx.AsyncClient(timeout=10) as client:
|
||||
resp = await client.get(
|
||||
f"{base_url}/api/v1/repos/{owner}/{repo}",
|
||||
headers={"Authorization": f"token {token}"},
|
||||
)
|
||||
connected = resp.status_code == 200
|
||||
if not connected:
|
||||
error = f"Gitea 返回 {resp.status_code}"
|
||||
except Exception as e:
|
||||
error = str(e)
|
||||
|
||||
return {"enabled": enabled, "connected": connected, "repo_url": repo_url, "error": error}
|
||||
except Exception as e:
|
||||
return {"enabled": False, "connected": False, "repo_url": "", "error": str(e)}
|
||||
|
||||
Reference in New Issue
Block a user