No description
Find a file
2018-06-06 15:43:58 +02:00
.gitignore Update gitignore 2018-04-18 17:16:51 +02:00
.gitlab-ci.yml Keep build artifacts 2018-06-01 14:53:45 +02:00
abgabesystem.py Add documentation 2018-06-01 13:19:30 +02:00
conf.py Add sphinx documentation 2018-06-01 13:59:55 +02:00
config.yml Set public deploy key 2018-05-17 16:39:01 +02:00
deadlines.sh Add script for interactively triggering a deadlines 2018-06-06 15:43:58 +02:00
gitlab.rb Update project settings 2018-05-15 10:54:23 +02:00
index.rst Add sphinx documentation 2018-06-01 13:59:55 +02:00
make.bat Add sphinx documentation 2018-06-01 13:59:55 +02:00
Makefile Add sphinx documentation 2018-06-01 13:59:55 +02:00
notes.md Add stuff 2018-04-30 09:21:25 +02:00
python-gitlab.cfg Fixup: Add missing newline 2018-04-18 15:52:46 +02:00
README.md Add links 2018-05-30 22:19:05 +02:00
Students.csv Add example csv 2018-05-15 18:23:36 +02:00

The Abgabesystem

Setup

  1. Generate a deploy key and an API token.

  2. Set up container images and runners.

  1. Create a group for you course and add all administrative users to it.

  2. Clone abgabesystem as a private project of that group and add SSH_PRIVATE_KEY and PRIVATE_API_TOKEN to the private variables.

  3. Edit config.yml to include the name of the student list, your public deploy key and the name of the course.

  4. Export student list from StudIP and add it to the project.

  5. wait for ci jobs to finish....

Recommended settings for gitlab.rb

 gitlab_rails['gitlab_default_can_create_group'] = false
 gitlab_rails['gitlab_default_projects_features_container_registry'] = false

 # see gitlab documentation and add your ldap config
 gitlab_rails['ldap_enabled'] = true

 # if you don't have TLS otherwise
 letsencrypt['enable'] = true

Also, you should

  • set the default project limit for each user to 0 and
  • set default settings for projects to partially protected so that developers can not force push tag and commits to protected branches (master)

Workflow

To trigger the deadline of an exercise (e.g. Sunday at 15:00), push a tag (e.g. ex1) to the cloned Abgabesystem project. The Abgabesystem's CI jobs creates a tag of this name inside each student's project and then proceeds by creating a checkout of each project's repository and running JPlag to check for plagiates. The results can be found inside the job artefacts for the CI job that is run for the tag. The results are saved for each tag and can be downloaded as an archive.