GitHub Classroom gets a reliability and performance boost

Image of Nathaniel Woodthorpe

Nearly 20,000 teachers use GitHub Classroom to manage coding assignments and automate repository creation, especially for distributing starter code to each of their students. But the starter code replication feature was slow and unreliable—taking 15 seconds, on average, per repository and failing five percent of the time. This meant that the creation process would likely get stuck at least once for teachers with a class size of 20 students.

Fixing GitHub Classroom’s long-standing problem

Replicating starter code is one of GitHub Classroom’s key features. Unfortunately, it was unreliable and sluggish, leading to a long-standing source of frustration for teachers. After some research, two of GitHub’s 2019 summer interns, Eric Pickup and Shaunak Pagnis, found a promising solution using template repositories. Template repositories are a built-in feature that allows you to create new repositories using another as a template. It works perfectly with GitHub Classroom since a teacher’s starter code acts as a template.

Eric and Shaunak shipped this feature to the entire GitHub Classroom community earlier this month just as teachers were setting up for the start of school. Now, when teachers create an assignment with starter code, there’s an option to import using a template repository.

Results

Since its release, over 10,000 assignment repositories have been created with template repositories. We’ve seen the success rate improve from 95 to 99.9 percent, and repository creation times decrease from 15 to two and a half seconds on average. We’ve already seen the community’s appreciation for this improvement.

“Classroom used to have occasional problems with its cloning process, where it would sometimes hang or leave an empty repository. I’m thrilled that the new Classroom is ready to go, and just in time with classes starting next week. This should substantially remove the headaches we used to have getting students started on new assignments.”
— Dan Wallach, Professor at Rice University

Request a feature

GitHub Classroom is open source, and you can watch development, make feature requests, or implement changes yourself from our repository. Check out our roadmap to learn more about the future of Classroom. For more information about template repositories, visit our help documentation.

Learn more about GitHub Classroom

Join us at GitHub Universe

Our largest product and community conference is returning to the Palace of Fine Arts in San Francisco, November 13-14. Hear what's next for the GitHub platform, find inspiration for your next project, and connect with developers who are changing the world.

Get tickets

GitHub Actions now supports CI/CD

GitHub Actions makes it easier to automate how you build, test, and deploy your projects on any platform, including Linux, macOS, and Windows. Try out the beta before GitHub Actions is generally available on November 13.

Sign up for the beta