commit:     0397b96aa7679bbfa64bdd0e4715a741c800bc11
Author:     Thomas Bracht Laumann Jespersen <t <AT> laumann <DOT> xyz>
AuthorDate: Sat Mar  7 07:28:07 2026 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Mar  7 10:39:36 2026 +0000
URL:        
https://gitweb.gentoo.org/proj/repo-mirror-ci.git/commit/?id=0397b96a

Properly support paginated GET endpoints

Signed-off-by: Thomas Bracht Laumann Jespersen <t <AT> laumann.xyz>
Part-of: https://github.com/gentoo/repo-mirror-ci/pull/18
Closes: https://github.com/gentoo/repo-mirror-ci/pull/18
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 pull-request/codebergapi.py | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/pull-request/codebergapi.py b/pull-request/codebergapi.py
index 3c591e4..0bc296a 100644
--- a/pull-request/codebergapi.py
+++ b/pull-request/codebergapi.py
@@ -63,16 +63,16 @@ class CodebergAPI:
             f"{self.repos_baseurl}/pulls/{pr_id}", json=({"labels": labels})
         )
 
-    def labels(self) -> list[dict]:
-        return self.session.get(f"{self.repos_baseurl}/labels").json()
+    def labels(self) -> Generator[None, dict, None]:
+        return self._get_paginated(f"{self.repos_baseurl}/labels")
 
-    def commits(self, pr_id: int) -> list[dict]:
+    def commits(self, pr_id: int) -> Generator[None, dict, None]:
         # 
https://codeberg.org/api/swagger#/repository/repoGetPullRequestCommits
-        return 
self.session.get(f"{self.repos_baseurl}/pulls/{pr_id}/commits").json()
+        return 
self._get_paginated(f"{self.repos_baseurl}/pulls/{pr_id}/commits")
 
-    def commit_statuses(self, sha):
+    def commit_statuses(self, sha) -> Generator[None, dict, None]:
         # /repos/{owner}/{repo}/statuses/{sha}
-        return self.session.get(f"{self.repos_baseurl}/statuses/{sha}").json()
+        return self._get_paginated(f"{self.repos_baseurl}/statuses/{sha}")
 
     def commit_set_status(
         self, sha, state, description=None, target_url=None, context=None
@@ -86,10 +86,10 @@ class CodebergAPI:
         }
         self.session.post(f"{self.repos_baseurl}/statuses/{sha}", json=body)
 
-    def files(self, pr_id: int) -> list[dict]:
-        return 
self.session.get(f"{self.repos_baseurl}/pulls/{pr_id}/files").json()
+    def files(self, pr_id: int) -> Generator[None, dict, None]:
+        return self._get_paginated(f"{self.repos_baseurl}/pulls/{pr_id}/files")
 
-    def get_comments(self, pr_id: int) -> list[dict]:
+    def get_comments(self, pr_id: int) -> Generator[None, dict, None]:
         return 
self._get_paginated(f"{self.repos_baseurl}/issues/{pr_id}/comments")
 
     def create_comment(self, pr_id: int, comment: str) -> None:

Reply via email to