I have great thoughts about GitLab my experience has been really good. I was really impressed when I started working with it and configured the first project there. I definitely recommend GitLab to anyone that wants to start a new project and doesn't want to use too many tools, GitLab has everything that you need to start.
I started using GitLab for an external project and I like the following:
1) Easy to work with and auto explanatory. Creating/configuring a new repository is really easy.
2) Great CI/CD implementation. Having the repository with built-in CI/CD is really convenient, you can have everything related to the build and deployment process saved along with your code. I have used bamboo and I really appreciate this feature, it might have its problems but it is really useful.
3) Unlimited private docker registry, you can have your own private registry for free. I cannot express how useful this is.
4) In order to help with the CI/CD process it allows the creation of tokens with access restrictions (read only), so you can use these tokens to download your code or your docker containers without having to provide your personal credentials.
5) It has its own task manager
6) It has free agents that are in charge of executing your builds/deploys so you don't have to provide your own resources.
1) Configuring build variables is really messy and it is not an ideal implementation. I haven't found a way to set different values for them depending on the branch, so configuring different environments is not too easy
2) Even though having your code with CI/CD is really convenient, it has some drawbacks. If you have an established continuous deployment process that you repeat in many projects and you want to change it (maybe a fix it or improve it) you will have to add that change to all your repositories and all the branches that you want to deploy. So it is a really good feature but it is not too flexible
3) The task manager is messy, and I didn't find a way to have a shared board.
4) It does not have too many software integrations, as I mentioned before I have used bamboo and I really like their integration with other software
We are utilizing gitlab to handle our code versioning and our continous integration and delivery pipeline. This includes our whole workflow from writting code to building it, testing it and deploying it to production.
- Excellent UI that is easy to understand: many of our developers are migrating for the first time from other software (github, bitbucket) and a constant comment is that the ui is intuitive and easy to understand compared to previous software. The transition is always smooth.
- Feature-full product: Gitlab offers a variety of features that I have found to be excellent and of high quality. The code-review process in gitlab is always smooth with the ability to resolve or re-open discussions, address specific comments or the whole of the discussion, the ability to suggest and even apply and commit code from the ui is also a huge plus. The IDE is decent and the file editor is also decent. The CI/CD integration with gitlab runners is smooth, the notification system is great. I get an email whenever a test fails. All from the gitlab ecosystem, i do not need to go to circleCi or some other provider for all of this, which allows the ui and experience to be consistent.
At this very moment there is no feature or issue that I have found to be detrimental to my experience.
GitLab CI is by far the most valuable feature of GitLab. Travis CI was the first one to offer a YAML-file based build system - but it's GitLab CI to make pipelines very flexible and expressive. While Travis was okay for most popular languages in open source projects. GitLab made it possible to run enterprise-grade pipelines with many stages, each having multiple simultaneous jobs. This, plus git repository, Docker registry, and several other tools, making it a complete solution - starting from an early development cycle, through build, to deployment and monitoring thereof.
Several pages perform bad, e.g. pipelines list in big projects. Some pages don't have search and sorting. These are minor issues though.
The overall experience was good. It's highly recommended for companies who want host their code in their own infra and are ready to maintain the code hosting software itself
I use the GitLab Community Edition (CE) and the first thing I love about it is it's Open Source! I am a believer of Open source software! In my company, we host our own instance of GitLab CE and it's been smooth. We use it for source code hosting and for CI/CD. Source code hosting has been great. CI/CD is nice too. GitLab has all the features required by a code hosting software - groups, groups within groups, repos, role based access control for members. Members can also be grouped with names - helpful to create a group for a team and add members to the group and give access to the team/group. It has forking, SSH/HTTPS git repo access, Notification/Watch repo features. It also has lots of integrations. We use slack a lot and we have integrations with slack which GitLab provides, and we have configured it to get notified for different things, starting from commit pushes to pipeline failures. We also use the GitLab pages for hosting the Wiki site for repos. It's pretty neat! The GitLab CI/CD has the concept of runners which run the CI/CD tasks/jobs. Runners have tags, and you can easily use the appropriate tag in the config to run the task in the appropriate runner. We use different runners for different things like, pushing to a Docker registry (requires special permissions), accessing a prod DB/application, running normal tasks (scripts) etc. All in all, it's quite good
Although GitLab has lots of features. I do have some complaints about it. I hope that newer versions will make my complaints obsolete! Starting with the CI/CD, it's quite good. But it lacks some features and flexibility which we expect in the upcoming versions. Features like one CI/CD pipeline triggering another pipeline (not present in CE, not sure about Enterprise Edition) and things like grouping jobs in a stage. Also, the CI/CD UI is not very good. It has glitches, there's no auto refresh in all the UIs to show the status of a job - if it's successful or if it failed. The job UI also isn't very great, like, if the job names or stage names are big, it becomes tough to read. Also, when the job log is very big, it reloads the page when the job finishes and truncates the output of the job and makes it available for download instead. This can be good or bad, based on the use case. For us, it was mostly not a soothing experience.
Best way to use it is to keep your gitlab organized is keeping pr's as functional as possible and not mashing 1000 changes into one pr. otherwise gitlab performance go down and so will the interest of the other people who review your merge request!!
Setting up gitlab to manage your software projects is child's play, and although the UI is minimal in design it which gets the job done but could definitely use some enhancements and that would make it a top tier no nonsense go-to-software-management-product.
Overall it is a great software. I am not aware of the quality of the customer service on the paid tier so can't comment on that. One can manage and maintain gitlab inhouse without needing any paid support.
I would recommend it without reservations to any and all software developing companies.
1. Free of cost
2. Highly efficient, does the job without uncertainty.
3. Never observed any downtime
4. Very frequent and proper updates to the software.
5. easy to maintain
6. can easily integrate with jenkins for Continuous Integration- Continuous Deployment.
7. Easy to setup and use, no support or setup or external teams required. Anybody with minimum computer skills can get this up and running.
8. easy integration with youtrack for issue tracking and merge requesting tracking
These are not very big cons, but I find them annoying and could definitely use improvement:
1. The edit description on an open merge request also shows up on the history. So If somebody were to make a 10 different changes to the title while keeping the
2. The code formatting in the description box is not too good. It can take several tries before getting it right.
3. There is no way of searching for something based on a line of text. For example if you were looking for a commit or a merge request but you only remember the
4. sometimes very challenging to go back and undo merges which are quite complex.
5. on a given pr, it shows icons of all the participants but doesn't say which participant did what... for example if 5 people have just viewed a pr and done nothing else even then it shows all of them as participants. It would be nice to have a feature which will only show activity by participant on every pr.
6. text based Search via ui is practically no existent. So if you search for something using a text which is part of a commit message, chances are it will not show up 100%.
Gitlab has an extremely robust free tier with tools that go far beyond simple source/version control. We use the Gitlab CI/CD pipeline runner extensively, allowing us to not only use Gitlab for source, but also for our deployment/build pipeline. Gitlab also has the ability to manage Kubernetes clusters from the suite, which is super helpful. We also extensively use the issue board for tracking scrum issues, which includes time estimates. Gitlab used to be most popular for offering free private repos, and it still does, but these other free features make it an absolute home run. We use Gitlab for every project because of how great it's been.
The pipeline runner can occasionally be a bit buggy sometimes, but nothing critical. For example, if you prematurely stop one pipeline and immediately start another, it can take 10 minutes for the new pipeline to start for some reason. Also, the time tracking on the issue board does not automatically put the sum at the top of the column, which I find annoying - we built a small gitlab api integration to pull that info for us. They have been updating this feature recently, though, so it may be solved soon.
Full suite of tools including but not limited to repository and issue tracking, milestones & issue boards, group and user management including project and even branch level permissions, continuous integration, scheduled jobs, project wiki, etc. All the features work together and using it to manage projects tends to pulls the details together rather than fragmenting them across different spaces.
The general workflow is similar enough to Github that most developers find it familiar. In fact there is probably feature parity or beyond, so other than needing another account there has never been much resistance to adoption among our developer team. At the same time the interface well designed enough for non developers to figure it out and stay involved as well.
The setup and update process is somewhat cumbersome on bare metal (probably easier using dedicated virtual machines and/or their omnibus package). There are a lot of dependencies and assumptions about the environment that make it much the most dreaded package to upgrade on my production servers.
It does kind of make assumptions about workflow that don't hold true for all projects. While it is flexible enough to adapt even when using only a subset of features on a project, it can leave people a little confused and overwhelmed because all the other unused bits are still around in the interface.
GitLab is a great place to host git repositories - for both private and commercial use. With its pretty and intuitive design, GitLab offers a great experience to work with. Collaboration is managed in a really great way.
Their pricing is also amazing: it's mostly free to use. We've had multiple private repos on GitLab for years now and haven't had any reason to upgrade to a paid plan so far.
GitLab's customer support team is really slow at responding to support requests. However, since I'm on a free plan, that's okay and I think they probably allocate all of their support resources to their paying users - and that's totally fine.
Very satisfied and will consider it also for the next professional projects.
The installation is pretty straight forward and easy. It's the only free git server solution I found that offers LFS support. We started our project without the support of Git LFS but as the project grew, we had to find a solution and transfer our repository to an LFS ready server. GitLab offered the perfect solution, allowing us to keep our existing SSH keys for authentication, existing LDAP users and transfer our existing project pretty easily. Since then, we never ran into issues and the server is running smoothly since the first day.
The server is based on RoR so it's heavier than a simple Git Server. You need to make sure you have enough resources to get it to run properly.
Complete source control and CI/CD system for writing computer software
Integrated CI/CD!!! can't emphasize how much this is helpful to have, I hate using Jenkins so much
The UI is very slick and good, while GitHub is the "de facto standard" I actually really love GitLab's GUI as well
not really their fault at all, but, a lot of -other- projects are already on GitHub.. so it's a bit annoying to cross collaborate with GitHub users (say - you want to open a pull request to a GitHub project so you're forced to do it on GitHub). It kinda sucks to have stuff spread out across multiple sites and have to get used to multiple UIs/concepts
From a developer perspective, gitlab shines when it comes to devops and developers needs for git integration. However I'd use different issue tracking tool with it, since the issue tracking that gitlab offers is pretty much lacking in some areas such as sub-task and etc. However It's still far superior against Bitbucket which I absolutely does not recommend
The integrated CICD is what makes this stands out for me.
The .yml configuration is powerful enough to access your servers from gitlab making every push you made build automatically.
Deployment Keys, Access token, its just way more powerful than github and much more UI/UX Friendly than Bitbucket.
Its also note to take that the pages are lighweight, you hardly ever feel the loading time. More top of it it's free.
While the git related features are astounding I feel like the Issue trackers are way more clunky to me.
The board is quite nice, you can drag items of it to different board categories, however. the lack of sub task for a task is killing me.
Suppose we have a feature task, I'd like to put a mini sub task under it so i can track all of it on one parent task. Just like how you can do it on redmine or asana. One thing that github is superior to gitlab is this area.
Our company uses GitLab for app development and docs. As a tech writer I'm mainly working in "developing" docs, and need to follow corresponding issues for software development in multiple projects/repos. I suspect there can be easier workflows to integrate the two (linking issues from different projects) but overall it's easy to manage working in multiple projects/repos.
I've used JIRA previously, and feel that the issue/bugtracking/task board side is comparable in features and reliability (though JIRA may offer more categories of information).
The Git side is standard, I don't miss any feature and always worked out snags without problem based on GitLab documentation. I haven't used GitHub as much, but from my experience GitLab mirrors the functionality with only slight differences, and covers more or less the same business needs.
-nice to create a branch directly from an issue so all related information stays handy in one place
-integrates well with local git client (tortoise git, vscode git integrations) so you can switch between tools without git-related errors
-easy to create to-do list workflow with issues from multiple projects/repos
-easy to revert a bad merge
-preview doesn't work well with some file types (like rst)
-interface is kind of fussy when trying to edit things like labels on an issue, could be easier
-UI can get a bit crowded, and not many options to hide or change view
-wiki is hard to maintain unless you pull a local copy
My team loves GitLab so much. Since the last 3 years, we use it regularly and we don't have a single complaint about it. We host all our repos here and manage our development stuff via milestones, issue boards, and other features. Overall it is an awesome platform will all the required features and tools.
GitLab is a complete set of tools which are required for software development.
- It provides self-managed version as well as the community version. Both are free of cost.
- It provides Continuous Integration and Continuous Development. I use it for most of my projects.
- Built-in issue boards, milestones - a very good feature for tracking development.
- Built-in Web IDE - a very nice feature to edit your files online.
- Groups, sub-groups for the repository - it helps to manage the repositories easily with user assignment, permissions, etc.
- A nice UI
There are no major cons with GitLab. It provides most of the things with its free edition. To list a few,
- With Community Edition, we sometimes face downtime.
- The wait time for running CI pipelines is sometimes higher.
- The pricing for the paid version is a little bit high for small agencies like mine.
Our team have been using both GitLab and its main competitor for a number of years. We use GitLab when our projects require a slight bit more fine-tuning and control over our repositories.
GitLab easily offers the ability to hide repos / projects from public view, something its competitors rarely do for free.
The team management within GitLab is great, we have multiple different teams in the system all with different access, and its very easy to share repositories with colleagues and control who can see what.
Integration with other Git applications is great, we use this with GitKraken all the time and we've never had problem.
My main problem with GitLab is its user-interface, in comparison to its competitors it's not good at all. Various functions seem to be hidden within obscure menus and hidden drop-downs. Not too much of a problem once you're used to it, but for new users, its a real issue.
The comment system isn't great, for some reason GitLab stores any and all edits that are made, meaning even the slightest change to a pull / merge comment is noted.
Gitlab combines git, CI/CD, task management, wiki and lots of other features. I found that this is a platform that developers like more than some other task tracking software because of its simple but flexible functionality. Organizing tasks and boards with labels provides for a very flexible experience that each team can design for themselves. The platform is constantly updating and improving. From the latest updates, I like that you can now respond to a comment, so you get a thread, instead of individual comments that require referencing other comments to tie things together.
Your code base is right in front of your PMs, QAs and Engineers, so everyone can dive into it if needed, nothing extra needs to be setup. Gitflow is supported very well, and CI/CD gives visibility into your pipelines to the entire team all in one place.
In short my entire team loves GitLab!
The wiki is very simple and lacks in functionality, mentions didn't work for us right, and organizing content can be challenging.
The initial learning curve can be a challenge for not-technical team members, having to learn markdown. Not a big problem though that can be overcome with a few tutorials and reference pages.
A free way to be effective and to go straight to your goal. Lot of work is saved by this tool with respect to other similar solutions. This software is stable, you can install it wherever and it will work. You can upgrade it whenever with no surprise. Very nice tool. Forrester recommendations are all deserved.
Very simple and effective. Setting up a pipeline is immediate. It is pretty documented and also newbie can approach a good result in short time. Issue and agile management of a project is a big plus and recent capabilities to monitor project performances are impressive.
It is powered by docker containers and kubernetes and this make isolation and a sort of orchestration possible and easy.
People can focus on their own objective rather than spending time understanding the tool.
It is based on a project centric approach, but here the project is a single piece of code. Orchestration and release automation for complex scenarios must be delegated to other professional software. Standardisation of projects is not obvious since a pipeline refer to a single project. Environments refer to a single instance of an application. They are great but they do not easily correspond to what an environment usually means: an aggregation of nodes and software instances connected to each other.
I can have private software git repositories by free. Differently by Github, that charges you to have a private repository. The interface is beautiful, has a wiki, and the commits work fine from Linux.
Doesn't exist an app to make the commits (like in GitHub), thus you just need to use the terminal line (which shouldn't be a problem for any programmer), and the community isn't very well developed, thus you still will need to go to Github to find software repositories.
GitLab has helped our team streamline between showing what issues are being worked on, where they are in the process, where the code is, and who is looking at or working on it. Our processes have less hiccups and our communication between the different team roles (devs, designers, QA, product owners) has skyrocketed!
I love the tools for comments/discussion threads in the merge requests. Being able to highlight the line of code in question, and even adding suggested code edits, makes the code review process some much smoother and practically seamless. The ability to require code approvals, from a suggested or certain user(s), and the different roles allow a safer merge process. Issues can be linked to merge requests, which also makes things easier.
Transitioning from using GitLab for repository management only, to trying to link merge requests to the issue boards has been a bit difficult for the team. I think part of the issue was that the projects and repositories don't completely align with our team structure that we're using the boards for. There's a lot of overlap.
Gitlab is our repository bank, It's powerful features (very less git providers have such) like branch level user access streamline our work.
-Even its free tier is really powerful to drive a full startup company, I used it for like a year.
-Really impressive UI/ Its web IDE (I use it for commit very critical patches/ resolve minor conflicts) is out of the box.
-It has everything like a user access control on repository level, that is too simple to use with Its web interface.
-Its support for CI/CD is really impressive, It provides these tools at its core in both free and paid tiers, I'm using Jenkins with it.
-Even it provides time tracking/ time estimate module in Its free tiers, I never used it but these things really look impressive, we even check it's applicability within our office and found it good to move in near future.
-The cheery pick is a little tricky git command, it provides this functionality at a button click (I really like it).
It's downtime when my team were using its free tier, we face downtime, runtime error or SSL downtime problem many times a day, but when we start using it paid services we are now less facing such issues.
* Feature rich
* Interface: easy to use yet customizable
* Code + documentation + Continuous Integration in one place
* It has all the features that we are used to in other platforms such as github plus others like time tracking, boards, pipelines...
* Easy to use
* Possibility to get private (free) projects
* It can be self-hosted
I haven't found anything I do not like about gitlab, other than regretting that most projects are still stored elsewhere.
It would be awesome to build out the profile view a bit more. I lead a team of developers and we use Gitlab and really like it for its privacy and ease of use, but because our repos are private we are unable to showcase our profile views on our portfolios etc. This has pushed me to split usage between gitlab and github. Gitlab for work / github for my private repos / gists / etc.
Price, private repos, ease of use for teams, (almost) all the features of github. We use gitlab for all of our client repos and it works great. Setting up teams and getting up and running is fast and easy. We've also looked into the option of self hosting gitlab on our own servers, but the web service is so good we haven't felt the need yet. UI is nice as well. Anyone familiar with github can easily jump in and enjoy gitlab.
Not as much community, profile view is not as robust / flushed out as gitlab. Feels private. Love the ease of private repos but that seems to be the main thing users are utilizing and there is less open source projects on gitlab. Also the profile view is not as well known as gitlab and there isn't the option to showcase private commits on your commit chart, which is a bummer.
I love everything about this product. We've tried bitbucket, github, and now GitLab and I think we've found our home. This is a very solid software set and ci/cd tools that are easy enough to implement.
I wish that you could group repo's by category and use that during the search. If you could do that then it would be perfect. I also wish you would consolidate the project/group/etc search on the top and turn it into one smart search.
Ease of use. Highly customizable. Free private projects, which are perfect for hobbyists. At production, it is easy to run pipelines and get logs about them. It integrates perfectly with Heroku.
It took a bit of a learning curve to exploit all possibilities of the software.
Strong CI/CD contender which has increased our TTM.
Initially we looked at Gitlab for use as an internal code repository. We used gitlab in conjunction with jenkins and docker. Creating projects, submitting code, integrating Gitlab with Jenkins all worked well. To setup a jenkins pipeline with Gitlab is very straightforward. Just create a new pipeline, provide the gitlab project URL, and supply credentials. You can set Jenkins to poll at specific intervals, then kick off the CI/CD process when new commits are detected. At first we had provisioned a docker private registry, but gradually moved to hosting images using gitlab itself. The feature velocity is quite impressive and it looks like Gitlab will be able to handle the entire CI/CD pipeline in the future.
While the actual installation of GitLab wasn't too bad, figuring out how to configure Docker Engine to work with Gitlab was quite tricky. It's not well documented on the website but the key was to place the certs in the appropriate gitlab folder. It's always annoying to deal with TLS certs, especially if it's not clearly spelled out which path the application looks for the certs.
GitLab is Open Source, so trying it is free, and the community edition has a generous set of features. The self-hosting aspect is critical to our clients and us. The enterprise edition offers almost anything a developer could want from a source code management system, including continuous integration.
GitLab is not as well integrated as GitHub in other software.