From eee6d51b401272b9ae4973f367f48b2391570c29 Mon Sep 17 00:00:00 2001 From: idavidov Date: Thu, 27 Jul 2023 14:41:36 +0300 Subject: [PATCH 1/3] issue #145 get all diffs in merge request and not only gitlab default 20 --- pr_agent/git_providers/gitlab_provider.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pr_agent/git_providers/gitlab_provider.py b/pr_agent/git_providers/gitlab_provider.py index 9ee1c0bf..2d35a3f4 100644 --- a/pr_agent/git_providers/gitlab_provider.py +++ b/pr_agent/git_providers/gitlab_provider.py @@ -49,7 +49,7 @@ class GitLabProvider(GitProvider): def _set_merge_request(self, merge_request_url: str): self.id_project, self.id_mr = self._parse_merge_request_url(merge_request_url) self.mr = self._get_merge_request() - self.last_diff = self.mr.diffs.list()[-1] + self.last_diff = self.mr.diffs.list(all=True)[-1] def _get_pr_file_content(self, file_path: str, branch: str) -> str: try: From 99ed9b22a10025afcb3747ead54f2baaef905a31 Mon Sep 17 00:00:00 2001 From: idavidov Date: Thu, 27 Jul 2023 15:39:19 +0300 Subject: [PATCH 2/3] latest documentation suggest get_all not all https://python-gitlab.readthedocs.io/en/stable/api-usage.html#pagination --- pr_agent/git_providers/gitlab_provider.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pr_agent/git_providers/gitlab_provider.py b/pr_agent/git_providers/gitlab_provider.py index 2d35a3f4..4eec78ae 100644 --- a/pr_agent/git_providers/gitlab_provider.py +++ b/pr_agent/git_providers/gitlab_provider.py @@ -49,7 +49,7 @@ class GitLabProvider(GitProvider): def _set_merge_request(self, merge_request_url: str): self.id_project, self.id_mr = self._parse_merge_request_url(merge_request_url) self.mr = self._get_merge_request() - self.last_diff = self.mr.diffs.list(all=True)[-1] + self.last_diff = self.mr.diffs.list(get_all=True)[-1] def _get_pr_file_content(self, file_path: str, branch: str) -> str: try: From 0167003bbc7e1ccb4daa273e15957290deaf55fc Mon Sep 17 00:00:00 2001 From: Ori Kotek Date: Fri, 28 Jul 2023 01:59:10 +0300 Subject: [PATCH 3/3] handle no diffs --- pr_agent/git_providers/gitlab_provider.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/pr_agent/git_providers/gitlab_provider.py b/pr_agent/git_providers/gitlab_provider.py index 4eec78ae..ae303272 100644 --- a/pr_agent/git_providers/gitlab_provider.py +++ b/pr_agent/git_providers/gitlab_provider.py @@ -11,6 +11,8 @@ from pr_agent.config_loader import settings from ..algo.language_handler import is_valid_file from .git_provider import EDIT_TYPE, FilePatchInfo, GitProvider +logger = logging.getLogger() + class GitLabProvider(GitProvider): @@ -49,7 +51,12 @@ class GitLabProvider(GitProvider): def _set_merge_request(self, merge_request_url: str): self.id_project, self.id_mr = self._parse_merge_request_url(merge_request_url) self.mr = self._get_merge_request() - self.last_diff = self.mr.diffs.list(get_all=True)[-1] + try: + self.last_diff = self.mr.diffs.list(get_all=True)[-1] + except IndexError as e: + logger.error(f"Could not get diff for merge request {self.id_mr}") + raise ValueError(f"Could not get diff for merge request {self.id_mr}") from e + def _get_pr_file_content(self, file_path: str, branch: str) -> str: try: