Overall, GitLab is an excellent program for freelancers. It's really simple to use, simple to administrate and offers all that users need for developing. And if users implement it in the correct way it will speed up their development effectively. Adding more to this, it provides excellent ways to manage git repositories on a centralized secure server.
Project operation: Using GitLab provides the user with complete control over their projects. Users can easily follow up activities assigned to their respective partners. Additionally, the program gives you the advantage to have members across the borders as well, hence it is pretty useful and comes in handy when the work is beyond the borders.
Easy to use: GitLab is easy to lean and very easy to use the software as it helps in creating a project by giving instructions from the beginning. The tutorial mode is extremely helpful and because of that no experience or expertise is required to exhaust all the features offered by GitLab.
Contact Support: Although GitLab provides a good platform for its users, unfortunately, their contact section is poor. Users are unable to recover if they face any problem as the administration is limited. Administration can only be at your service if you own the premium version.
Complicated: Although Gitlab is easy to learn when it comes to the menu users tend to feel as if they are lost in some sort of maze. The menu is pretty much clunky because of this some of its users are unable to use GitLab to its full potential. Additionally, the efficiency of users is reduced to a great extent when they wish to search for aspects because it consumes time and energy.
Making it easier to build quality into the software development lifecycle without sacrificing speed. Let the computers do the heavy lifting of building and testing the changes. Bake in DevOps best practices by default.
Integration of CI/CD and Kubernetes for easily developing and running custom apps. Fantastic collaboration features like discussions, visual diffing. Some of this stuff you don't even get on desktop apps that charge big bucks. Frequent updates that inch its capability and usability forward. Good documentation. Wonderful community, welcoming atmosphere, pleasant to work with all the employees I've encountered.
Sometimes things break. When things are broken, sometimes it can take some time to be fixed, if you're not willing or able to fix it yourself. One of the consequences of such broad scope and feature development velocity. It would be advisable to keep another copy installed separately for testing updates before applying them to the live edition, if your IT has the capacity to do so.
GitLab resolved our version controlling problems, code review problems. It helps to maintain our code standards very easily. We can setup It on our local server also very easily. It is free anyone can try it.
GitLab is a superb source code managemanet provide. It is free. We can install it in our privet server also. As well as we can use their server with a free account. We use git for version control. GitLab provides awesome support for version control. It is a very easy tool. Anyone can use it very easily If someone has no more knowledge about versioning but He can use GitLab very easy. We can maintain our Repositories/Branchers. User access level also there. Currently, We use GitLab. We maintain feature branches, dev branch, and master branch. Everyone does not allow to merge code to the dev branch. If someone add merge request to the dev branch, our one-person review code and merge. Then we use GitLab it is easy for us. GitLab provides superb dashboard it very easy to review code. It shows all code changes with file by file. Easy to compare. As well as we can compare two branches vary easy. It provides a clear, unique, user-friendly dashboard. GitLab also supports CI/CD process. It's superb we can recommend for anyone. If our commit has some conflict it shows how to resolve that step by step.
When I add a new commit. If the file is large/have many lines. It not showing code changes directly. It shows a message file has many lines cannot show changes that kind of message. Sometimes when we compare two commits. It not more clear. Some times confusing. If I show some file history only show commits. not showing code changes by commits. We want to go and check every commits to show changes.
GitLab is the code versioning system that our company uses on a daily basis. We found useful to have a fine-grained authorization management for your users/developers, that made it easier for us to ensure the only the right people can see the right things. We also use the "organisation" feature to have all our developers in the same place with the right access.
The products has plenty of features, as well as supporting all the basic Git operations/merge requests, you are given a wide choice of CI pipelines you can set up from within the project. Need more? Integrations with metrics, error tracking, kubernetes, snippets and more.
I never had any problem so far, it's stable and always up.
The major issue for me is that these features are advanced, and if you want to use the repository as just that, you find yourself overwhelmed with loads of choices that you don't really need. Therefore, sometimes I find it hard to look for a button which should be the most visible element on the screen. Additionally, I found the arrangement of information in the "merge request" screen a bit counterintuitive compared with similar services.
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.
Having migrated a number of Subversion repositories to GitLab, its extended functionality compared to the more simplistic approach of SVN has undoubtedly saved a significant amount of time.
GitLab comes packed with a number of helpful facilities for managing continuous integration/deployment tasks. The option to self-host a GitLab instance is also appreciated.
Comes with something of a learning curve and can take a while to fully introduce non-technical users to its functionality.
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.
For those who like a product with several functions, and know how to handle complex usability, I think it should be great. But it wasn't made for me, I lost myself easily, and it took a long time to do things that would be faster in other task managers. So I ended up abandoning the tool.
We use it to collaborate with the development and QA teams.
It's quick to create a ticket, measure time and sort the type of work from tags, and send it to the colleague who will do that work.
What is interesting is the grouping of several teams in a single project, without interfering with each other's issues.
What we used most was the drop down chart. The rush that it imposes, makes us work faster to try deliver what we plan, as the deadline get closer.
It is very chaotic visually, lot of functions are hidden in menus and submenus, I know that developers love it, but it didn't work in my team.
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.
My overall experience using GitLab is incredibly good. Without GitLab, no project carried out would remain stable, since all suffer modifications over time, and on numerous occasions a "rollback" must be made to old versions.
Thanks to GitLab I was able to recover lost code due to a serious PC failure.
Thanks also to GitLab, anyone has been able to share their code without problems, even publicly, which really encourages the use of this application.
Thanks to GitLab, I have all my code protected and accessible at all times, from any computer.
On the other hand, thanks to GitLab, in my team we maintain a hierarchy so that everyone uploads their code to the "Develop" branch and I am able to check their code and know if it is correct. In this way, too, I make sure that in the "Master" branch only correct and functioning code is found.
This is something vital, that every project needs to remain stable and avoid problems in new code versions, modifications, etc.
Perhaps something bad about GitLab, is that it is not implemented in all applications, that is, many applications have the ability to synchronize the code directly through it, without using the web version. It could be modified in such a way so that the desktop version was compatible in some way with all applications.
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.