import requests from config import GITEA_TOKEN, GITEA_SERVER_URL, GITEA_REPOSITORY, PR_NUMBER def _headers(): return {"Authorization": f"token {GITEA_TOKEN}", "Content-Type": "application/json"} def _api(path: str) -> str: return f"{GITEA_SERVER_URL.rstrip('/')}/api/v1{path}" def get_pr_diff() -> str: """取得 PR 的 git diff 內容""" url = _api(f"/repos/{GITEA_REPOSITORY}/pulls/{PR_NUMBER}.diff") resp = requests.get(url, headers=_headers(), timeout=60) resp.raise_for_status() return resp.text def post_comment(body: str) -> dict: """在 PR 發布 comment""" url = _api(f"/repos/{GITEA_REPOSITORY}/issues/{PR_NUMBER}/comments") resp = requests.post(url, headers=_headers(), json={"body": body}, timeout=30) resp.raise_for_status() return resp.json()