Fix: plagiates and deadline functions ignore tag in reference project
This commit is contained in:
parent
f87adb48f5
commit
0e86b2adb1
1 changed files with 21 additions and 11 deletions
|
@ -1,3 +1,7 @@
|
||||||
|
import os
|
||||||
|
import subprocess
|
||||||
|
import subprocess
|
||||||
|
|
||||||
from .students import Student, create_user, get_students
|
from .students import Student, create_user, get_students
|
||||||
from .projects import create_tag, setup_course
|
from .projects import create_tag, setup_course
|
||||||
from gitlab.exceptions import GitlabCreateError, GitlabGetError
|
from gitlab.exceptions import GitlabCreateError, GitlabGetError
|
||||||
|
@ -34,6 +38,11 @@ def deadline(gl, args):
|
||||||
try:
|
try:
|
||||||
reference = gl.projects.get(args.reference, lazy=True)
|
reference = gl.projects.get(args.reference, lazy=True)
|
||||||
|
|
||||||
|
try:
|
||||||
|
create_tag(reference, deadline_name, 'master')
|
||||||
|
except GitlabCreateError as e:
|
||||||
|
print(e.error_message)
|
||||||
|
|
||||||
for fork in reference.forks.list():
|
for fork in reference.forks.list():
|
||||||
project = gl.projects.get(fork.id, lazy=False)
|
project = gl.projects.get(fork.id, lazy=False)
|
||||||
try:
|
try:
|
||||||
|
@ -50,24 +59,25 @@ def plagiates(gl, args):
|
||||||
"""
|
"""
|
||||||
|
|
||||||
tag = args.tag_name
|
tag = args.tag_name
|
||||||
reference = gl.projects.get(args.reference, lazy=True)
|
reference = gl.projects.get(args.reference, lazy=False)
|
||||||
|
if not os.path.exists('solutions'):
|
||||||
|
os.mkdir('input')
|
||||||
|
os.chdir('input')
|
||||||
try:
|
try:
|
||||||
os.mkdir('solutions')
|
subprocess.run(
|
||||||
except os.FileExistsError as e:
|
['git', 'clone', '--branch', tag, reference.ssh_url_to_repo, reference.path_with_namespace])
|
||||||
print(e)
|
except subprocess.CalledProcessError as e:
|
||||||
os.chdir('solutions')
|
print(e.error_message)
|
||||||
|
|
||||||
for fork in reference.forks.list():
|
for fork in reference.forks.list():
|
||||||
project = gl.projects.get(fork.id, lazy=True)
|
project = gl.projects.get(fork.id, lazy=False)
|
||||||
try:
|
try:
|
||||||
subprocess.run(
|
subprocess.run(
|
||||||
['git', 'clone', '--branch', tag, project.ssh_url_to_repo, project.path_with_namespace])
|
['git', 'clone', '--branch', tag, project.ssh_url_to_repo, project.path_with_namespace])
|
||||||
os.chdir('..')
|
except subprocess.CalledProcessError as e:
|
||||||
except:
|
|
||||||
print(e.error_message)
|
print(e.error_message)
|
||||||
|
os.chdir('..')
|
||||||
subprocess.run(
|
subprocess.run(
|
||||||
['java', '-jar', args.jplag_jar, '-s', 'solutions', '-p', 'java', '-r', 'results', '-bc', args.reference, '-l', 'java17'])
|
['java', '-jar', args.jplag_jar, '-s', input, '-p', 'java', '-r', 'results', '-bc', args.reference, '-l', 'java17'])
|
||||||
|
|
||||||
|
|
||||||
def course(gl, args):
|
def course(gl, args):
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue