Back to GitHub.com

GitHub Education

GitHub Education

Classroom guide

A step-by-step guide on setting up your GitHub Organization for classroom use.

Classroom guide

A step-by-step guide on setting up your GitHub Organization for classroom use.

Deprecation Notice:

GitHub Classroom automates the manual processes described in this guide and is the recommended way to teach with GitHub.

Continue to GitHub Classroom

We're here to help. If you get stuck or have any questions about using GitHub in the classroom, please ask a question in the repository or send us a note.

Have ideas about how this guide could be better? Send us a pull request.

Creative Commons License

Setup

To set up assignments using the sandboxing method (a.k.a. "fake forks" or duplicated repositories):

1. Get an upgraded plan

See our guide on getting private repositories to use in your class. You will need one private repository per student per assignment.

2. Set up the repositories

You have a few options for how to organize the repositories for your students. We have a command-line tool called teachers_pet that automates some of these steps. You can use the create_repos action to create the repositories, or do the following steps manually.

Individual projects

For each student:

  1. Create a repository in the organization based on the student's name.
  2. Create a team in the organization, matching the name of the repository.
  3. Set that team to have Push/Pull permissions.
  4. Add the student to that team.
  5. Give that team access to the corresponding repository.
Group projects

For each group:

  1. Create a repository in the organization.
  2. Create a team in the organization.
  3. Set that team to have Push/Pull permissions.
  4. Add all of the group members to that team.
  5. Give that team access to the corresponding repository.

3. Seed the repositories

If you have boilerplate code/files each student will need, you can create a starter repository locally, then push it up to each student repository for that assignment. The push_files action in teachers_pet automates this for you.

For the assignment instructions, use one of these two recommended options:

Collecting assignments

When you are ready to grade the assignments, you can clone the repositories to your machine in bulk using the clone_repos command in teachers_pet.