gitlab-icon-rgb.jpgGitLab for Instruction

GitLab is a web-based service that leverages the version control capabilities of Git and added features to support the full DevOps lifecycle. Git is an industry-standard tool for version control. Using Gitlab can enhance the learning experience as students learn skills needed in real-life.

Gitlab for Instruction uses the self-managed community edition or free version of GitLab, and all the core features of the vendor software are available for use.  

GitLab/Git usage guidelines:

  • UCSC staff, faculty, and students can create projects for instructional and non-commercial academic research.
  • By default, users may create 20 personal projects.
  • The system handles 500 users logged in at the same time.
  • Projects cannot store confidential or restricted information or data that needs protection levels of P3 or P4.
  • Limits on the size of a single file in a repository:
    • Max attachment - 10 MB
    • Max import size - 15 MB
    • Max push -unlimited 
This service has a two-hour maintenance window between 9:00 AM and 11:00 AM PST on the third Thursday of each month. Server security patching is scheduled in the Spring and Fall on one Saturday. GitLab may be unavailable during that time.

How to get an Account 

An account is automatically provisioned by following these instructions.
To obtain an account, go to and select the register tab.  In the username and email field, enter your [CruzID] email address.  If the username and email do not match, account creation will fail. Select a password with at least one uppercase letter, one lower case letter, and at least one number.  This password is not your CruzGold or CruzBlue password.  


Students using GitLab for a course should use the email associated with their Canvas accounts so that instructors can connect assignments with the class roster.

Collaborators outside of the domain will need an email address. Staff and faculty will need to apply for a UCSC email using this sundry account request form

Getting Started Resources

GitLab University

New to Git and GitLab 

Setting up SSH Keys

Community Edition User Documentation

Popular Topics


Gitlab CI's Quick Start Guide


Git guides:

Git Official Documentation

Git book 

Don't Add Large Files to a Git Repository

Store large files somewhere else like Google Drive and have your code retrieve them.

Instructional Use

Setting up a course

It's recommended that instructors make a GitLab Group for course-specific repositories and use sub-groups for each term. The faculty who teach the course can be added as owners at the crouse group level and then can create the sub-groups for the term. For example, a group called CSE 130 is created and the sub-group Fall20 is created. This can reduce administrative overhead. TAs and readers from other quarters don't have access to classes for which they're not course staff. All faculty who are owners of the course group will have access to all repositories for all quarters in the class. Course staff must have created an account before they can be added to a group.

Other Strategies for Organizing Courses

  • Students can create their projects in their own namespace and give permissions to them.
  • If a project site for the whole class is desired, or groups needed for persistent work teams, please name the group, prefixed with pattern course-termyr, eg. physics115-Fall20. This naming approach will help to avoid naming collisions in future quarters.

Group Name Guidelines

Users also have the ability to create groups. Groups are meant to hold related projects and make the delegation of permissions easier. Projects in a group also have the ability to persist even after the originator of the project is no longer active. Group names must be unique across the system as GitLab uses a flat namespace for groups. As such, please observe the following group naming guidelines:

  • No generic group names i.e. "My Project Group," "Group1," "Super Awesome Research Group."
  • For research groups try to keep group names descriptive and succinct, prefixed by an area of research. Keep in mind, these names will also form part of the project/git repo URL.
  • For instructional use, similar guidelines apply.   
  • Moving projects: GitLab allows you to move projects between groups and personal spaces if you have appropriate rights in both places. As such, a personal project can be moved into a group quite easily or a project moved between groups if the project expands beyond its original context.


GitLab Voluntary Product Accessibility Template (VPAT)

Vendor Statement of Compliance

If you are using the web application and encounter any difficulties, please report it by emailing  We will report it to the vendor and track the issue.

For GitLab Projects:

Accessibility Testing in GitLab Projects