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 where you want a clear history of the development of shared work. UBC GitHub enables this collaboration and coordination for students with a version of GitHub that works with our 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 Y If you use GitHub for documents, Microsoft OneDrive is also centrally supported for document collaboration.

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
  • Letting students experiment with changes to a project, without affecting the original version

This tool guide was last reviewed in March 2023 with version 3.5.11 of UBC GitHub.

What do I need to use UBC GitHub?

A supported web browser

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


A UBC GitHub organization

Organizations in GitHub are group accounts where members—for example, students in a course—can collaborate on projects together. UBC GitHub organizations must be requested and created through the LT Hub, as outlined below.

Tips

  • You can install the GitHub desktop application as an alternative to working in the web interface.
  • UBC GitHub accounts cannot be created on behalf of another person, so students will need to activate their own accounts. This activation can happen at any point after you request an organization.

How do I use UBC GitHub?

You will first need to request a UBC GitHub organization for your course. Then you can use all the regular features of GitHub for teaching and learning.

Click any 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 (called repositories). 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 username
    • The course and section you want to pull in students from
  2. You will be asked to activate your account at activate.github.ubc.ca, using your UBC CWL.
  3. After activation, log in to UBC GitHub at github.ubc.ca 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 students to the new organization.
  5. At any time, instruct your students to create UBC GitHub accounts at activate.github.ubc.ca by logging in with their UBC CWL. Let students know that if they activate accounts before the organization is ready, they may not be able to log in or see the organization.
  6. Once your organization is ready, you will be able to do any of the following:

Tips

  • If you use the GitHub desktop application, you will need to follow a couple of additional steps. Log in using the "GitHub Enterprise Server" option, and 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 communicate and collaborate around projects; repositories are places for projects where files are stored and built on.
  • You can invite any UBC GitHub user to become a member of your organization, using their UBC CWL username. You can edit or cancel an invitation any time before the person accepts.

Invite people to your UBC GitHub organization

If you manage an organization on UBC GitHub, you will have the ability to invite new members to join the organization. Registered students in the course and section will automatically be added as members. You can also invite co-instructors, teaching assistants, or other people at UBC.

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

  1. Log in to UBC GitHub with your UBC CWL.
  2. Click your profile icon in the upper right, then click Your organizations.
  3. Click the organization name.
  4. Click the People tab, then click Add member.
  5. Type the UBC CWL username of the person you want to add, and 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 teams in the organization.
  8. Click Add member to invite the person to join your organization.

Manage teams in your UBC GitHub organization

If you manage an organization on UBC GitHub, you will have the ability to create and add organization members to teams. Teams are spaces where select organization members can communicate and collaborate.

You can create standalone or hierarchical ("nested") teams. Either approach can help you more easily manage access permissions for repositories and manage notifications ("mentions") to alert groups of people about updates.

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

  1. Log in to UBC GitHub with your UBC CWL.
  2. Click your profile icon in the upper right, then click Your organizations.
  3. Click the organization name.
  4. Click the Teams tab, then click New team.
  5. Enter the name for your new team and, optionally, add a description.
    • If you are creating a nested team, choose a "parent" team that your new team should sit underneath.
  6. Click Create team.
  1. Log in to UBC GitHub with your UBC CWL.
  2. Click your profile icon in the upper right, then click Your organizations.
  3. 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 the UBC CWL username of the person you want to add, then click Invite.
  7. If prompted, confirm the invitation.

Tips

  • Teams allow students to more easily collaborate and participate in discussions, especially if you set these up for smaller groups of students. Each team will have a separate page for interacting.
  • 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. Mention the team's name with GitHub’s @mention feature. You can also manage how you receive GitHub notifications.

Create repositories for your GitHub organization

If you manage an organization on UBC GitHub, you will have the ability to create repositories within the organization. Repositories are places for projects where files are stored and built on, enabling collaboration.

  1. Log in to UBC GitHub with your UBC CWL.
  2. In the upper right, click the plus icon, and select New repository.
  3. In the owner drop-down, select the account to create the repository under.
  4. Enter a 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 for giving a brief overview of each project and is usually the first item shown when someone visits your repository.
  • You can document your repositories using wikis on GitHub. Wikis are a useful way to present in-depth information about your projects.
  • By default, repositories can be viewed by all members of the organization, but you can change this. You can instead manage repository access so that you manually grant access on a per-repository basis. See the next section for details.

Manage repository access in your UBC GitHub organization

If you manage an organization on UBC GitHub, you will have the ability to change the permissions associated with repositories for teams and individuals. By default, repositories can be viewed by all members of the organization. If you want to manage which members can access which repositories, you will need to change this default setting.

  1. Log in to UBC GitHub with your UBC CWL.
  2. Click your profile icon in the upper right, then click Your organizations.
  3. 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 new default, and confirm the change in the pop-up window.
  6. Click Go to your organization profile in the upper right.
  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 the UBC CWL username or team name 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. Courses oriented around discussion or collaboration may benefit from having a few main repositories viewable to everyone in the course. Courses based more around assignments or labs may benefit from having a repository for each submission, especially if they are large courses—this way, only the single student/assignment group and teaching team will have access.
  • 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 Docs 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