jahed.dev

Git Hosting needs Federation

This week, after months of mulling it over, I decided to stick with GitHub. I was planning to migrate to GitLab, mainly because it's open source. I prefer having the option to self-host if and when that time comes. However, as I started moving repositories over, I realised one major flaw: Accounts.

Too many accounts!

To contribute to a hosted Git project, people are expected to submit issues and send pull requests. To do that, they need to create an account. If I were to migrate off of GitLab onto a self-hosted instance, people will need to create accounts on my instance, and I still need to maintain accounts to contribute on GitHub and GitLab. I don't want to deal with that. Why should people need to create accounts on every single instance just to contribute? If everyone hosted their own instance, we'd need to maintain tens or even hundreds of accounts. Credentials and all. Password manager or not, that sucks.

GitLab does not solve the core issue. It kind of spreads the problem out across more accounts. So my intentions for moving to GitLab, either managed or self-hosted, are misguided.

What about email?

At this point, some may point out email. The email workflow is baked into Git. Git is made for Linux development and that uses email. The problem is we have courses and workplaces teaching generations of developers to use GitHub's workflow. Even most alternatives copy GitHub. While Linux can afford a high barrier to entry, most projects aren't that big or complicated. We can't all require contributors to learn and follow an unfamiliar email workflow, unless if it's already the norm.

In an ideal world, I'd love to use email, we don't use email enough nowadays. But the world's not ideal. GitHub's never going to support email workflows, GitLab probably won't either. Whatever their reasons, whether it's lock-in, spam, tracking, whatever, I can't see that future.

Is it possible to have a GitHub-like interface that uses an email workflow behind the scenes? Maybe. I'm not familiar enough with email workflows to envision that.

A shared protocol

So, we need the ActivityPub of Git Hosting. A Mastodon. A federated protocol where someone can create one account on their own instance and contribute to any other GitHub workflow-like instance. Luckily, that seems to be in the works in the form of ForgeFed. Hopefully something comes out of it. Unlike email, I can see GitLab adopting such a protocol. Maybe GitHub will too... eventually. Twitter and Facebook don't support ActivityPub for obvious corporate reasons, so who knows.

Conclusion

Email, ForgeFed or whatever comes, I'll just wait for now.

Thanks for reading.