41 lines
1.1 KiB
Python
41 lines
1.1 KiB
Python
import httpx
|
|
from pathlib import Path
|
|
from fastapi import APIRouter, Depends, HTTPException
|
|
from .git_manager import clone_repo, push_changes
|
|
from .changelog_gen import generate_changelog
|
|
|
|
router = APIRouter()
|
|
|
|
|
|
@router.get("/health")
|
|
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."""
|
|
from .main import GITEE_URL, get_token
|
|
token = get_token()
|
|
|
|
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(url, headers=headers)
|
|
if resp.status_code != 200:
|
|
return {"error": resp.text[:500]} # Fehlermeldung zurückgeben
|
|
return resp.json() |