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 !!