What is GitLab?
There are two versions of GitLab: the hosted commercial product offered in a software-as-a-service (SaaS) format and GitLab CE (Community Edition). While the proprietary hosted product contains elements that aren’t open for review, it is based on GitLab CE, a Ruby on Rails application with some parts written in Go and Vue.js for additional speed and flexibility.
How does it work?
The core user functionality of GitLab is a visual Git repository management system that allows users to browse, audit, merge, and perform other everyday tasks that would otherwise require the command line interface. The bulk of the front-end user experience is powered by Ruby on Rails running behind a web server, which kicks off tasks via a jobs pool on a Redis server to a backend helper called GitLab Runner, written in Go.
Git is used to manage repositories via the GitLab Shell system, while PostgreSQL stores metadata about users, repositories, wiki docs, and more.
GitLab history
Ukrainian developers Dimitriy Zaporozhets and Valery Sizov released GitLab as a free, open-source application in 2011 and later formed the GitLab, Inc. organization in 2014. GitLab, Inc. acquired several companies, including Gitorious in 2015, Gitter in 2017, and Gemnasium in 2018, bringing new users into the hosted service and providing additional functionality to GitLab.
GitLab has received numerous rounds of funding and is currently expanding into the Chinese market. In 2019, GitLab, Inc. was valued at 2.7 billion dollars.
The open-source GitLab CE most stable release is 13.10.2, released April 1st, 2021.
Try it nowGet Free License
GitLab Integrations and Plugins
GitLab offers a wide assortment of plugins and integrations, allowing you to extend its already impressive functionality. You can authenticate against LDAP or OAuth2, add Akismet to reduce SPAM in public projects and issue tracking, and integrate with task management systems like Trello.
Additionally, GitLab offers a GraphQL API that developers can use in other applications.
Features and Advantages
- The key advantage to GitLab over competitors is its ability to run in a self-hosted/on-premises environment
- In-depth Source Code Management (SCM) allows developers to review, track, and merge branches with ease
- Continuous Integration (CI) provides an automated pipeline for compiling, testing, and validating software builds.
- Detailed permissions allow you to restrict merge and push to specific users
- Wiki pages allow for rich project documentation.
- GitLab Pages provide free static websites hosted from Git repositories
- Automatic secrets detection and security testing help keep your codebase secure
- Time tracking, productivity analytics, and integration with Jira keep your team on track
- Additionally, GitLab has premium plans that offer enterprise-level features like in-depth contribution analytics, group and project insights, code quality reports, and compliance tracking
Online vs. On-premises
GitLab’s open-source license gives users the freedom to run a copy of GitLab Community Edition (CE) on their servers, either in the cloud or on-premises. While this is a valuable advantage, users should consider the overall cost and benefits of self-hosting vs. purchasing a managed service from GitLab.
If an organization doesn’t have existing infrastructure, the IT budget must include the cost of the new servers. Additionally, the setup and maintenance of those servers, and the GitLab software itself, requires system administration or DevOps experience. This upkeep will either take time away from existing staff or necessitate hiring an additional person to manage it.
If an organization is just starting out and on a shoestring budget, GitLab’s free plan offers a generous selection of features. If time and personnel are limited, the plethora of features and support included in the premium plan make hosted GitLab a good investment.
GitLab, and its competitors like GitHub and BitBucket, are secure services offered by well-trusted companies. That said, your code stored in their environments is ultimately running on someone else’s servers. For organizations that want complete privacy and prefer to manage their DevOps infrastructure in-house, it’s hard to beat self-hosted GitLab Community Edition.
GitLab vs. GitHub
GitLab and GitHub are excellent products. Other than GitLab’s ability to run on-premises as an open-source application, the feature differences are generally minor.
- GitLab offers a self-hosted product, GitLab CE, whereas GitHub is entirely provided as hosted Software as a Service (SaaS).
- GitLab was the first to offer integrated CI, and even though GitHub added CI functionality via Actions, GitLab provides an easier path toward DevOps automation out of the box.
- GitLab includes native time tracking support, whereas this feature requires a third-party Marketplace app on GitHub.
- GitHub has a larger developer community.
Read our detailed GitLab vs. GitHub comparison for more info.
GitLab and Incredibuild
GitLab’s deployment and continuous integration tools give your team a significant advantage. Incredibuild enhances these abilities by giving you the power to conduct builds across multiple machines—both on your local network and in the cloud. This speeds your CI (continuous integration) pipeline and lets developers test and build projects far more quickly. Configuring Incredibuild integration with Gitlab is quick and easy. Simply edit a few files and you are good to go. For details, see: Running Gitlab Builds with Incredibuild – IncrediBuild User Manual – IncrediBuild (atlassian.net)