Skip to content

Commit

Permalink
Overwrite old reviews by the same user (#25)
Browse files Browse the repository at this point in the history
---
fel-pr: 25
fel-branch: fel/zabot/25
  • Loading branch information
Zabot committed Jun 3, 2021
1 parent 3ba919d commit 32de792
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 3 deletions.
12 changes: 10 additions & 2 deletions fel/mergeability.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,18 @@ def is_mergeable(gh_repo, pr, upstream):
return False, "Merge conflicts", False

# Check for any reviews with requested changes
reviews = {}
for review in pr.get_reviews():
submitter = review.user.id
try:
if review.submitted_at > reviews[submitter].submitted_at:
reviews[submitter] = review
except KeyError:
reviews[submitter] = review

changes_requested = 0
approved = 0

for review in pr.get_reviews():
for review in reviews.values():
if review.state == 'CHANGES_REQUESTED':
changes_requested += 1
elif review.state == 'APPROVED':
Expand Down
4 changes: 3 additions & 1 deletion test/test_mergeability.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ def test_conflict_merge(gh_repo, pr):
# Landing a pr when changes have been requested
def test_changes_merge(gh_repo, pr):
pr.get_reviews.return_value = [Mock()]
pr.get_reviews()[0].user.id = 1
pr.get_reviews()[0].state = 'CHANGES_REQUESTED'

mergeable, status, wait = is_mergeable(gh_repo, pr, upstream)
Expand Down Expand Up @@ -82,7 +83,8 @@ def test_missing_reviews(gh_repo, ppr):

# Landing a PR to a protected branch with reviews
def test_approved_reviews(gh_repo, ppr):
ppr.get_reviews.return_value = [Mock]
ppr.get_reviews.return_value = [Mock()]
ppr.get_reviews()[0].user.id = 1
ppr.get_reviews()[0].state = 'APPROVED'
ppr.base.repo.get_branch().get_protection().required_pull_request_reviews = Mock()
ppr.base.repo.get_branch().get_protection().required_pull_request_reviews.required_approving_review_count = 1
Expand Down

0 comments on commit 32de792

Please sign in to comment.