Github replacement

Our school recently just blocked GitHub, which means that either we try to work outside of school, use GitHub with a hotspot, or we have to use other application similar to GitHub. Any suggestions?

You could self-host a GitLab instance on a VPS like DigitalOcean, but that’s more work: Install an offline self-managed GitLab instance | GitLab. Hopefully, https://gitlab.com/ just works in the first place. If that’s blocked, you can also try https://bitbucket.org/, but I don’t like the interface as much.

4 Likes

You’ve probably already tried this, but in case you haven’t: try contacting your school’s IT admin to try to work out a website allowlist that works for your team. We’ve had issues in the past where we needed access to sites normally blocked by the school’s (overzealous) network protections, but after working with the admin we were able to either get sites completely allowed or allowed on a team account outside normal school hours. Gitlab, BitBucket, or other tools will work fine for hosting code but because of the ubiquity of GitHub, it’s great to help students build a public portfolio of contributions and provides a starting point for contributing to open source software.

11 Likes

First step should always be trying to work with school IT, explaining the valid need for GitHub, and asking them to unblock it to some usable extent. That might work for some, but probably doesn’t work for most. It’s worth a try if that pathway has not been tapped out.

For team code push/pull, it’s not that bad to temporarily connect a laptop using cell data on someone’s phone. Push once at the end of a work session. Pull once at the beginning of a session if anyone has been working at home. Data volumes aren’t particularly large, especially compared to audio/video streaming data going through most cell data plans.

Package downloads from GitHub might be a bit much for cell data. Try to do as much of this from another location as possible, but every now and then there might be an “emergency” need to grab something with cell data.

If the school is blocking GitHub, they are likely blocking lots of other sites that are useful for robotics development. This blocking seems to have become much more widespread, much more draconian, and much less reversible in just the last few years. At some point, it may be worth asking the question if it’s worth having a school-based FRC team.

5 Likes

Going off calcmogul’s suggestion - gitea is super easy to install with Docker, very lightweight, very similar interface to Github. I’ve had 0 issues with running and updating it.

2 Likes

You can also run this on premises, IT probably wouldn’t like this, but this is what we do at work. We are able to get to it from outside of the office still and it acts like GitHub in a local setting. Really convenient and there’s less worry about accidentally making a repo public. They still need to have an account setup locally to even view our public files. Most times you can set stuff to internal for your project group and away you go.

Well, I face the same issue and I use a VPN.
There’s free options in the market

I hesitate to recommend this solution, as it’s possible to get in a lot of trouble with the school for violating their IT policy. Especially if teachers/adults are instructing students to violate the policy.

5 Likes

One thing possibly worth clarifying: did your school block github.com entirely, or did they just block SSH over port 22? If it’s the latter, GitHub has an alternative SSH endpoint available over port 443 (and so does GitLab). This doesn’t apply to self-hosted instances, but a similar configuration ought to be possible to set up manually.

I’ve had good luck with this at a few different schools, but your mileage may vary depending on what filters you’re dealing with and whether you’re using git over SSH at all. Generally, I expect IT departments would be more reluctant to unblock anything on port 22 (if that’s what they’ve blocked) than to unblock a specific domain.

3 Likes

Note HTTPS is also an option for GitHub instead of SSH. Agreed it’s very common for schools to block all SSH connections.

That’s a good point.

It’s also common for schools to just block all of GitHub, as it hosts all kinds of software, not just educational stuff - at least thats how my students explained that it got banned in our school district. We just work off hotspots, unfortunately.

If you do use HTTPS, make sure you put your sign-in credentials into Windows’s credential manager. Otherwise, you’ll have to enter your credentials any time you run a Git command, which is obnoxious (as opposed to SSH, which supports passwordless keys, cuz the SSH key is already a more secure form of auth than the password).