def cycle_check(self, override_pair, overridden_pair, arch): if self.cycle_check_skip(override_pair[0]): self.logger.info( 'cycle check: skip due to --skip-cycle or comment command') return CheckResult(True, None) self.logger.info('cycle check: start') comment = [] first = True cycle_detector = CycleDetector(self.staging_api(overridden_pair[0])) for index, (cycle, new_edges, new_packages) in enumerate( cycle_detector.cycles(override_pair, overridden_pair, arch), start=1): if not new_packages: continue if first: comment.append( '### new [cycle(s)](/project/repository_state/{}/{})\n'. format(override_pair[0], override_pair[1])) first = False # New package involved in cycle, build comment. comment.append('- #{}: {} package cycle, {} new edges'.format( index, len(cycle), len(new_edges))) comment.append(' - cycle') for package in sorted(cycle): comment.append(' - {}'.format(package)) comment.append(' - new edges') for edge in sorted(new_edges): comment.append(' - ({}, {})'.format(edge[0], edge[1])) if len(comment): # New cycles, post comment. self.logger.info('cycle check: failed') return CheckResult(False, '\n'.join(comment) + '\n') self.logger.info('cycle check: passed') return CheckResult(True, None)
def cycle_check(self, override_pair, overridden_pair, arch): if self.cycle_check_skip(override_pair[0]): self.logger.info('cycle check: skip due to --skip-cycle or comment command') return CheckResult(True, None) self.logger.info('cycle check: start') comment = [] first = True cycle_detector = CycleDetector(self.apiurl) for index, (cycle, new_edges, new_packages) in enumerate( cycle_detector.cycles(override_pair, overridden_pair, arch), start=1): if not new_packages: continue if first: comment.append('### new [cycle(s)](/project/repository_state/{}/{})\n'.format( override_pair[0], override_pair[1])) first = False # New package involved in cycle, build comment. comment.append('- #{}: {} package cycle, {} new edges'.format( index, len(cycle), len(new_edges))) comment.append(' - cycle') for package in sorted(cycle): comment.append(' - {}'.format(package)) comment.append(' - new edges') for edge in sorted(new_edges): comment.append(' - ({}, {})'.format(edge[0], edge[1])) if len(comment): # New cycles, post comment. self.logger.info('cycle check: failed') return CheckResult(False, '\n'.join(comment) + '\n') self.logger.info('cycle check: passed') return CheckResult(True, None)