Recs.
Updated
GitLab is a GitHub-feature parity Self-hosted or hosted solution for git that includes CI/CD, Deployments, Issue boards and Many more. It has two editions mainly CE and EE.
SpecsUpdate
Pros
Pro Free and open source
Pro At feature parity with GitHub
Gitlab is very close to Github in use and feel, written in Ruby on Rails, open source and hosted on Github as well as on GitLab.com
Pro Good web UI
GitLab's UI is clean and intuitive. Each view is designed to not fill the screen with useless information.
It displays the activity in a feed-type way in the most prominent part of the view. On top of that, there's a toolbar with buttons which can filter this feed by pushes, merge events or comments.
On the left, there's a menu that displays all the links that take you to the different views. For example, a file directory which displays all the files in that repo, a commit view which displays all the commits in cronological order, a network and a graph view that display important information graphically etc...
All these details make GitLab's UI extremely intuitive and easy to use, no view is overflown with information and every view displays only the most useful and crucial information needed at that time.
Pro Integrates fully with LDAP
The Lightweight Directory Access Protocol is an application protocol for accessing and maintaining distributed directory information services over an Internet Protocol (IP) network.
GitLab EE adds additional functionality over CE such as support for multiple LDAP servers and group sync.
Pro Supports Approvers/Reviewers of Pull/Merge requests
Since 7.12 you can define a minimum number of approvers for merge requests.
Pro Scalable
A single instance can handle up to 40,000 users (requires a server with 64 core CPU and 64 GB of RAM) and it can run on multiple application servers to grow beyond that.
Pro Manages large files and binaries with integrated Git Annex
Git Annex enables Git to manage large files (esp binaries) without checking them into Git.
Pro Integration with third party applications
GitLab integrates with multiple third-party services to allow external issue trackers and external authentication.
GitLab can integrate with many third-party apps to allow external issue tracking and authentication. It can also be integrated with several services, such as:
- Slack
- Campfire
- Flowdock
- Hipchat
- Gemnasium
- Pivotal Tracker
Cons
Con Not lightweight
GitLab is demanding, Gitea is a much more lightweight solution which uses less CPU and memory.
Con Not all features are free
GitLab's Service Desk features and some more are only available in GitLab EE.
Con Requires at least 1GB of RAM
The default installation is meant for already many users and recommends 2GB of RAM. 1GB is possible but results in some HTTP 500 errors. On a Raspberry Pi 2 it runs fine most of the time, though it eats 75% of the RAM.
Another option is to reduce unicorn['worker_processes']
in gitlab.rb.
Con Security risks
Recommendations
Comments
Flagged Pros + Cons
Con No Windows support
There is no support for Windows. The use of a virtual machine will be required.
Out of Date Pros + Cons
Con Search functionality is not that refined
While you can search for users or projects, you cannot search for a filename. This makes GitLab's search one of the weak points in an otherwise great tool.