GitHub meets GitLab

Friday, Mar 28, 2025| Tags: GitHub, GitLab

DISCLAIMER: Image is generated using FREE version of ChatGPT.




GitHub meets GitLab


Recently at work, I had to work with a codebase that resides in GitLab.

I am a die-hard GitHub user and never considered GitLab for any one of my pet projects.

All my open-source work is public on GitHub.

That said, I created an account, @manwar, on GitLab as a protest when Microsoft took over GitHub, but I never used it as much as GitHub.

As a trial, I did create a project for one of my CPAN module BankAccount::Validator::UK, six years ago.


Year 2025


Fast forward to today, I find myself staring at GitLab again.

To familiarise myself with the GitLab UI, I created a new project called Hello World.

I even added a simple pipeline which is equivalent to a workflow in GitHub.

I tested it with a new branch and a merge request.

I experienced a bit of culture shock when I encountered GitLab's terminology.

So, I decided to take a step back, understand everything from ground up.

In this post, I’ll explore GitLab from a GitHub user’s perspective to make it easier for me to grasp.


Top-level container


In GitHub we have something called GitHub Organisation.

I didn’t use it initially because I wasn’t aware of it when I started.

By the time I learned about it, it felt too late and time consuming to restructure everything.

So I stuck with standalone repositories.

In GitLab, the equivalent of an Organisation is called a Group.

Just like in GitHub, you don’t need to have a GitHub Organisation to create a repository; in GitLab also, you can create a project without a Group.

By the way, what GitHub calls a repository, GitLab calls a project.


Teams


In GitHub Organisation, you can create multiple teams.

And each team can be granted access to one or more repositories within the GitHub Organisation.

Similarly, in GitLab, within a group, you can have multiple subgroups (forming a nested hierarchy).

GitLab: https://gitlab.com/<group-name>/<subgroup-name>/<project-name>

GitHub: https://github.com/<org-name>/<repo-name>


Code Reviews


To initiate a code review in GitHub, we create a pull request after pushing the changes to a branch.

In GitLab this is called a merge request, but the process remains the same.


CI/CD


In GitHub, we use GitHub Actions for workflow, configured in .github/workflows/*.yml.

In GitLab, it is called pipeline and the configuration file is .gitlab-ci.yml.



For now, this was enough to get me started.

I know, GitLab is a beast compared to GitHub.

I am going take one baby step at a time.



Keep Hacking !!

SO WHAT DO YOU THINK ?

If you have any suggestions or ideas then please do share with us.

Contact with me