If you’re not already, host your own GitLab. If gitlab goes under or changes things around, you can still run your own version that’s “untainted” by the changes (like licensing changes or what-not). Neither Gogs, Gitea, nor Forgejo even comes close to feature parity with gitlab (they’re also way lighter in return). You can make do with some “add-ons,” like Jenkins (separate your CI/CD pipeline).
It also depends on what you want from a platform. If you’re just hosting your code, stagit or plain git is probably just fine. If you want to open bug tickets and track them, then get something like one of the 3 other stacks mentioned above.
Some things to note:
- gogs is a 1 man operation (so code quality is probably still holding up good)
- gitea is a fork of gogs (a long time ago) backed by a company and they develop gitea on github (and they have enterprise versions now)
- forgejo is a fresh fork of gitea and it’s developed in-house on their own forgejo instance (and is backed by large non-profits, like Codeberg (which also uses forgejo now)
It’s very ironic that gitea is not developed on a gitea instance. I’m personally kinda against software that is not used by their own makers (I actually was clueless until the forgejo fork happened). How does one know it’s a good product and what it’s missing or could be improved, if one is not using their own creation themselves?
There’s also something to be said about minimal software that does 1 thing and does it well. Git is great as a code repository and collaboration platform. Stagit is good for converting that repo info into http, gopher or gemini format. Jenkins and Woodpecker-CI (codeberg utilizes woodpecker) are good for building that code automatically. You can utilize a mailing list, a ticketing platform (znuny?) or even an online or IRL sticky notes board for bug tracking.
If you’re not dependent on a giant monolith like gitlab, then you can always change between them and remove pieces and add new ones and you’re never tied into a vendor’s implementation. If your whole organization is making use of gitlab and suddenly you lose access to it, then you’re SOL. But if gitlab was only your code repo and you had your ci/cd pipelines in jenkins and bug tracking on a mailing list, then gitlab going down wouldn’t really affect you that much.
Heck, if you were using a proprietary bug tracking (idk, jira?), because, idk, they’re really good or something (lmao), but they either went under or they increased your subscription costs, then changing just the bug tracking would be relatively easy. When you have so many moving parts glued together with chewing gum (like gitlab, gitea etc.), then migrating to another platform will be way more difficult, unless the platform has basically a 1:1 migration option (like from gogs to gitea in the beginning, or from gitea to forgejo for now).
As for “gitea actions,” I never used it myself and I doubt even gitea is using it themselves (see above), so I can’t say how good it is. My devs, back when I was a sysadmin for a software company, were very happy with jenkins. And codeberg is happy with woodpecker. I can’t say what will work best for you, you must try them and see for yourself.
You can even automate some things through other means, like detect a git change through, idk, something like entr
or when you run a stagit update and you get an RSS update in newsboat / newsraft, to automatically start building the latest git commit from whichever branch that got pushed. That’s some real platform independence right there (since most of these smaller utilities easily run on BSDs).