##// END OF EJS Templates
merge-checks: added more detailed information about why merge is not possible....
marcink -
r1341:611f8936 default
parent child Browse files
Show More
@@ -1316,16 +1316,26 b' class MergeCheck(object):'
1316 Perform Merge Checks and returns a check object which stores information
1316 Perform Merge Checks and returns a check object which stores information
1317 about merge errors, and merge conditions
1317 about merge errors, and merge conditions
1318 """
1318 """
1319 TODO_CHECK = 'todo'
1320 PERM_CHECK = 'perm'
1321 REVIEW_CHECK = 'review'
1322 MERGE_CHECK = 'merge'
1319
1323
1320 def __init__(self):
1324 def __init__(self):
1321 self.merge_possible = None
1325 self.merge_possible = None
1322 self.merge_msg = ''
1326 self.merge_msg = ''
1323 self.failed = None
1327 self.failed = None
1324 self.errors = []
1328 self.errors = []
1329 self.error_details = OrderedDict()
1325
1330
1326 def push_error(self, error_type, message):
1331 def push_error(self, error_type, message, error_key, details):
1327 self.failed = True
1332 self.failed = True
1328 self.errors.append([error_type, message])
1333 self.errors.append([error_type, message])
1334 self.error_details[error_key] = dict(
1335 details=details,
1336 error_type=error_type,
1337 message=message
1338 )
1329
1339
1330 @classmethod
1340 @classmethod
1331 def validate(cls, pull_request, user, fail_early=False, translator=None):
1341 def validate(cls, pull_request, user, fail_early=False, translator=None):
@@ -1341,7 +1351,7 b' class MergeCheck(object):'
1341 log.debug("MergeCheck: cannot merge, approval is pending.")
1351 log.debug("MergeCheck: cannot merge, approval is pending.")
1342
1352
1343 msg = _('User `{}` not allowed to perform merge').format(user)
1353 msg = _('User `{}` not allowed to perform merge').format(user)
1344 merge_check.push_error('error', msg)
1354 merge_check.push_error('error', msg, cls.PERM_CHECK, user.username)
1345 if fail_early:
1355 if fail_early:
1346 return merge_check
1356 return merge_check
1347
1357
@@ -1353,7 +1363,8 b' class MergeCheck(object):'
1353
1363
1354 msg = _('Pull request reviewer approval is pending.')
1364 msg = _('Pull request reviewer approval is pending.')
1355
1365
1356 merge_check.push_error('warning', msg)
1366 merge_check.push_error(
1367 'warning', msg, cls.REVIEW_CHECK, review_status)
1357
1368
1358 if fail_early:
1369 if fail_early:
1359 return merge_check
1370 return merge_check
@@ -1371,7 +1382,7 b' class MergeCheck(object):'
1371 msg = _('Cannot merge, {} TODOs still not resolved.').format(
1382 msg = _('Cannot merge, {} TODOs still not resolved.').format(
1372 len(todos))
1383 len(todos))
1373
1384
1374 merge_check.push_error('warning', msg)
1385 merge_check.push_error('warning', msg, cls.TODO_CHECK, todos)
1375
1386
1376 if fail_early:
1387 if fail_early:
1377 return merge_check
1388 return merge_check
@@ -1383,7 +1394,7 b' class MergeCheck(object):'
1383 if not merge_status:
1394 if not merge_status:
1384 log.debug(
1395 log.debug(
1385 "MergeCheck: cannot merge, pull request merge not possible.")
1396 "MergeCheck: cannot merge, pull request merge not possible.")
1386 merge_check.push_error('warning', msg)
1397 merge_check.push_error('warning', msg, cls.MERGE_CHECK, None)
1387
1398
1388 if fail_early:
1399 if fail_early:
1389 return merge_check
1400 return merge_check
General Comments 0
You need to be logged in to leave comments. Login now