Introduction
A collection of scripts that use the GitLab REST API to setup GitLab projects and repositories for a group of students. The functionality is inspired by GitHub Classroom but more light-weight without a graphical user interface.
Course Configuration
Courses are configured using a yaml file. The following entries are supported:
gitlabthe name of the gitlab server defined in python gitlab module configuration file.seriesthe name of the course series, egSpaceMed Digital Literacynamethe name of the particular course, eg2025participantslist of the participantsmax_participants(optional) maximum number of participantswaiting(optional) list of people on waiting listcancelled(optional) list of people who have cancelledreadmea jinja2 template for the README.md file that will be put in each projectsessionsthe list of sessionseach item should have the following keys:
titlethe title of the sessiondatethe the date when the session takes placetimethe time when it takes placeplacethe locaiton where it takes place
The configuration file can contain other entries which are all passed to the templates.
Below is an example course configuration file.
---
gitlab: charite
series: SpaceMed Digital Literacy
name: 1992
helpers:
- a.user@some.where
max_participants: 25
participants:
- svc-sc-slurm1
waiting: []
cancelled: []
readme: |
# Welcome to {{ name }} Course of {{ year }}
This file uses [markdown](https://www.markdownguide.org/). Checkout the
[cheat sheet](https://www.markdownguide.org/cheat-sheet/) for a summary
of the syntax. GitLab supports various
[Markdown extensions](https://docs.gitlab.com/user/markdown/)
(like GitHub).
sessions:
- title: Session 1
date: 2025-03-16
time: 14:00-17:00
- title: Session 2
date: 2025-03-23
time: 14:00-17:00
- title: Session 3
date: 2025-03-30
time: 14:00-17:00
...