diff --git a/grade_team_contribution.py b/grade_team_contribution.py index 151f23c62f4dab2d3bc52ae44ab1d7fda5cc76b1..7dd310f42f9bad5410f5a0097149a0e42ee47fea 100644 --- a/grade_team_contribution.py +++ b/grade_team_contribution.py @@ -4,6 +4,8 @@ from datetime import date from math import ceil, log10 from typing import Tuple +from gitlab import GitlabError + from api.canvas_classes import * from api.gitlab_classes import * from common_functions import select_from_list, strip_html @@ -176,8 +178,19 @@ if __name__ == '__main__': print() if grading_git_histories: if no_common_prefix: - custom_project = input(f'Enter path to {student_group.get_name()}\'s repository: ') - display_git_contributions(GitlabProject(custom_project)) + custom_project: str = None + repository: GitlabProject = None + while custom_project is None: + custom_project = input( + f'Enter path to {student_group.get_name()}\'s repository (leave blank to skip): ') + try: + if len(custom_project) > 0: + repository = GitlabProject(custom_project) + except GitlabError: + print(f'Could not location repository {custom_project}; please confirm path.') + custom_project = None + if len(custom_project) > 0: + display_git_contributions(repository) else: project_name = f'{project_prefix}{student_group.get_name().split()[1]}'.zfill(zero_padding) display_git_contributions(list(filter(lambda p: p.get_name() == project_name, projects))[0])