A tool for managing programming classes on a gitlab server.
idea:
A semester needs to be created which can house multiple classes.
For this classes assignments (git projects on a gitlab server) can be forked, closed and pulled.
install:
install golang (e.g. sudo apt install golang)
install classmgr (go get git.uibk.ac.at/c706204/classmgr)
if you have added ~/go/bin to yout PATH (export PATH=$PATH:~/go/bin)
you can start classmgr anywhere in your shell.
Otherwise, run ~/go/bin/classmgr.
configuration can be done using classmgr set config and the appropriate flags.
e.g. --apitoken XXXXXXXXXX to authenticate to the gitlab server (You can generate a token in
your gitlab settings).
After classmgr set config was run once, one can also edit the configfile ~/.classmgr.yaml
directly. All other flags are described when running classmgr --help.
workflow:
Create a semester, e.g. classmgr create semester SS2019
Create a class, e.g. classmgr create class 1
Optional: Create more classes
Import students, e.g. classmgr import students students2019.csv. Here students2019.csv should
contain a list of the students, first column: gitlab username, second column: student name, third column: class nr.
Create an assignment from local path, e.g. classmgr create assignment . Here . is the path of the current working dir.
The numbers of the assignments are assigned automatically in ascending order starting from 00.
Fork an assignment, e.g. classmgr fork assignment 00 1. Here 00 is the assignment nr to be forked and 1 is the class nr.
Close assignment, e.g. classmgr close assignment 00 1. After that, students can not push anymore to their project
on the gitlab server, they can only view or pull it.
Pull assignment, e.g. classmgr pull assignment 00 1. The students projects of one assignment and group get cloned
or pulled to the local machine.
Feedback can be written directly into the code and pushed back individually using git push.
Repeat steps 5-9. during the semester. Or start from 1. in the next semester.