Github may block access to your repos and there is nothing you can do about it

A few years ago I made a project with a friend and we collaborated on Github in his private repo. After we finished the project I forked it, to be able to still access it independently from him.

While I still have unlimited private repos, my friend let his Premium Account (Student) expire. The original repo is now inaccessible. This is expected.

When I recently needed a code snippet from that project I visited my fork and was greeted with:

Screenshot: My fork is inaccessible

My fork is inaccessible to me because the upstream repo was disabled. Judging from the wording “root repository” this is no mistake. If I wanted to access the repo, I needed to convince my friend to buy premium.

Maybe I just misinterpreted how a fork works? Let’s look at the documentation:

A fork is a copy of a repository.

No mistake there, I should have access to my fork, because it is a copy not just a reference. Probably I have recourse against Github as I legititimetly should have access to that repo?

From their terms of services:

GitHub has the right to suspend or terminate your access to all or any part of the Website at any time, with or without cause, with or without notice, effective immediately. GitHub reserves the right to refuse service to anyone for any reason at any time.

Not so much.

Luckily I found an old local copy of my project, but this taught me not to rely on Github as only storage for code. I haven’t tried contacting customer support, but as this appears to be official policy I would not expect a change there.

UPDATE: Someone pointed me to this article page so it actually is documented, just not on that page. And also on another page there is mention of this:

Private forks inherit the permissions structure of the upstream or parent repository

While this decision has a reasoning (“This helps owners of private repositories maintain control over their code.”) I think it is a strawman argument, because as long as you can clone a repo an owner of a repo has no real control over the distribution of the code and the current behaviour is just user hostile.

Discuss on Hacker News