GitLab and GitLab Enterprise

GitLab is a web-based Git repository hosting service. It offers all of the distributed revision control and source code management (SCM) functionality of Git as well as adding its own features. GitLab Enterprise Edition builds on top of Git and includes extra features. It has LDAP group sync, audit logs and multiple roles. It includes deeper authentication and authorization integration, has fine-grained workflow management, has extra server management options and it integrates with your tool stack. GitLab EE runs on your servers (on premise) behind your firewall.

GitLab provides the following:

Version control and repository management based on Git

Issue management, bug tracking and boards

Code Review functionality and Review Apps tool

Continuous Integration/Deployment tool (GitLab CI/CD)

Code Quality (Code Climate)

ChatOp tool (Mattermost)

Service Desk (ticketing system)

Wiki (version controlled)

Rich API

Repository mirroring and high availability (HA)

Development Analytics

Performance monitoring

Integration with IDEs like Visual Studio, Eclipse, IntelliJ and Koding

Integration with JIRA, Jenkins, Slack, Docker, Kubernetes, LDAP and more

Live upgrade assistance
Schedule an upgrade time with GitLab. Experts will join a live screen share to help you through the process to ensure there aren't any surprises.

-

-

Features

Built-in CI/CD
GitLab has built-in Continuous Integration/Continuous Delivery, for free, no need to install it separately. Use it to build, test, and deploy your website (GitLab Pages) or webapp. The job results are displayed on merge requests for easy access.

Issue Tracker
Quickly set the status, assignee or milestone for multiple issues at the same time or easily filter them on any properties. See milestones and issues across projects.

Issue Boards
GitLab provides a dashboard that lets teams measure the time it takes to go from an idea to production. GitLab can provide this data because it has all the tools built-in: from the idea, to the CI, to code review, to deploy to production.

Time tracking
Time Tracking in GitLab lets your team add estimates and record time spent on issues and merge requests.

Cycle Analytics
GitLab has built-in Continuous Integration/Continuous Delivery, for free, no need to install it separately. Use it to build, test, and deploy your website (GitLab Pages) or webapp. The job results are displayed on merge requests for easy access.

Preview your changes with Review Apps
With GitLab CI/CD you can create a new environment for each one of your branches, speeding up your development process. Spin up dynamic environments for your merge requests with the ability to preview your branch in a live environment.

Mattermost integration (ChatOp)
Mattermost is a Slack-like ChatOp tool and it can be automatically installed and integrated using GitLab Omnibus

Keep track of releases using GitLab Releases
GitLab's Releases allow you to track deliverables in your project. Consider them a snapshot in time of the source, build output, and other metadata or artifacts associated with a released version of your code.

Git LFS 2.0 support
Manage large files such as audio, video and graphics files with the help
of Git LFS. Git LFS 2.0 file locking support helps large teams work with
binary assets and is integrated with our native file locking feature.

Group-level milestones
Create and manage milestones across projects, from the group level. View all the issues for the milestone you’re currently working on across multiple projects.

Web IDE
Contribute to projects faster by using the Web IDE to avoid context switching in your local development environement

Squash and merge
Combine commits into one so that main branch has a simpler to follow and revert history

Fast-forward merge with option to rebase
With this setting at the project level, you can ensure that no merge commits are created and all merges are fast-forwarded. When a fast-forward merge is not possible, the user is given the option to rebase

Cherry-picking changes
Cherry-pick any commit in the UI by simply clicking the Cherry-Pick button in a merged merge request or a specific commit

Export projects
GitLab allows you to export your project to other systems

Built-in and custom project templates
When you create a new project, creating it based on custom project templates is a convenient option to bootstrap from an existing project boilerplate

Lock Discussion
Lock down continued discussion in an issue or merge request as a Master role or higher, to prevent further abuse, spam, or unproductive collaboration

Create merge request from email
Create a merge request from email by sending in the merge request title, description, and source branch name. Alternatively use patch files to create a merge request without first pushing a branch

Squash and merge
Combine commits into one so that main branch has a simpler to follow and revert history.

Multiple Project Issue Boards
Large companies often have hundreds of different projects, all with different moving parts at the same time. GitLab Enterprise Edition allows for multiple Issue Boards for a single project so you can to plan, organize, and visualize a workflow for a feature or product release. Multiple Issue Boards are particularly useful for large projects with more than one team or in situations where a repository is used to host the code of multiple products.

-

Configurable Issue Boards
Associate a board with a milestone, labels, an assignee, and a weight

-

Multiple LDAP server support (compatible with AD)
Integrate with multiple LDAP servers for use when authenticating users.

-

Issue Board Focus Mode
Get more information at a time with the Issue Board focus mode, which removes all unnecessary elements from the screen to show your Issue Boards.

-

Multiple Project Issue Boards
Large companies often have hundreds of different projects, all with different moving parts at the same time. GitLab Enterprise Edition allows for multiple Issue Boards for a single project so you can to plan, organize, and visualize a workflow for a feature or product release. Multiple Issue Boards are particularly useful for large projects with more than one team or in situations where a repository is used to host the code of multiple products.

Multiple approvals in code review
In GitLab, to ensure strict code review, you can require a specific number of approvals on a merge request by different users before being able to merge it. You can undo an approval by removing it after the fact.

Issue Weights
GitLab lets you manage issues using Agile practices by setting the weight of an issue.

-

Burndown Charts for Project Milestones
GitLab provides Burndown Charts as part of Milestones. This allows users to better track progress during a sprint or while working on a new version of their software.

-

Multiple assignees for issues
Assign more than one person to an issue at a time.

Email all users of a project, group, or entire server
An admin can email groups of users based on project or group membership, or email everyone using the GitLab instance. This is great for scheduled maintenance or upgrades.

-

Limit project size at a global, group, and project level
Ensure that disk space usage is under control.

Lock project membership to group
Group owners can prevent new members from being added to projects within a group.

-

Export issues as CSV file
Issues can be exported as CSV from GitLab and are sent to your default notification email as an attachment.

-

Admin Control
GitLab Enterprise Edition gives your administrator the ability to automatically sync groups and manage SSH-keys, permissions, and authentication, so you can focus on building your product, not configuring your tools.

-

Merge approvals
When a project requires multiple sign-offs, GitLab Enterprise Edition enables you to make sure every merge request is approved by one or more people. Merge request approvals allow you to set the number of necessary approvals and predefine a list of approvers that will need to approve every merge request in a project, and in-turn improve your code’s quality.

-

Merge request approvals
When a project requires multiple sign-offs, GitLab Enterprise Edition enables you to make sure every merge request is approved by one or more people. Merge request approvals allow you to set the number of necessary approvals and predefine a list of approvers that will need to approve every merge request in a project, and in-turn improve your code’s quality.

-

LDAP group sync
GitLab Enterprise Edition gives your Admin’s the ability to automatically sync groups and manage SSH-keys, permissions, and authentication, so you can focus on building your product, not configuring your tools.

-

Code Quality
Code Quality reports, available in the merge request widget area, give you an early insight into how the change will affect the health of your code before deciding if you want to accept it.

-

Restrict push and merge access to certain users
Extend the base functionality of protected branches and choose which users can push or merge to a protected branch.

-

Include external files in CI/CD pipeline definition
You can include external files in your pipeline definition file, using them
as templates to reuse snippets for common jobs.

-

Contribution Analytics
With contribution analytics you can have an overview for the activity of
issues, merge requests and push events of your organization and its members.

-

Manage third party offers
GitLab 11.1 introduces the ability to control the display of third party offers in the administration area, providing more control over the display of these offers

-

Code Owners
Assign Code Owners to files to indicate the team members responsible for code in your project using a `CODEOWNERS` file. Code owners are assigned automatically as merge request approvers, and shown when viewing files.

-

Timed and manual incremental rollout deployments
GitLab can allow you to deploy a new version of your app on Kubernetes starting with just a few pods, and then increase the percentage if everything is working fine. This can be configured to proceed per a schedule or to pause for input to proceed.

-

-

NPM Registry
GitLab's NPM repository makes it easier to publish and share NPM packages across an organization, and ensure dependencies are managed correctly. It is fully integrated with GitLab, including authentication and authorization.

-

-

Backlog Management
Able to capture and track future features, capabilities and work in a consolodated and organized list which enables the team to organize, prioritize, accept, plan and start work on relevant items. The backlog is where future work is captured, defined, evaluated, and planned. Specific features would include: Backlog, user stories, issues, effort estimate, priority, backlog board

-

-

Issue Board Assignee Lists
Issue board lists that pull in issues assigned to a given user

-

-

Custom Additional Text in Emails
Include custom additional text in all emails sent by GitLab, such as including disclaimer text

-

-

Approval rules for code review
Make sure the right people review merge requests with approval rules by specifying lists of eligible approvers and minimum number of approvals for each. This makes it easy to request review from different teams like Engineering, UX and Product.

-

-

PostgreSQL High Availability (HA)
Easily set up a highly available Postgres cluster with automated failover (beta)

-

-

Issue Analytics
See issue analytics at the group level

-

-

LDAP group sync filters
GitLab Enterprise Edition Premium gives more flexibility to synchronize with LDAP based on filters, meaning you can leverage LDAP attributes to map GitLab permissions.

-

-

Live upgrade assistance
Schedule an upgrade time with GitLab. We’ll join a live screen share to help you through the process to ensure there aren't any surprises.

-

-

Audit Logs
To maintain the integrity of your code, GitLab Enterprise Edition Premium gives admins the ability to view any modifications made within the GitLab server in an advanced audit log system, so you can control, analyze and track every change.

-

-

Auditor users
Auditor users are users who are given read-only access to all projects, groups, and other resources on the GitLab instance.

Multi-project pipeline graphs
With multi-project pipeline graphs you can see how upstream and downstream pipelines are linked together for projects
that are linked to others via triggers as part of a more complex design, as it is for micro-services architecture.

-

-

Environment-specific variables
Limit the environment scope of a secret variable by defining which environments it can be available for.

-

-

Object storage for artifacts
Artifacts can be stored on Object Storage (Amazon S3)

Support for multiple Kubernetes clusters
Easily deploy different environments, like Staging and Production, to different Kubernetes clusters.
This allows to enforce strict data separation.

-

-

Globally distributed cloning with GitLab Geo
When development teams are spread across two or more geographical
locations, but their GitLab instance is in a single location, fetching
and cloning large repositories can take a long time. Built for distributed
teams, GitLab Geo allows for read-only mirrors of your GitLab instance,
reducing the time it takes to clone and fetch large repos and improving
your collaboration process.

-

-

Service Desk
Allow external users to create issues in your GitLab instance without an account and without access to anything except their issue. Manage tickets from the GitLab interface.

-

-

Support for High Availability
To avoid downtime, GitLab Enterprise Edition Premium offers support for
High Availability (HA). A Service Engineer will help you identify your
specific HA needs and map out an architecture.

-

-

File Locking
Working with multiple people on the same file can be a risk. Conflicts
when merging a non-text file are hard to overcome and will require a lot
of manual work to resolve. With GitLab Enterprise Edition Premium, File
Locking helps you avoid merge conflicts and better manage your binary
files by preventing everyone, except you, from modifying a specific file
or entire directory.

-

-

Deploy Boards
GitLab Enterprise Edition Premium
ships with Deploy Boards offering a consolidated view of the current health
and status of each CI environment running on Kubernetes. The status of each
pod of your latest deployment is displayed seamlessly within GitLab without
the need to access Kubernetes.

-

-

Timed and incremental rollout deployments
GitLab can allow you to deploy a new version of your app on Kubernetes starting
with just a few pods, and then increase the percentage if everything is working fine.

Group file templates
Define custom LICENSE, .gitignore, Dockerfile and .gitlab-ci.yml templates for a Group to make consistency easier.

-

-

Protected Environments
Specify which person, group, or account is allowed to deploy to a given environment, allowing further protection and safety of sensitive environments

-

-

Maven Repository
GitLab's Maven repository makes it easier to publish and share Java libraries across an organization, and ensure dependencies are managed correctly. It is fully integrated with GitLab, including authentication and authorization

-

-

Feature Flags
This feature gives you the ability to configure and manage feature flags for your software directly in the product. Simply create a new feature flag, validate it using the simple API instructions in your software, and you have the ability to control the behavior of your software in the field via the feature flag within GitLab itself

-

-

Merge request reviews
Write multiple saved draft comments in a merge request code review, before submitting them together all at once. This allows you to review code in consistent, and self-contained sessions, instead of as individual comments

-

-

Smart card support
Authenticate into GitLab using a smart card with a compliant X.509 certificate

-

-

Portfolio Management
Plan and track work at the project and portfolio level. Manage capacity and resources together with Portfolio Management

Epics
Plan and track work at the feature level by collecting multiple issues together in the same group.

-

-

-

Reorder Issues in Epic
Reorder issues in an epic to indicate priority or intended order of implementation.

-

-

-

Epic Fixed Dates
Use fixed dates to do top-down planning of epics.

-

-

-

Epic Dynamic Dates
Use dynamic dates to do bottoms-up planning and tracking of epics, taking into account of dates of children.

-

-

-

Promote Issue to Epic
Promote an issue to epic to continue collaboration at a higher-level work abstraction.

-

-

-

Roadmaps
Visualize multiple epics across time in a roadmap view

-

-

-

Application performance alerts
GitLab allows engineers to seamlessly create service level indicator alerts and be notified of any desired events, all within the same workflow where they write their code

-

-

-

Web Terminal for Web IDE
Interact with your code in a Web Terminal in the Web IDE to inspect API responses, experiment in a REPL, or compile your code

-

-

-

Security Dashboards
Security Dashboard report the latest security status of the default branch for each project

-

-

-

Static Application Security Testing
GitLab allows easily running Static Application Security Testing (SAST) in CI/CD pipelines; checking for vulnerable source code or
well known security bugs in the libraries that are included by the application. Results are then shown in the Merge Request.
This feature is available as part of [Auto DevOps](https://docs.gitlab.com/ee/topics/autodevops/#auto-sast) to provide security-by-default.

-

-

-

Dependency Scanning
GitLab automatically detects well known security bugs in the libraries that are included by the application, protecting your application from
vulnerabilities that affect dependencies that are used dynamically. Results are then shown in the Merge Request and in the Pipeline view.
This feature is available as part of [Auto DevOps](https://docs.gitlab.com/ee/topics/autodevops/#auto-dependency-scanning) to provide security-by-default.

-

-

-

Container Scanning
When building a Docker image for your application, GitLab can run a security scan to ensure it does not have any known
vulnerability in the environment where your code is shipped. Results are then shown in the Merge Request.
This feature is available as part of [Auto DevOps](https://docs.gitlab.com/ee/topics/autodevops/#auto-container-scanning)
to provide security-by-default.

-

-

-

Dynamic Application Security Testing
Once your application is online, GitLab allows running Dynamic Application Security Testing (DAST) in CI/CD pipelines;
your application will be scanned to ensure threats like XSS or broken authentication flaws are not affecting it.
Results are then shown in the Merge Request. This feature is available as part of
[Auto DevOps](https://docs.gitlab.com/ee/topics/autodevops/#auto-sast) to provide security-by-default.

Easily view traces in Jaeger
Users can easily open the Jaeger UI and view traces, from GitLab.

-

-

-

Suggest changes
Collaborating on merge requests without copy/pasting to accept a suggested change. Changes can be suggested when leaving a comment on a merge request diff and accepted with a single click

We can train in the following languages: English, Russian, Lithuanian and Hebrew.
Contact us for quotes or for any questions: training@almtoolbox.com

Testimonials and Customers Stories

We had more than 2,000 GitLab projects in just a few months! That's a very fast adoption rate compared to our other code hosting platforms. While we are not yet actively asking users to move their projects to GitLab, many are attracted by GitLab's features and move proactively"

Alexandre Lossent, Service Manager for the version control systems at CERN (the European Organization for Nuclear Research)

GitLab enables us to balance internal team preferences with management requirements. The team had always wanted to move to Git, but they also wanted a user-friendly interface to help their workflows - and GitLab provides it all!"

Keith Harris, Associate Director and Software Architect , 360i

GitLab is a great private repository. I like its wiki, web hooks, intuitive interface and GitLab CI continuous integration feature"