Git repositories for every student and teacher, hosted for your college

Version control is part of the computing curriculum and part of every programming job, and the usual way to teach it is a GitHub account per student, which a student under thirteen cannot have and a college has to explain to parents. Here there is nothing to sign up for: Git is part of the platform, behind the same sign-in.

Every member of staff and every student at a college that uses the platform can open Git from the bar, make repositories, push to them from their own computer and share them with whoever they choose. It is the open-source Gitea, run by us on a server of our own rather than a third party's, so a student's code is not handed to anybody else.

Who has it

Staff and students of a college. Not the Public college’s lessons, which anybody with a personal account can add, not an individual account learning on its own, and not the site's own administrators. A college that is suspended, and an account that is suspended or waiting to be deleted, cannot open Git until that is lifted, and its repositories are kept exactly as they were.

Nothing is set up by hand: somebody's Git account is made the first time they open it, with their name from the platform. Removing an account here switches its Git off the same moment, and putting it back from Deleted items switches it back on.

  1. Press Git on the bar. The Git page says whether you have it and what your Git username is.
  2. Press Open Git. You are signed in to Git with your platform account. There is no second password.
  3. Make a repository. Every repository is private, and stays private: only the people you add can see it.

Pushing from your own computer

Git on a laptop or a lab machine talks to the server over HTTPS with an access token, never a password. Make one in Git under Settings, Applications, give it access to repositories, and use it as the password the first time `git push` asks. Your Git username is on the Git page.

A token can be withdrawn on the same page at any time, and stops working on its own if your account is removed, suspended or leaves the college.

One push may be up to 100 MB, and Git LFS takes files up to 100 MB each. There is no SSH, deliberately: HTTPS goes through a school network that blocks everything else.

Limits, and where it is kept

Each account may make up to 50 repositories. We look at anybody holding more than 1 GB across all of them, and talk to the college before anything is done about it.

Repositories are kept on a server we run ourselves, with a copy taken every night. Large files, pictures and attachments are kept with them.

Coding tasks and Git

A coding task can be loaded from a repository, with its test files kept hidden from students, and a task can give each student a private repository of their own to clone, commit and push to. Each has a page of its own: Create a coding assignment from a Git repository, and Give every student a Git repository to clone, commit and push.

Questions people ask

Can a student change the tests they are marked with?
No. Hidden test files are never given to them, and whenever their work is tested or marked your hidden and protected files are put back from the task. Changing a test in their own repository changes only what they see.
Do students need a GitHub account?
No. Git is part of the platform, signed in with the same account they already use, and the repositories are on our servers rather than GitHub's.
Can somebody outside the college see a student's code?
No. Every repository is private and stays private. Only the people its owner adds can see it, and nobody can browse the server without signing in.
What happens to the repositories when a student leaves?
Their Git sign-in is switched off when their account is removed or suspended, and the repositories are kept as they were, so putting the account back gives them back.