A step-by-step guide for educators and staff on setting up GitLab for Education for your students.
Part 1 of 3
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
Visit about.gitlab.com/solutions/education/join.
Complete the application form using your institution email address.
Provide details to verify your institution.
Submit and await confirmation.
Upon acceptance, you will receive instructions to activate your Ultimate subscription.
Official documentation covering programme eligibility and benefits.
Part 2 of 3
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
Create a free account at gitlab.com (or sign in via institutional SSO if available).
Share your GitLab username with the instructor so you can be added to the course group.
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:
Read and clone repositories; cannot modify student work
Guest
Observers
Read-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.
Navigate to your course subgroup.
Select the notification bell icon near the top of the page.
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.
Navigate to your course subgroup.
Go to Settings → CI/CD.
Create or reference a shared .gitlab-ci.yml template.
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.