import os import requests class GiteaClient: """ Emma sin primære tilgang til kodebasen via Gitea. Token fra GITEA_TOKEN env eller Secret Manager. """ def __init__(self, base_url: str = "http://34.170.51.84:3000", token: str = None): self.base_url = base_url.rstrip("/") self.token = token or os.environ.get("GITEA_TOKEN", "") self.headers = {"Authorization": f"token {self.token}", "Content-Type": "application/json"} def list_repos(self, owner: str = "chris") -> list: r = requests.get(f"{self.base_url}/api/v1/repos/search?owner={owner}&limit=50", headers=self.headers, timeout=10) r.raise_for_status() return r.json().get("data", []) def get_file(self, owner: str, repo: str, path: str, branch: str = "main") -> str: r = requests.get(f"{self.base_url}/api/v1/repos/{owner}/{repo}/raw/{path}?ref={branch}", headers=self.headers, timeout=10) r.raise_for_status() return r.text def list_branches(self, owner: str, repo: str) -> list: r = requests.get(f"{self.base_url}/api/v1/repos/{owner}/{repo}/branches", headers=self.headers, timeout=10) r.raise_for_status() return [b["name"] for b in r.json()] def health_check(self) -> bool: try: r = requests.get(f"{self.base_url}/api/v1/version", timeout=5) return r.status_code == 200 except Exception: return False