This commit is contained in:
Tim Schubert 2018-05-02 17:43:35 +02:00
parent 9ff0cdb41b
commit a0870de1bd

View file

@ -8,6 +8,8 @@ import logging as log
import csv import csv
import secrets import secrets
from time import sleep
class Deadline(yaml.YAMLObject): class Deadline(yaml.YAMLObject):
"""A deadline""" """A deadline"""
@ -168,31 +170,34 @@ def sync_project(gl, course, student):
# gl.projects.delete(project.id) # gl.projects.delete(project.id)
projects = course.group.projects.list(search=student.user.username) projects = course.group.projects.list(search=student.user.username)
if len(projects) > 0: project = None
print('found') if len(projects) == 0:
return projects[0] base = course.group.projects.list(search=course.base)[0]
base = gl.projects.get(base.id)
base = course.group.projects.list(search=course.base)[0] log.info('Creating project %s' % student.user.username)
base = gl.projects.get(base.id) fork = base.forks.create({
'namespace': student.user.username,
log.info('Creating project %s' % student.user.username) 'name': student.user.username
fork = base.forks.create({ })
'namespace': student.user.username, project = gl.projects.get(fork.id)
'name': student.user.username project.path = student.user.username
}) project.name = student.user.username
project = gl.projects.get(fork.id) project.visibility = 'private'
project.path = student.user.username project.save()
project.name = student.user.username course.group.transfer_project(to_project_id=fork.id)
project.visibility = 'private' else:
project.save() project = gl.projects.get(id=projects[0].id)
course.group.transfer_project(to_project_id=fork.id)
student_member = project.members.get(student.user.id)
student_member.access_level = gitlab.DEVELOPER_ACCESS
student_member.save()
try:
student_member = project.members.get(student.user.id)
student_member.access_level = gitlab.DEVELOPER_ACCESS
student_member.save()
except gitlab.exceptions.GitlabGetError as e:
student_member = project.members.create({'user_id': student.user.id, 'access_level':
gitlab.DEVELOPER_ACCESS})
project.keys.create({'title': 'abgabesystem', 'key': open('abgabesystem.key.pub').read()}) project.keys.create({'title': 'abgabesystem', 'key': open('abgabesystem.key.pub').read()})
project.save()
return project
def deadlines(gl, conf, args): def deadlines(gl, conf, args):