Skip to content
Snippets Groups Projects
Commit aaa69d09 authored by Christopher Bohn's avatar Christopher Bohn :thinking:
Browse files

Provides more information while creating repos

parent 72b234f1
No related branches found
No related tags found
No related merge requests found
......@@ -29,7 +29,7 @@ of repositories for student assignments.
- prep_assignment.py
- An early iteration of automated student pairing, canvas student group creation, and gitlab repo creation. It
lacks robustness to odd number of students; it has a quick'n'dirty loop termination that does not guarantee
graylist compliance, and project naming is hard-coded.
graylist compliance, and project naming is hard-coded. Also does not tolerate non-existent usernames.
- api/
- canvas_classes.py
......
......@@ -61,9 +61,10 @@ class CompositeUser:
def __repr__(self):
if self.canvas_email == self.gitlab_email:
return f'{self.readable_name} <{self.canvas_email}>'
return f'{self.readable_name}, gitlab @{self.gitlab_username}, email <{self.canvas_email}>'
else:
return f'{self.readable_name} <{self.canvas_email}> <{self.gitlab_email}>'
return f'{self.readable_name}, gitlab @{self.gitlab_username},' \
f' email <{self.canvas_email}> <{self.gitlab_email}>'
def __eq__(self, other):
if isinstance(other, CompositeUser):
......
......@@ -48,15 +48,23 @@ def save_pairs(assignment_number, student_pairs):
pair_file.write(f' - {pair[2]}\n')
def create_repositories(assignment_number, student_pairs):
def create_repositories(assignment_number, student_pairs, verbose):
if verbose:
print('Creating file for clone script.')
filename = f'{assignment_number}-clone.sh'
with open(filename, mode='w') as clone_file:
clone_file.write('#!/bin/bash\n\n')
clone_file.write('# Auto-generated clone script.\n')
for pair in student_pairs:
if verbose:
print(f'Creating repo for pair number {pair[0]}')
project = GitlabProject.create_project_in_group(Course.gitlab_namespace,
f'{assignment_number}pair{pair[0]}')
if verbose:
print(f'\tAdding {pair[1]}')
project.add_user_as_maintainer(pair[1].get_gitlab_user())
if verbose:
print(f'\tAdding {pair[2]}')
project.add_user_as_maintainer(pair[2].get_gitlab_user())
repo_url = project.get_cloning_url()
clone_file.write(f'git clone {repo_url}\n')
......@@ -73,12 +81,12 @@ def create_groups(assignment_number, student_pairs):
if __name__ == '__main__':
assignment = 21
assignment = '21b'
pairs = create_pairs('2019-08.csv')
save_pairs(assignment, pairs)
print('Pairs created')
create_repositories(assignment, pairs)
create_repositories(assignment, pairs, True)
print('Repositories created')
create_groups(assignment, pairs)
print('Canvas groups created')
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment