Git is an ideal tool for students to hand in exercises for courses and lectures. isginf
provides a simple workflow for research group who want to use the isginf GitLab service
for this purpose.
Creating a GitLab Group
Before the course we will create a GitLab group
and add all assistants who administer the course to this group. The members of this group will have full access to all projects in the group.
The group will have a name of the form COURSE-<identifier>
. What we need is an identifier
for the course, a short keyword that tells everyone for which course the project is.
Before the course starts we create a project for each student:
- The project will have the name of the ETH user name of the student.
- The student will be added as Member of the project.
As a consequence a student can access only his or her own project. What we need is the list of students from eDoz
for the initial creation of projects and accounts for students from other departments.
Any of the members of the GitLab group can also manually create a project and add the student as member. Non-D-INFK
students will need to log in once to create the account.
Each student will see the project as COURSE-<identifier>/<ETH user name>
and can commit to the repository or use the other features of GitLab.
Picking up Submissions
All members of the GitLab group can access all projects in the group.
The following command line (
commands needed) can list up the URL of all projects:
curl --header "PRIVATE-TOKEN: <token>" https://gitlab.inf.ethz.ch/api/v3/groups/COURSE-<identifier>/projects | jq '..ssh_url_to_repo'
needed for the API access can be found in your account settings
Disabling Write Access
On request we can disable write access for all students. This may be helpful when the course ends but students still need read access until the related exams are over.
Archiving All Data
Once the course is completely over we will archive all projects in the group to a location of your choice. Each archived project contains the repository and all data from GitLab features such as wiki, snippets, bug tracker, etc.
The entire GitLab group and all projects in it are deleted.