Whilst GitHub is a very popular solution some people prefer The first single application for the entire DevOps lifecycle - GitLab | GitLab which seems to be more focused on CI/CD (Continuous Integration/Continuous Development), although to be fair GitHub is now making progress in this space, so there is less of a difference now.

Whilst looking into this and considering where to host some code, it was pointed out to me that GitLab can do "mirror pushing" to GitHub, so you can have the best of both! The process for setting this up is as follows:

  • Create a project in GitLab, for example Geoff Lawrence / Geoff Does Stuff · GitLab
  • Commit some code or changes the GitLab project
  • Create a repository in GitHub glawrence/geoff-does-stuff
  • Generate a personal access token in GitHub
  • Configure GitLab to Mirror Push with the GitHub token
  • The changes will then shortly be visible in GitHub
  • In addition any commits in GitLab will very quickly appear in GutHub,

This is documented at Repository mirroring | GitLab.