1.7 KiB
1.7 KiB
Programmieren [1,2] Gitlab
Authentication
- use GITZ LDAP for login
- not allow "create new repo"
Structure
-
main repo
- publish example solutions
- CI config for checkstyle
- Protected Runner for JPlag
- restrict access to branches with example solutions
-
student repos
- forked from main repo
- one repo per student
- student has Developer Access
- tutors group has Master access
- students can request access (Abgabepartner)
- tutors can grant access
Checkstyle
- GitLab CI
- Dockercontainer
- Shared Runner
- restrict Container to checkstyle
- disable internet access for container
JPlag
- Deadline [at,cron]job or schedule via gitlab
- triggers Protected Runner
- creates automatic protected TAG in each repo
- checks out TAG from all repos into /tmp and runs JPlag
- replace with MOSS? https://github.com/soachishti/moss.py
- deploy key in each repo
(optional) sync script
- (one-way) sync students and groups from Stud.IP REST API to Gitlab REST API
Replicate (TODO: ansible playbook)
-
install gitlab
-
install docker
-
copy gitlab.rb
-
partially protected
-
default project limit = 0
-
shared runner for checkstyle
-
protected runner for
- setting protected tags
- running jplag
-
script for creating repos and groups
-
SSH deploy key