Creating student repositories after deploy
After post-push validation passes, create private student repositories without exposing the template or solution, and distinguish feedback runs from authoritative grading.
Written By Alan Gandy
Last updated About 3 hours ago
After your assignment deploys and the post-push validation banner turns green, CodeTeach shows the Create Student Repositories guide on the Deploy step.
GitHub Classroom is no longer required for this workflow. CodeTeach creates the instructor-owned starter template repo and, depending on your deploy choice, either a separate private solution repo or an instructor-only solution branch. You create and manage student repos directly in GitHub.
The core rule
Keep the CodeTeach-created template repo private and instructor-only.
Do not add students to the template repo. If you chose a separate solution repo, keep that repo private and instructor-only too. If you chose a solution branch, remember that the answer key is inside the template repo on a non-default branch.
CodeTeach may retain generated session artifacts to support editing, downloads, redeploys, and troubleshooting. After deploy, GitHub is your authoritative repository of record for starter and solution artifacts.
Create one private repo per student
For each student:
Open the CodeTeach-created template repo.
Click Use this template.
Create a private repository for that student.
Leave Include all branches unchecked.
For an organization-owned repo, open Settings → Collaborators and teams, check whether the student is already an organization member, and confirm the base role plus inherited team access do not expose the repo. Then use Add people to grant direct write access only to that repo. A non-member becomes an outside collaborator; an existing member remains an organization member.
For a personal-account repo, open Settings → Collaborators, use Add people, and invite the student as a regular repository collaborator.
Paste the student's exact GitHub username and verify the invitation applies only to that student's repo.
Repeat once per student.
Leaving Include all branches unchecked is important: students should receive starter code only, not any instructor-only validation or solution branch.
Do not use the Find people or a team search box inside the access table to invite a student. That box searches people and teams that already have access. The invite control is Add people.
Email lookup is unreliable because many GitHub accounts keep email addresses private. Collect exact GitHub usernames before you start.
Streamlining larger rosters
The manual GitHub UI flow is the safest default. For larger classes, use an instructor-owned CSV roster and GitHub CLI or REST API script to create one private repo per row. In an organization, non-members become outside collaborators and existing members retain member status; personal repositories use regular collaborators.
CodeTeach does not store rosters or manage student access. That keeps student records with the instructor, institution, LMS, and GitHub.
Grading
The autograder workflow is already committed at:
.github/workflows/classroom.ymlGitHub Actions runs the workflow on every push and gives the student rapid feedback. Because a student with write access can modify repository workflows or permissions, do not treat this result alone as tamper-resistant authoritative grading. For consequential grades, evaluate the submitted commit from an instructor-controlled repository or runner and retain the canonical result in the LMS or another protected record.
Files students should not edit
Tell students to work in the starter files required by the assignment. They should not edit:
.github/workflows/classroom.yml
.github/classroom/autograding.json
README.mdFor Jupyter notebook assignments, students also should not edit:
.github/scripts/normalize_notebook.py
.github/scripts/extract_notebook.pySuggested student instructions
You have been invited to a private GitHub repository for this assignment. Clone it, edit the starter code, commit, and push. Each push runs the autograder in GitHub Actions. Check the Actions tab after each push to see whether your submission passed.
Where to go next
Need to understand the deploy states? Read the post-push validation banner article.
Need a manual export? Download the ZIP from the Deploy step.
Need to change the assignment? Edit the CodeTeach session, re-validate, and deploy a new template repo.
More in Deploying to GitHub
Downloading the assignment ZIPStill need help? Ask the team