From 2f8c96e596d0cb609d7f0a716d9cb5815811ab68 Mon Sep 17 00:00:00 2001 From: Meni Yakove Date: Fri, 25 Apr 2025 09:05:31 +0300 Subject: [PATCH] Mark PR as approverd if number os reviewer is less then minimum lgtm case that minimum lgtm required for PR to be approved is 2 for example and the PR have only one reviewer and one lgtm, then the PR will be approved since it will never get another lgtm to met the minimum lgtm requirement. --- webhook_server_container/libs/github_api.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/webhook_server_container/libs/github_api.py b/webhook_server_container/libs/github_api.py index 39bcc58c..dd58e8cb 100644 --- a/webhook_server_container/libs/github_api.py +++ b/webhook_server_container/libs/github_api.py @@ -2131,11 +2131,19 @@ def _check_if_pr_approved(self, labels: list[str]) -> str: error += f"Missing approved from approvers: {', '.join(missing_approvers)}\n" if lgtm_count < self.minimum_lgtm: - all_reviewers = self.all_reviewers.copy() - if self.parent_committer in all_reviewers: - all_reviewers.pop(all_reviewers.index(self.parent_committer)) + if lgtm_count == len(self.all_reviewers): + self.logger.debug( + f"{self.log_prefix} minimum_lgtm is {self.minimum_lgtm}, but number of reviewers is {len(self.all_reviewers)}. PR approved." + ) + else: + all_reviewers = self.all_reviewers.copy() + if self.parent_committer in all_reviewers: + all_reviewers.pop(all_reviewers.index(self.parent_committer)) - error += f"Missing lgtm from reviewers. Minimum {self.minimum_lgtm} required. Reviewers: {', '.join(all_reviewers)}.\n" + error += ( + "Missing lgtm from reviewers. " + f"Minimum {self.minimum_lgtm} required. Reviewers: {', '.join(all_reviewers)}.\n" + ) return error