This commit is contained in:
+6
-5
@@ -1,18 +1,19 @@
|
||||
from typing import List
|
||||
from urllib.parse import urljoin
|
||||
|
||||
import requests
|
||||
from pydantic import parse_obj_as
|
||||
from pydantic import TypeAdapter
|
||||
|
||||
from .models import GiteaRepository
|
||||
|
||||
REPOSITORIES_ADAPTER = TypeAdapter(list[GiteaRepository])
|
||||
|
||||
|
||||
class GiteaApi:
|
||||
def __init__(self, endpoint: str, token: str):
|
||||
self._endpoint = endpoint
|
||||
self._token = token
|
||||
|
||||
def get_repositories(self, page_size=10) -> List[GiteaRepository]:
|
||||
def get_repositories(self, page_size=10) -> list[GiteaRepository]:
|
||||
"""
|
||||
For mirroring input user is not important.
|
||||
"""
|
||||
@@ -24,7 +25,7 @@ class GiteaApi:
|
||||
r = session.get(
|
||||
urljoin(
|
||||
self._endpoint,
|
||||
f"/api/v1/user/repos",
|
||||
"/api/v1/user/repos",
|
||||
),
|
||||
params={"limit": page_size, "page": page_id},
|
||||
)
|
||||
@@ -36,7 +37,7 @@ class GiteaApi:
|
||||
break
|
||||
else:
|
||||
page_id += 1
|
||||
cur_repos = parse_obj_as(List[GiteaRepository], repos_data)
|
||||
cur_repos = REPOSITORIES_ADAPTER.validate_python(repos_data)
|
||||
for repo in cur_repos:
|
||||
all_repos[repo.repo_id] = repo
|
||||
return list(all_repos.values())
|
||||
|
||||
Reference in New Issue
Block a user