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·37.2K views
Avatar of Jonas Pammer