From 115bd9897616896a36fcd1401741c3449a545935 Mon Sep 17 00:00:00 2001 From: KI-Sparringpartner Date: Mon, 3 Aug 2026 14:26:13 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20Fix:=20Debug-Helper=20f=C3=BCr?= =?UTF-8?q?=20Token=20in=20routes.py=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/routes.py | 46 +++++++++++++++++++++------------------------- 1 file changed, 21 insertions(+), 25 deletions(-) diff --git a/app/routes.py b/app/routes.py index 3c7f3a1..495dde1 100644 --- a/app/routes.py +++ b/app/routes.py @@ -1,9 +1,8 @@ import httpx from pathlib import Path -from fastapi import APIRouter, Depends +from fastapi import APIRouter, Depends, HTTPException from .git_manager import clone_repo, push_changes from .changelog_gen import generate_changelog -from .main import get_token router = APIRouter() @@ -13,33 +12,30 @@ async def health_check(): return {"status": "ok"} +def get_token_or_default(): + """Sichert Token oder wirft Fehler.""" + from .main import ACCESS_TOKEN + if not ACCESS_TOKEN: + raise HTTPException(status_code=503, detail="ACCESS_TOKEN nicht gesetzt") + return ACCESS_TOKEN + + @router.get("/repos") async def list_repos(): """Listet Repositories von Gitea auf.""" - GITEE_URL = "https://git.carabella.ch/api/v1/user/repos" + from .main import GITEE_URL, get_token token = get_token() - headers = {"Authorization": f"token {token}"} if token else {} + if not token: + # Debug-Info! + return {"error": "Kein Token vorhanden!", "hint": "Setze ACCESS_TOKEN Umgebungsvariable"} + + url = f"{GITEE_URL.rstrip('/')}/api/v1/user/repos" + + headers = {"Authorization": f"token {token}"} async with httpx.AsyncClient() as client: - resp = await client.get(GITEE_URL, headers=headers) - return resp.json() - - -@router.post("/subscribe") -async def subscribe_repo(repo_url: str, target_name: str, token_provided: str = None): - """Abonniert und klont ein Repository.""" - # Wenn kein Token übergibst → nutz den DEFAULT aus .env oder Umgebung - effective_token = token_provided or get_token() - - target_dir = Path("/projects") / (target_name or "imported-repo") - - result = clone_repo(repo_url, target_dir, token=effective_token) - - if not result["success"]: - return {"error": result.get("error"), "success": False} - - # Optional: File-Watcher starten & Changelog erzeugen - generate_changelog(target_dir) - - return {"message": f"✅ {target_name} geklont!", "path": str(target_dir), "success": True} \ No newline at end of file + resp = await client.get(url, headers=headers) + if resp.status_code != 200: + return {"error": resp.text[:500]} # Fehlermeldung zurückgeben + return resp.json() \ No newline at end of file