Instructor Guide

GitLab for Education — Setup Guide

A step-by-step guide for educators and staff on setting up GitLab for Education for your students.

Apply to the Program

Before you and your students can access GitLab Ultimate, you need to apply on behalf of your institution. This section covers who can apply, what institutions are eligible, and what you'll receive upon acceptance.

👤 Who Can Apply

The GitLab for Education license is issued to institutions, not to individual students. Only full-time faculty or staff may submit an application.

  • Apply using your institution's official email domain — personal addresses are not accepted.
  • Students cannot apply individually, but will be added under your institution's license once it is granted.
⚠️
Note GitLab does not currently issue licenses to institutions enrolling students under the age of 13 via its SaaS platform. Those institutions may apply for a self-managed license instead.

🎁 What You Receive

Upon acceptance, your institution is granted:

  • GitLab Ultimate — advanced CI/CD, security scanning, merge request approvals, and GitLab Duo AI features.
  • 50,000 compute minutes per month — for running CI/CD pipelines across all courses.
  • Unlimited seats — all students, educators, and researchers at no per-seat cost.
ℹ️
Graduation and departure The licence is issued to the institution. Students who graduate or leave will lose access and would need to use GitLab's free tier independently.

📋 How to Apply

  1. Visit about.gitlab.com/solutions/education/join.
  2. Complete the application form using your institution email address.
  3. Provide details to verify your institution.
  4. Submit and await confirmation.
  5. Upon acceptance, you will receive instructions to activate your Ultimate subscription.

Resources for this section

Setting up Student Access & Staff Roles

Once your subscription is active, structure your GitLab environment and invite your students and staff. GitLab uses Groups and Subgroups to organise projects and control access.

🎓 Helping Students Get Started

  1. Create a free account at gitlab.com (or sign in via institutional SSO if available).
  2. Share your GitLab username with the instructor so you can be added to the course group.
  3. Accept the group invitation email from GitLab once invited.
ℹ️
SSO If your institution has configured Single Sign-On with GitLab, students can log in using their existing institutional credentials. Contact your IT department to confirm.

🗂️ Understanding Groups and Subgroups

A Group is a container for projects and people. Subgroups nest inside groups and inherit their membership and permissions (up to 20 levels deep). A typical course structure looks like this:

📁 Institution / Department (Top-level Group)
   └── 📁 CS101 – Fall (Course Subgroup)
        ├── 📁 student-alice
        │    └── 📄 assignment-1
        ├── 📁 student-bob
        │    └── 📄 assignment-1
        └── 📄 course-materials
⚠️
Visibility rule Subgroups cannot be less restrictive than their parent. If your top-level group is Private, all subgroups must also be Private.

👥 Adding Students and Staff

  1. Navigate to your course subgroup.
  2. Go to Manage → Members.
  3. Click Invite members.
  4. Enter each person's GitLab username or email address.
  5. Assign the appropriate role (see table below).
  6. Optionally set an access expiration date to match your semester end date.
  7. Click Invite.
ℹ️
Large cohorts Consider using a script to automate group setup for classes of 30 or more students.

🔑 Roles and Permissions

RoleBest forKey permissions
OwnerInstructors / AdminsFull administrative access to the group
MaintainerSenior TAs (trusted)Manage settings, approve merge requests, push code
DeveloperStudentsPush code, access pipelines, create branches
ReporterTAs / GradersRead and clone repositories; cannot modify student work
GuestObserversRead-only access to project issues and overview
💡
Recommended for TAs and graders Use the Reporter role. Reporters can read and clone any repository but cannot push changes back, preventing accidental modification of student work.

🔔 Managing Notifications

By default, GitLab emails you every time a student commits. With a large class this quickly becomes overwhelming — disable group-level notifications immediately.

  1. Navigate to your course subgroup.
  2. Select the notification bell icon near the top of the page.
  3. Change the setting from Global to Disabled.

Resources for this section

Course Materials & Assignments

With your groups set up and students added, create course content, distribute assignments, and configure automated pipelines to support your teaching.

📦 Assignment Distribution Models

There are three common approaches to distributing and collecting student work in GitLab.

Model A Template / Fork
Create a project with starter code. Students fork it, complete their work, and add you as a Reporter so you can review and grade. Best for individual assignments with a defined starting point.
Model B Subgroup per Student
Create a private subgroup for each student under the course group, with individual projects inside it. Gives full visibility across all student work from a single location.
Model C Shared Course Materials
A single shared project within the course group for lecture notes, code samples, and reference materials. Students have Reporter access; only instructors can push updates.

⚙️ Setting Up CI/CD Pipelines

GitLab's built-in CI/CD can automate testing, linting, and grading workflows across all student repositories.

  1. Navigate to your course subgroup.
  2. Go to Settings → CI/CD.
  3. Create or reference a shared .gitlab-ci.yml template.
  4. Add shared variables under Variables — available to all projects in the group automatically.
💡
Compute minutes Your Education licence includes 50,000 compute minutes per month. Monitor usage under Settings → Usage Quotas for large cohorts running pipelines frequently.

📊 Reviewing and Grading Student Work

  • Clone and test locally: Use git clone to pull down any student repository.
  • Merge requests: Ask students to submit via MR — gives you a diff view, inline commenting, and an approval workflow.
  • Issues: Use GitLab Issues to return written feedback directly within a student's project.
  • Pipeline results: Review automated test results on the student's commit or MR page.
ℹ️
Try the template project See what a finished assignment looks like: GitLab Education Assignment Template.

Resources for this section