feat. Enforce repo review config
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import base64
|
||||
from dataclasses import dataclass
|
||||
from typing import Any
|
||||
from urllib.parse import quote
|
||||
@@ -95,3 +96,24 @@ class GiteaClient:
|
||||
encoded_name = quote(name, safe="")
|
||||
payload = self._request("GET", f"/api/v1/repos/{encoded_owner}/{encoded_name}/issues/{pr_number}/comments")
|
||||
return list(payload)
|
||||
|
||||
def get_file_content(self, repo: str, path: str, *, ref: str) -> str | None:
|
||||
owner, name = self.split_repo(repo)
|
||||
encoded_owner = quote(owner, safe="")
|
||||
encoded_name = quote(name, safe="")
|
||||
encoded_path = quote(path, safe="")
|
||||
try:
|
||||
payload = self._request(
|
||||
"GET",
|
||||
f"/api/v1/repos/{encoded_owner}/{encoded_name}/contents/{encoded_path}?ref={quote(ref, safe='')}",
|
||||
)
|
||||
except httpx.HTTPStatusError as exc:
|
||||
if exc.response.status_code == 404:
|
||||
return None
|
||||
raise
|
||||
content = payload.get("content")
|
||||
encoding = payload.get("encoding")
|
||||
if not isinstance(content, str) or encoding != "base64":
|
||||
return None
|
||||
decoded = base64.b64decode(content.encode("ascii"))
|
||||
return decoded.decode("utf-8", errors="ignore")
|
||||
|
||||
Reference in New Issue
Block a user