From e14616b2fb9a7458f4739c8c4212995c349e4b03 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Thu, 8 Jun 2023 10:03:26 +0200 Subject: [PATCH] [IMP] runbot_merge: add support for draft check 1cea247e6ce6b8add5bca06634655e43a53024dd missed the update of the `draft` flag, add support for it. Fixes #753 --- runbot_merge/models/pull_requests.py | 9 ++++++++- runbot_merge/tests/test_basic.py | 7 ++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/runbot_merge/models/pull_requests.py b/runbot_merge/models/pull_requests.py index 47ea4001..76ebb427 100644 --- a/runbot_merge/models/pull_requests.py +++ b/runbot_merge/models/pull_requests.py @@ -143,10 +143,17 @@ All substitutions are tentatively applied sequentially to the input. }, 'sender': {'login': self.project_id.github_prefix}, }) + edit2 = '' + if pr_id.draft != pr['draft']: + edit2 = controllers.handle_pr(self.env, { + 'action': 'converted_to_draft' if pr['draft'] else 'ready_for_review', + 'pull_request': pr, + 'sender': {'login': self.project_id.github_prefix} + }) + '. ' feedback({ 'repository': pr_id.repository.id, 'pull_request': number, - 'message': f"{edit}. {sync}.", + 'message': f"{edit}. {edit2}{sync}.", }) return diff --git a/runbot_merge/tests/test_basic.py b/runbot_merge/tests/test_basic.py index ea5dd098..c15925b1 100644 --- a/runbot_merge/tests/test_basic.py +++ b/runbot_merge/tests/test_basic.py @@ -2520,6 +2520,7 @@ Please check and re-approve. 'state': 'ready', 'message': "Something else", 'target': other.id, + 'draft': True, }) with repo: pr.post_comment('hansen check') @@ -2528,7 +2529,11 @@ Please check and re-approve. assert pr_id.head == c2 assert pr_id.message == 'title\n\nbody' # the commit's message was used for the PR assert pr_id.target.name == 'master' - assert pr.comments[-1] == (users['user'], f"Updated target, squash, message. Updated to {c2}.") + assert not pr_id.draft + assert pr.comments[-1] == ( + users['user'], + f"Updated target, squash, message. Updated {pr_id.display_name} to ready. Updated to {c2}." + ) def test_update_closed(self, env, repo): with repo: