GitHub Classroom has closed: what you still have, and how to run next term
GitHub retired GitHub Classroom on 28 August 2026. If your course ran on it, here is what is still there, what is gone, and what your choices are for the next term. We make one of those choices, Uppcoder, and we say so where it comes up; the rest of this page is about GitHub Classroom itself and applies whatever you choose.
What happened, and when
GitHub closed new sign-ups to GitHub Classroom in May and retired it at the end of August. It now points educators to two partners: Classroom 50, free and open source from the Fifty Foundation, the nonprofit behind CS50, and Codio, a commercial platform.
- 26 May 2026: new sign-ups to GitHub Classroom closed
- 28 August 2026: GitHub Classroom retired; its website, APIs and related services decommissioned
- GitHub's recommended partners: Classroom 50 and Codio
What you still have
GitHub says that GitHub accounts, repositories and organisations created to work with Classroom are not affected. Everything that lived in a repository is still where it was.
- Your classroom organisation
- Every student repository Classroom created, with its full commit history
- Your template (starter) repositories
- Any tests kept inside a repository, for example in a tests folder or a GitHub Actions workflow
What is gone, or going
GitHub says some Classroom data is being permanently deleted under its retention policies. GitHub's Classroom Export Utility downloaded this data as JSON and CSV files, but it worked through the Classroom APIs, which GitHub says are now decommissioned. If you ran it before 28 August, keep those files; if you did not, plan to rebuild what is listed here.
- Classroom and assignment names
- Tests defined in Classroom itself rather than in a repository (autograding set up on the Classroom website)
- LMS-integrated rosters: the LTI link between Classroom and Moodle, Canvas and the rest
Finding your students' repositories
Classroom named each student repository after the assignment and the student's GitHub username, so the repositories of one assignment share a prefix. With the GitHub CLI (gh) you can list them, and clone them all into one folder. The roster that matched usernames to students was Classroom data; rebuild it from your LMS class list or your own records if you need it.
# list one assignment's repositories
gh repo list YOUR-ORG --limit 1000 --json name -q '.[].name' | grep '^assignment-prefix-'
# clone them all into the current folder
gh repo list YOUR-ORG --limit 1000 --json name -q '.[].name' | grep '^assignment-prefix-' \
| xargs -I{} gh repo clone YOUR-ORG/{}
Before next term: a checklist
Whatever you use next, these steps keep last term's work safe and make the next one easier to set up.
- Keep the organisation. Archive last term's student repositories rather than deleting them, if your school's retention rules allow it
- Move tests into the template repositories, in a tests folder, so they travel with the assignment whatever tool you use next
- Write down the assignment list with each template repository and its due dates, since the names in Classroom are being deleted
- Check your LMS: if Classroom was linked to Moodle, Canvas, Blackboard or Brightspace, remove the old activity so students don't click into a dead end
- Pick the replacement before the term starts and try one assignment end to end with a test student account
The options for next term
Each takes a different approach; which fits depends on your course, your school's rules on student data, and how much you want to run yourself.
- Classroom 50 (free, open source, the Fifty Foundation): closest to GitHub Classroom, with assignments from template repositories, autograding through GitHub Actions, rosters and submissions, on GitHub. Needs an organisation on a GitHub Team or Enterprise plan (free for verified educators through GitHub Education) and a token with read and write access to the organisation's repositories
- Codio (commercial, a GitHub partner): a hosted platform for coding courses with its own content, environments and autograding, and migration guides for GitHub Classroom users
- Do it yourself with the GitHub CLI: for small courses, create the student repositories from a template with gh and a list of usernames, and mark by hand or with your own GitHub Actions; community tools shared in GitHub's own discussion of the change do this for you
- Uppcoder (that's us; commercial, with a free tier): assignments are git repositories with starter code, tests and a solution; every student works in the same ready environment in the cloud, so nobody installs anything; tests mark each hand-in and you mark the rest by rubric; hand-ins can stay in your own GitHub organisation; it works inside Moodle, Canvas, Blackboard and Brightspace over LTI 1.3, or on its own
Sources
- GitHub Changelog, 27 August 2026: GitHub Classroom deprecated
- GitHub Changelog, 26 May 2026: GitHub Classroom sign-ups are no longer available
- GitHub Docs: Export or migrate GitHub Classroom data
- GitHub Community: the educators' announcement thread
What lived in a repository is still yours. Whatever you choose next, keep the tests and the work in git, and the next change of tools will be an easier one.
Moving a course to Uppcoder, free until 30 June 2027
For teachers moving from GitHub Classroom, we move one course across for you, up to ten of its assignments, and it runs free until 30 June 2027. Open to the first 20 courses, one per teacher and up to 40 students, applying by 15 December 2026; we confirm each one by email. No card needed, and nothing renews by itself.