GitHub Instructor Guide

GitHub logo
UBC GitHub is a Git repository-hosting service available for academic use at UBC. GitHub is commonly used with Git to manage code or other projects while maintaining a clear record of additions, removals, and edits. UBC GitHub enables this collaboration and coordination for students with a version of GitHub that works with their UBC CWL (Campus-Wide Login).
Access Not immediate You will need to request and access a UBC GitHub organization first. Once you have completed setup, you can log in to GitHub.
Cost Yes Free.
Bandwidth Yes Low demand on internet connections.
Canvas Integration No None.
Privacy Yes Verified by UBC’s Privacy Impact Assessment process.
Similar UBC-Supported Tools N GitHub is the only centrally supported tool for hosting repositories. However, other tools for computational assignments are also centrally supported.

What can I use it for?

You can use UBC GitHub for a variety of assignments and collaborations:

  • Sharing code and projects with course members
  • Collecting and assessing coding assignments, projects, and labs
  • Enabling student collaboration on group projects
  • Allowing students to experiment with changing a project, without affecting the original version

This tool guide was last reviewed in October 2024 with version 3.12.10 of UBC GitHub.

What do I need to use UBC GitHub?

A supported web browser

GitHub runs in your web browser and supports the latest versions of Chrome, Edge, Firefox, or Safari.


A UBC GitHub organization

Organizations in GitHub are group accounts where members (e.g., students in a course) can collaborate on projects together. UBC GitHub organizations must be requested and created through the LT Hub, as outlined in the accordion sections below.

Tips

  • You can install the GitHub desktop application as an alternative to using the web interface. The GitHub desktop app allows you to work in environments without full internet access.
  • You cannot create UBC GitHub accounts on behalf of another person, so students will need to activate their own accounts. Students can activate their GitHub accounts at any point, even before an organization has been created. However, students can only view and access the organization once it has been created.

How do I use UBC GitHub?

You will first need to request a UBC GitHub organization for your course. Once we have created your organization, your students will be added and you will have access to UBC GitHub.

Click any accordion bar below for instructions and tips for using UBC GitHub.

Expand All

Request and access a UBC GitHub organization for your course

Organizations in GitHub are group accounts where members can collaborate on projects together. UBC faculty and staff may request a UBC GitHub organization to use for a course. The organization will be created with a team automatically set up to synchronize all students in your course as organization members.

  1. Fill out our contact form with the following details:
    • Your UBC CWL
    • The course and section you want to add students from
  2. You will be asked to activate your account at the UBC GitHub Service page using your UBC CWL.
  3. After your account has been activated, log in to UBC GitHub with your UBC CWL. Logging in will complete the setup of your account.
  4. Once we activate your organization request, it may take up to 30 minutes to add your course students to the organization.
  5. Please instruct your students to create their own UBC GitHub accounts at the UBC GitHub Service page using their UBC CWL.
    • Please note that your students may not be able to see the organization if they had activated their accounts before the organization is ready.
  6. Once your organization is ready, you will be able to do the following:

Tips

  • If you use the GitHub desktop application, you will need to follow a couple of additional steps to access the UBC GitHub version. Log in using the "GitHub Enterprise Server" option, then enter "github.ubc.ca" when prompted for an address.
  • As the owner of a UBC GitHub organization, you will be able to create additional teams and manage repositories. Teams are spaces where select organization members can collaborate on projects; repositories are places for projects where files are stored and built on. You will have full access to all teams and repositories, regardless of their visibility setting.
  • You can invite any UBC GitHub user to become a member of your organization, using their UBC CWL or their name. You can edit or cancel an invitation at any time before the person accepts.

Invite people to your UBC GitHub organization

As an owner of a UBC GitHub, you have the ability to invite new members into the organization, including co-instructors, teaching assistants (TAs), or other people at UBC. Please note that registered students in the course and section will automatically be added as members.

Everyone who joins your organization must have activated their UBC GitHub account and logged in to GitHub at least once.

  1. Log in to UBC GitHub with your UBC CWL.
  2. Click your profile icon in the upper-right corner, then click Your organizations.
  3. Under "Organizations", click the organization name.
  4. Click the People tab, then click Add member.
  5. Type either the UBC CWL or the name of the person you want to add, then click Add.
    • If you cannot find the person, it means that they do not have a UBC GitHub account. They will need to request an account using our contact form.
  6. If prompted, enter your UBC CWL and password, and click Confirm password.
  7. Choose a role for the person and, optionally, add the person to any team in the organization.
  8. Click Add member to invite the person to join your organization.

Manage teams in your UBC GitHub organization

All organization members have the ability to create teams and add members to teams, regardless of their role. Teams are spaces where select organization members can collaborate with one another.

You can create standalone or hierarchical (nested) teams. Either approach can help you better manage access permissions for repositories, as well as manage notifications to alert groups of organization members regarding updates.

Everyone who joins your organization must have activated their UBC GitHub account and logged in to GitHub at least once.

  1. Log in to UBC GitHub with your UBC CWL.
  2. Click your profile icon in the upper-right corner, then click Your organizations.
  3. Under “Organizations”, click the organization name.
  4. Click the Teams tab, then click New team.
  5. Enter the name of your new team. Optionally, you can also add a description for this team.
    • If you are creating a nested team, choose a "parent" team that the new team should be contained under.
    • The “Team visibility” option is set to Visible by default. This setting means that the team can be seen by all organization members. Alternatively, setting it to "Secret" restricts the team visibility to only the members of the team and owners of the organization, although this setting also removes the nesting function.
  6. Click Create team.
  1. Log in to UBC GitHub with your UBC CWL.
  2. Click your profile icon in the upper-right corner, then click Your organizations.
  3. Under "Organizations", click the organization name.
  4. Click the Teams tab, then on the bottom of the page, click the team name that you want to add members to.
  5. Click the Members tab, then click Add a member.
  6. Type either the UBC CWL or the name of the person you want to add, then click Invite.
  7. You may be prompted to confirm the invitation by logging in again with your UBC CWL.

Tips

  • Organization members who are assigned the “Maintainer” role have the same access level of permission to a team as an organization owner. They can manage team members and access team settings, as well as add repositories to the team.
  • When you create a nested team, the nested (or child) team will inherit access permissions and notifications from the parent team. If you have multiple groups of students who need the same permissions and communication, nested teams can simplify management for you.
  • You can send notifications to an entire team by mentioning the team's name with GitHub’s "@mention" feature. You can also manage how you receive GitHub notifications.

Create repositories for your GitHub organization

All organization members have the ability to create repositories within the organization, regardless of their role. Repositories are where files and folders are stored and collaborated on.

We recommend keeping your organization's repositories set to "private" visibility, so that only the organization owners and approved members can view them. Alternatively, if you wish for anyone with a UBC GitHub account to view a repository, you can set it to "internal". Please note that setting a repository to "public" will make it available to anyone on the internet.

  1. Log in to UBC GitHub with your UBC CWL.
  2. In the upper-right corner, click the plus icon, and select New repository.
  3. In the "owner" drop-down, select the name of your UBC GitHub organization.
  4. Enter the name and description for your repository.
  5. Adjust any other settings, and click Create repository

Tips

  • Help identify your repositories by using README files. A README file is intended to give a brief overview of a project and is the first item displayed in your repository's home (code) page.
  • You can document your repositories using wikis on GitHub. Wikis are useful for presenting in-depth information about your projects.
  • By default, repositories cannot be viewed by all members of the organization; however, organization owners are able to change the repository access. You can also manually grant access on a per-repository basis. See the next accordion section for details on how to manage repository access.

Manage repository access in your UBC GitHub organization

As an owner of a UBC GitHub organization, you have the ability to change the roles and permissions associated with repositories for teams and individuals. If you would like to manage member access to different repositories, follow the steps below.

  1. Log in to UBC GitHub with your UBC CWL.
  2. Click the profile icon in the upper-right corner, then click Your organizations.
  3. Under "Organizations", click the organization name.
  4. Click the Settings tab, then click Member privileges from the left sidebar.
  5. Under “Base permissions”, choose the permission level you want to use as the default for all repositories in the organization, and confirm the change in the pop-up window.
    • Please note the default permission level (or role) you set here will determine the minimum access your organization members will have for all repositories within the organization. Setting this option to anything other than "No Permissions" will result in all repositories being visible to all organization members, regardless of the repository’s visibility.
  6. Click Go to your organization profile in the upper-right corner.
  7. Click the repository name you want to set permissions for.
  8. Click the Settings tab, then click Collaborators and teams from the left sidebar.
    • If prompted, enter your UBC CWL, then click Confirm password.
  9. Under “Manage access”, click Add people or Add teams, depending how you want to manage permissions.
  10. Type one of the following: the UBC CWL of the person, the name of the person, or the name of the team to add. Then select the correct person or team.
  11. Choose a role, then click Add person/team to this repository.

Tips

  • Consider your assignment format and class size when assigning repository permissions. For example, courses oriented around collaboration may benefit from having a few main repositories viewable to everyone in the course, while courses focused on individual work may benefit from having a repository for each assignment submission, especially if they are large courses—this way, only the single student/assignment group and teaching team will have access to them.
  • To further refine what organization members can do in a repository, you can also create custom roles. Custom roles are helpful if you want specific people in the course to only access and change what they need.

Where can I get more support with GitHub?

Technical support

If you have trouble with GitHub:


Student support

  • Share the GitHub Documentation with your students, which include instructions on getting started with GitHub and links to videos.
  • Help students learn how to use Git, the version-control tool used to interact with repositories on GitHub, by connecting them to the Git documentation.

Learn more


Tell us about this guide