I use GitHub as my primary code hosting, collaboration and CI/CD platform, as well as for my portfolio.
The reasons against GitHub:
- No fine-grained Permissions possible. Write-only for whole repo only. The fuck?. Not only will this potentially end in a disaster, it already ended up causing the necessity for every big multi-maintainer project to have an maybe-even-own-written GitHub App that allows specified users to do a specified set of things by posting comments that are structured as commands.
- GitHub Packages Size Limit
- [Addendum 2022/07] GitHub Actions is great in general, but it lacks some features in the long run / when you want to get more advanced. (e.g. early-exiting the job, getting the job or workflow id in a job, job-level if's for matrix'ed jobs). But!: You are not locked-in to use GitHub CI. GitHub integrates and shows the results of other CI systems too!
The reasons for GitHub are rather simple and more pronounced:
- Everyone, even non-Developers, know how to use GitHub.
- Everyone has an Account on GitHub.
- GitHub Actions are great and completely FREE (I repeat: free, unlimited access to great automated virtual machines that can do anything on any action trigger).
- GitHub Action runners are actual virtual machines (even windows/macos possible) and not just some hacky docker containers, allowing you to really do anything.
- The API and Documentation is top notch.
21 upvotes·38.7K views