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.

Page URL: https://isg.inf.ethz.ch/bin/view/Main/ServicesVersionControlGitLabCourseProjects
2024-12-21
© 2024 Eidgenössische Technische Hochschule Zürich