28
28
_logger = getLogger (__name__ )
29
29
30
30
LABEL_MERGED = "merged 🎉"
31
+ LABEL_MERGING = "bot is merging ⏳"
31
32
32
33
33
34
class MergeStrategy (Enum ):
@@ -53,6 +54,17 @@ def _git_delete_branch(remote, branch):
53
54
raise
54
55
55
56
57
+ def _remove_merging_label (github , gh_pr , dry_run = False ):
58
+ gh_issue = github .gh_call (gh_pr .issue )
59
+ labels = [l .name for l in gh_issue .labels ()]
60
+ if LABEL_MERGING in labels :
61
+ if dry_run :
62
+ _logger .info (f"DRY-RUN remove { LABEL_MERGING } label from PR { gh_pr .url } " )
63
+ else :
64
+ _logger .info (f"remove { LABEL_MERGING } label from PR { gh_pr .url } " )
65
+ github .gh_call (gh_issue .remove_label , LABEL_MERGING )
66
+
67
+
56
68
def _get_merge_bot_intro_message ():
57
69
i = random .randint (0 , len (MERGE_BOT_INTRO_MESSAGES ) - 1 )
58
70
return MERGE_BOT_INTRO_MESSAGES [i ]
@@ -132,6 +144,7 @@ def _merge_bot_merge_pr(org, repo, merge_bot_branch, dry_run=False):
132
144
f"Thanks a lot for contributing to { org } . ❤️" ,
133
145
)
134
146
gh_issue = github .gh_call (gh_pr .issue )
147
+ _remove_merging_label (github , gh_pr , dry_run = dry_run )
135
148
if dry_run :
136
149
_logger .info (f"DRY-RUN add { LABEL_MERGED } label to PR { gh_pr .url } " )
137
150
else :
@@ -261,6 +274,10 @@ def merge_bot_start(
261
274
f"of exception { e } ." ,
262
275
)
263
276
raise
277
+ else :
278
+ gh_issue = github .gh_call (gh_pr .issue )
279
+ _logger .info (f"add { LABEL_MERGED } label to PR { gh_pr .url } " )
280
+ github .gh_call (gh_issue .add_labels , LABEL_MERGING )
264
281
265
282
266
283
def _get_commit_success (gh_commit ):
@@ -332,13 +349,15 @@ def merge_bot_status(org, repo, merge_bot_branch, sha):
332
349
f"finalized, because "
333
350
f"command `{ cmd } ` failed with output:\n ```\n { e .output } \n ```" ,
334
351
)
352
+ _remove_merging_label (github , gh_pr )
335
353
raise
336
354
except Exception as e :
337
355
github .gh_call (
338
356
gh_pr .create_comment ,
339
357
f"@{ username } The merge process could not be "
340
358
f"finalized because an exception was raised: { e } ." ,
341
359
)
360
+ _remove_merging_label (github , gh_pr )
342
361
raise
343
362
else :
344
363
github .gh_call (
@@ -352,3 +371,4 @@ def merge_bot_status(org, repo, merge_bot_branch, sha):
352
371
f"make the target branch red." ,
353
372
)
354
373
_git_call (["git" , "push" , "origin" , f":{ merge_bot_branch } " ])
374
+ _remove_merging_label (github , gh_pr )
0 commit comments