def main(): parser = argparse.ArgumentParser() parser.add_argument('mode', choices=('push', 'commit', 'file')) parser.add_argument('--verbose', '-v', action='store_true', help='Verbose output') parser.add_argument('args', nargs='*') args = parser.parse_args(sys.argv[1:]) if args.mode == 'push': return suggest_reviewer_set_for_in_flight_commits( args.verbose) is not False elif args.mode == 'commit': db = get_owners_db() for commit in args.args: commit = git.canonicalize_commit(commit) print('Suggested reviewers for "%s": ' % git.get_oneline_for_commit(commit)) reviewers = _get_reviewer_set_for_commit(db, commit) explain_reviewer_set(reviewers) elif args.mode == 'file': reviewers = get_owners_db().reviewer_set_for(args.args, git.get_current_email()) explain_reviewer_set(reviewers) return 0
def suggest_reviewer_set_for_in_flight_commits(verbose): in_flight_commits = git.get_in_flight_commits() if not in_flight_commits: print 'All commits have already been landed on this branch' return False db = get_owners_db() for commit in in_flight_commits: reviewer_set = _get_reviewer_set_for_commit(db, commit) print ('REVIEWERS FOR "%s":\n %s' % (git.get_oneline_for_commit(commit), format_reviewer_set_in_conjunctive_normal_form(reviewer_set))) if verbose: explain_reviewer_set(reviewer_set) if verbose: print '' else: print ('For more details run: ' './src/build/suggest_reviewers.py push -v')
def suggest_reviewer_set_for_in_flight_commits(verbose): in_flight_commits = git.get_in_flight_commits() if not in_flight_commits: print 'All commits have already been landed on this branch' return False db = get_owners_db() for commit in in_flight_commits: reviewer_set = _get_reviewer_set_for_commit(db, commit) print('REVIEWERS FOR "%s":\n %s' % (git.get_oneline_for_commit(commit), format_reviewer_set_in_conjunctive_normal_form(reviewer_set))) if verbose: explain_reviewer_set(reviewer_set) if verbose: print '' else: print( 'For more details run: ' './src/build/suggest_reviewers.py push -v')
def main(): parser = argparse.ArgumentParser() parser.add_argument('mode', choices=('push', 'commit', 'file')) parser.add_argument('--verbose', '-v', action='store_true', help='Verbose output') parser.add_argument('args', nargs='*') args = parser.parse_args(sys.argv[1:]) if args.mode == 'push': return suggest_reviewer_set_for_in_flight_commits(args.verbose) is not False elif args.mode == 'commit': db = get_owners_db() for commit in args.args: commit = git.canonicalize_commit(commit) print ('Suggested reviewers for "%s": ' % git.get_oneline_for_commit(commit)) reviewers = _get_reviewer_set_for_commit(db, commit) explain_reviewer_set(reviewers) elif args.mode == 'file': reviewers = get_owners_db().reviewer_set_for(args.args, git.get_current_email()) explain_reviewer_set(reviewers) return 0