We use GitLab to as our version control solution. We have multiple Git repositories that are store in GitLab. Furthermore, we use GitLab to branch and merge project branches. We are able to effectively collaborate any changes we make through GitLab. Finally, GitLab allows us to centralize our code base and makes it much easier to maintain our "source of truth".
Pros
Allows us to host our own GitLab servers on-premise
GitLab comes with the Integrated CI/CD tools as part of the application
Very good documentation
Efficient
Cons
Sometimes, there can be "weird' bugs that can be hard to track down and fix.
Security and compliance can be hard to understand and implement at times.
SSO needs some improvement
Likelihood to Recommend
GitLab self-hosted solution is well suited for organization that have strict security policies that prohibit company information from leaving the company networks. By self-hosting GitLab, all traffic remains internal to the company. It's also well suited for small to medium sized departments that need an open-source version-control software. It's easy to use and setup, and most administrator can deploy it without much hassle.
Gitlab features development repository branches which enables our team to create many different software load sets to meet different customers' mission requirements while maintaining a consistent product architecture. Gitlab tracks and stores all our development changes and commits for the latest software versions on respective branches. The branches are easily accessible for pulling and pushing changes.
Pros
Separate software branches.
Store respective artifacts.
Document developmental changes.
Store software versions for a variety of file types.
Cons
Trace past activity or changes.
Document brief details of the changes.
Characterize different branches for distinguish.
Merge branches easily.
Likelihood to Recommend
Gitlab is well suited for development projects where software is experimented with. Throughout development, features may be added or subtracted and Gitlab enables creating different software branches to tailor and track certain software configurations. This is good is different customers want the same software but are customized with different features. However, merging branches retroactively is more difficult for seamless software integration.
Gitlab is used by one portfolio of work within the larger organization, as its backlog/project management tool, revision control, and CI/CD pipeline. There are two main projects for managing the front-facing and mostly static website content of the portfolio, as well as for the source code of its flagship product.
Pros
Continuous integration/build pipelines
Project Management
Git workflows, pull requests and review
Revision control
In-app editing of project source
Cons
Kanban board views of project could use some improvement
Better explanations and granularity of user permissions and controls
Likelihood to Recommend
Gitlab is a great opportunity to "practice what you preach" if you are a shop that advocates the use of open source tools. Whether you use [Gitlab] or your own internal deployment, this tool offers good value for money (typically free in both cases for most organizations' needs). It would be less appropriate when an organization:
Doesn't want to host their own revision control, for less hands-on DevOps
Needs their code to be private/proprietary, and
Already has existing products and workflows for Continuous Integration and project management
In this case, a company license for github.com may make more sense.