🐛 Fix: Debug-Helper für Token in routes.py hinzugefügt
docker-build-and-push / build (push) Successful in 17s
docker-build-and-push / build (push) Successful in 17s
This commit is contained in:
+21
-25
@@ -1,9 +1,8 @@
|
|||||||
import httpx
|
import httpx
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from fastapi import APIRouter, Depends
|
from fastapi import APIRouter, Depends, HTTPException
|
||||||
from .git_manager import clone_repo, push_changes
|
from .git_manager import clone_repo, push_changes
|
||||||
from .changelog_gen import generate_changelog
|
from .changelog_gen import generate_changelog
|
||||||
from .main import get_token
|
|
||||||
|
|
||||||
router = APIRouter()
|
router = APIRouter()
|
||||||
|
|
||||||
@@ -13,33 +12,30 @@ async def health_check():
|
|||||||
return {"status": "ok"}
|
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")
|
@router.get("/repos")
|
||||||
async def list_repos():
|
async def list_repos():
|
||||||
"""Listet Repositories von Gitea auf."""
|
"""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()
|
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:
|
async with httpx.AsyncClient() as client:
|
||||||
resp = await client.get(GITEE_URL, headers=headers)
|
resp = await client.get(url, headers=headers)
|
||||||
return resp.json()
|
if resp.status_code != 200:
|
||||||
|
return {"error": resp.text[:500]} # Fehlermeldung zurückgeben
|
||||||
|
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}
|
|
||||||
Reference in New Issue
Block a user