@@ -259,14 +259,17 @@ def merge_on_success(github_repo, local_repo, pull_request):
259259
260260 # TODO(bkonyi): Handle case where Flutter tree is red and we're trying to
261261 # merge into flutter/flutter.
262- should_merge = wait_for_status (commit )
262+ should_merge = wait_for_status (pull_request , commit )
263263 if should_merge :
264- pull_request .create_issue_comment ('Checks successful, automatically merging.' )
265- merge_status = pull_request .merge (merge_method = 'rebase' ).merged
266- if not merge_status :
267- print_error ('Merge failed! Aborting roll.' )
268- sys .exit (1 )
269- print_status ('Merge was successful!' )
264+ if not pull_request .is_merged ():
265+ pull_request .create_issue_comment ('Checks successful, automatically merging.' )
266+ merge_status = pull_request .merge (merge_method = 'squash' ).merged
267+ if not merge_status :
268+ print_error ('Merge failed! Aborting roll.' )
269+ sys .exit (1 )
270+ print_status ('Merge was successful!' )
271+ else :
272+ print_status ('Manual merge was performed.' )
270273 else :
271274 cleanup_pr (github_repo , pull_request , 'Checks failed' )
272275 sys .exit (1 )
@@ -300,7 +303,7 @@ def is_only_engine_build_failing(commit):
300303 return True
301304
302305
303- def wait_for_status (commit ):
306+ def wait_for_status (pull_request , commit ):
304307 if FLAG_skip_wait_for_artifacts :
305308 return True
306309
@@ -315,6 +318,9 @@ def wait_for_status(commit):
315318
316319 # Ensure all checks pass.
317320 while True :
321+ # Check to see if the PR was manually merged.
322+ if pull_request .is_merged ():
323+ break
318324 status = commit .get_combined_status ().state
319325 if status == GITHUB_STATUS_SUCCESS :
320326 break
0 commit comments