Wow. I did not think this would go so fluidly.

After Microsoft bought GitHub, the open-source world went into a state of frenzied panic. Some decided to remain on GitHub, hoping Microsoft could at least improve it. Others didn’t take kindly to the matter and decided to take their projects elsewhere.

One of the others was, in fact, me. Even though Microsoft did announce they loved open-source, I wasn’t ready to trust them quite yet. I still remembered how most of their software were proprietary and how they stunted growth of open-sourced projects for years because of vendor lock-in. Their business choices such as gluing all their products shut so that nobody could modify them was also a major flag. (just take a look at that bloody awful Surface Laptop on iFixit.)

Time to move.

The Actual Move

When I signed up for the migration to GitLab, their servers were already going into overdrive. After the news broke, GitLab posted on Twitter that they had an influx of developers forking their projects to GitLab, with more than 250k project imports.

As a result, next to all my repositories, a small tag marked “Pending” spun for hours. After a couple of days, I checked back in with GitLab and was delighted to find all my projects ready to go.

Still, GitLab took a couple of hours to spin up more instances to handle the increased load to their website. Given how the rumors had started this entire mass migration, they could’ve planned ahead, but I guess you really don’t know anything concrete when it comes to trading companies on the market.

Surprisingly, GitLab imported all my projects as private at first. I guess that’s a good move, because it allows us to define what projects could be released as public. It’s pretty hard to hide projects that accidentally go public, right?

GitHubLab Pages

There was one final hurdle to jump over - GitHub Pages. As you very well know, the text you are reading right now is hosted on GitHub was once hosted on GitHub. The plan now was to get it on GitLab Pages.

Surprisingly, this wasn’t very hard to do. And it was even more customizable than GitHub Pages. Basically, GitLab provides Continuous Integration (CI), and using this, we can generate our website and serve it.

You can check out my repository in my profile to see how it works. Basically, you need to make a .gitlab-ci.yml file in your project directory, and then push it to GitLab. Once done, GitLab automatically generates your website using the configuration defined in the file. From there, the artifacts of the builds are published to your website.

The custom domain and SSL certificate on CloudFlare part was a bit more harder, but still quite straightforward to setup. First, I had to add an A record to GitLab servers (52.167.214.135) on CloudFlare, then generate origin certificates and add them to my GitLab settings. You can find complete instructions here.

And that was it! Now, you’re reading text served up from GitLab servers!

Concluding the migration

I’m really pleased with GitLab, though there are some enhancements to be made and bugs to be fixed.

  • I really don’t like the wording of some options. For example, “Everyone with access” and “Only Project Members” have very confusing interpretations. Does it mean everybody with access to GitLab can edit my repository? Or only anyone I added to my access group? Then why does the second option exist?
  • There is no native black theme for GitLab. They’re working on it, but in the meantime a plugin named Dark Reader has served me well. Hilarious fact: the project is on GitHub.
  • The UI is needlessly cluttered and slightly difficult to navigate. I’m not saying it’s impossible to use, but it would be nice if usability was considered during development of GitLab. For example, inside the Settings tab, why have two distinct options named “General” and “Repository”? It’s not extremely intuitive.

But, it’s just small fluff. To be honest, most of these issues are probably because I come from GitHub, so I have these useless stereotypes about how Git websites should behave. Maybe GitLab will improve later on.

How do you like GitLab? Do you think GitHub is headed for a complete collapse? I’d ask you to comment if it wasn’t for the fact that this site doesn’t have a comment section yet - darn. Well. Until next time, then!