Course Projects
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.
Please request course projects at least one week before the course starts, otherwise we may not be able to correctly set up and test everything.
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.
Adding Students
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.
Submitting
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 (
curl
and
jq
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'
The
<token>
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.