1
0
Fork 0
mirror of https://github.com/YunoHost/apps.git synced 2024-09-03 20:06:07 +02:00
This commit is contained in:
tituspijean 2024-08-31 09:48:29 +02:00 committed by GitHub
commit d06acface0
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -8,13 +8,13 @@ from bs4 import BeautifulSoup
from urllib.parse import urljoin from urllib.parse import urljoin
import requests import requests
ITEMS_LIMIT=100
class RefType(Enum): class RefType(Enum):
tags = 1 tags = 1
commits = 2 commits = 2
releases = 3 releases = 3
class GithubAPI: class GithubAPI:
def __init__(self, upstream: str, auth: Optional[tuple[str, str]] = None): def __init__(self, upstream: str, auth: Optional[tuple[str, str]] = None):
self.upstream = upstream.strip("/") self.upstream = upstream.strip("/")
@ -32,7 +32,7 @@ class GithubAPI:
def tags(self) -> list[dict[str, str]]: def tags(self) -> list[dict[str, str]]:
"""Get a list of tags for project.""" """Get a list of tags for project."""
return self.internal_api(f"repos/{self.upstream_repo}/tags") return self.internal_api(f"repos/{self.upstream_repo}/tags?per_page={ITEMS_LIMIT}"
def commits(self) -> list[dict[str, Any]]: def commits(self) -> list[dict[str, Any]]:
"""Get a list of commits for project.""" """Get a list of commits for project."""
@ -40,7 +40,7 @@ class GithubAPI:
def releases(self) -> list[dict[str, Any]]: def releases(self) -> list[dict[str, Any]]:
"""Get a list of releases for project.""" """Get a list of releases for project."""
return self.internal_api(f"repos/{self.upstream_repo}/releases?per_page=100") return self.internal_api(f"repos/{self.upstream_repo}/releases?per_page={ITEMS_LIMIT}"
def url_for_ref(self, ref: str, ref_type: RefType) -> str: def url_for_ref(self, ref: str, ref_type: RefType) -> str:
"""Get a URL for a ref.""" """Get a URL for a ref."""
@ -102,7 +102,7 @@ class GitlabAPI:
def tags(self) -> list[dict[str, str]]: def tags(self) -> list[dict[str, str]]:
"""Get a list of tags for project.""" """Get a list of tags for project."""
return self.internal_api(f"projects/{self.project_id}/repository/tags") return self.internal_api(f"projects/{self.project_id}/repository/tags?per_page={ITEMS_LIMIT}"
def commits(self) -> list[dict[str, Any]]: def commits(self) -> list[dict[str, Any]]:
"""Get a list of commits for project.""" """Get a list of commits for project."""
@ -118,7 +118,7 @@ class GitlabAPI:
def releases(self) -> list[dict[str, Any]]: def releases(self) -> list[dict[str, Any]]:
"""Get a list of releases for project.""" """Get a list of releases for project."""
releases = self.internal_api(f"projects/{self.project_id}/releases") releases = self.internal_api(f"projects/{self.project_id}/releases?per_page={ITEMS_LIMIT}"
retval = [] retval = []
for release in releases: for release in releases:
r = { r = {
@ -186,7 +186,7 @@ class GiteaForgejoAPI:
def tags(self) -> list[dict[str, Any]]: def tags(self) -> list[dict[str, Any]]:
"""Get a list of tags for project.""" """Get a list of tags for project."""
return self.internal_api(f"repos/{self.project_path}/tags") return self.internal_api(f"repos/{self.project_path}/tags?limit={ITEMS_LIMIT}"
def commits(self) -> list[dict[str, Any]]: def commits(self) -> list[dict[str, Any]]:
"""Get a list of commits for project.""" """Get a list of commits for project."""
@ -194,7 +194,7 @@ class GiteaForgejoAPI:
def releases(self) -> list[dict[str, Any]]: def releases(self) -> list[dict[str, Any]]:
"""Get a list of releases for project.""" """Get a list of releases for project."""
return self.internal_api(f"repos/{self.project_path}/releases") return self.internal_api(f"repos/{self.project_path}/releases?limit={ITEMS_LIMIT}"
def url_for_ref(self, ref: str, _: RefType) -> str: def url_for_ref(self, ref: str, _: RefType) -> str:
"""Get a URL for a ref.""" """Get a URL for a ref."""