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.
DocumentationQuickly 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.
DocumentationIn GitLab, you can set a due date for individual issues. This is very convenient if you have small tasks with a specific deadline.
DocumentationYou can move issues between projects in GitLab. All links, history and comments will be copied and the original issue will reference the newly moved issue. This makes working with multiple issue trackers much easier.
DocumentationGitLab has Issue Boards, each list of an Issue Board is based on a label that exists in your issue tracker. The Issue Board will therefore match the state of your issue tracker in a user-friendly way.
Feature detailsIssue boards scoped at the group level, so that you can view issues in all projects of that group.
DocumentationWith GitLab Issue Boards, you can create issues directly from the board and assign multiple labels allowing them to appear on multiple boards.
DocumentationAn Issue Board is based on its project's label structure, therefore, it applies the same descriptive labels to indicate placement on the board. GitLab issues can appear on multiple issues and they still have meaning without the context of a particular board.
DocumentationFrom an Issue Board, you can add multiple issues to lists in the board by selecting one or more existing issues.
DocumentationFilter an Issue Board based on a milestone to review a sprint.
DocumentationGet more information at a time with the Issue Board focus mode, which removes all unnecessary elements from the screen to show your Issue Boards.
DocumentationLarge 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.
DocumentationTime Tracking in GitLab lets your team add estimates and record time spent on issues and merge requests.
Feature detailsKeep your information secure with Confidential Issues. With GitLab, you can create confidential issues visible only for project members with Reporter access level or above.
DocumentationGitLab lets you manage issues using Agile practices by setting the weight of an issue.
DocumentationGitLab 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.
DocumentationMattermost can be automatically installed and integrated using GitLab Omnibus
DocumentationWith GitLab, you can use specific keywords to close one or more issues as soon as a merge request is merged.
DocumentationGitLab uses 'GitLab Flavored Markdown' (GFM). It extends the standard Markdown in a few significant ways to add some useful functionality.
DocumentationBy adding a description template to your MRs, users who create a new issue or merge request can select a template to help them to communicate effectively.
DocumentationRevert any commit or a single merge request from GitLab's UI, with a click of a button.
Documentation
Quickly create, view and search for issues straight from chat.
Documentation
Labels provide an easy way to categorize issues or merge requests based on descriptive titles as ‘bug’, or ‘documentation’.
Documentation
Define your own specific keywords to close one or more issues as soon as a merge request is merged.
DocumentationGitLab provides commit graphs and reporting tools about collaborators' work.
DocumentationWith 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.
Feature detailsGitLab provides a way to search a file in your repository in one keystroke.
DocumentationWith 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.
DocumentationCombine commits into one so that main branch has a simpler to follow and revert history.
DocumentationWhen 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.
DocumentationCreate merge requests and @mention team members to review and safely merge your changes.
DocumentationPreview merge conflicts in the GitLab UI and tell Git which version to use.
DocumentationCherry-pick any commit in the UI by simply clicking the Cherry-Pick button in a merged merge request or a specific commit.
DocumentationView a list of the latest commits, merges, comments, and team members on your project.
DocumentationBe notified by email, Slack, or ToDos anytime there are changes to an issue or merge request.
DocumentationWorking 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.
Feature detailsA branch in Git contains the entire history that preceeds it. It's also created or moved towards instantly and easily shared.
DocumentationExtend the base functionality of protected branches and choose which users can push or merge to a protected branch.
DocumentationWhen creating a new project, you can choose to kickstart your project from a predefined template that already has some working example code and CI already configured.
Documentation
Within a commit view or a merge request diff view, and with respect to a specific location of an image, have a resolvable discussion. Have multiple discussions specifying different areas of an image.
Documentation
Lock down continued discussion in an issue or merge request as a Master role or higher, to prevent further abuse, spam, or unproductive collaboration.
Documentation
View and compare merge request diffs from the merge request UI.
Documentation
Code or text review is faster and more effective with inline comments in merge requests. Leave comments and resolve discussions on specific lines of code. In GitLab, Merge Request inline comments are interpreted as a discussion. You can configure your project to only accept merge requests when all discussions are resolved.
Documentation
Easily debug your containers in any of your environments using the built-in GitLab Web Terminal. GitLab can open a terminal session directly from your environment if your application is deployed on Kubernetes. This is a very powerful feature where you can quickly debug issues without leaving the comfort of your web browser.
Documentation
GitLab Merge Requests are editable by the author, the project’s owners and users with master access. Every field is editable, as well as the target branch.
Documentation
When reviewing a merge request that looks ready to merge but still has one or more CI/CD jobs running, you can set it to be merged automatically when the jobs pipeline succeeds.
Documentation
Prevent merge requests from accidentally being accepted before they’re completely ready by marking them as Work In Progress (WIP). This gives you all the code review power of merge requests, while protecting unfinished work.
Documentation
You can automatically spin up and down VMs to make sure your builds get processed immediately and minimize costs.
Documentation
Pipelines can be complex structures with many sequential and parallel jobs. To make it a little easier to see what is going on, you can view a graph of a single pipeline and its status.
Documentation
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.
Documentation
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.
Documentation
Environments history allows you to see what is currently being deployed on your servers, and to access a detailed view for all the past deployments. From this list you can also re-deploy the current version, or even rollback an old stable one in case something went wrong.
Documentation
You can define a custom path into your repository for your CI/CD configuration file.
Documentation
GitLab is able to parse job output logs and search, via a customizable regex, any information created by tools like SimpleCov to get code coverage. Data is automatically available in the UI and also as a badge you can embedd in any HTML page or publish using GitLab Pages.
Blog post
Auto DevOps brings DevOps best practices to your project by automatically configuring software development lifecycles by default. It automatically detects, builds, tests, deploys, and monitors applications.
Documentation
GitLab CI/CD requires less configuration for your pipelines than other similar setups like Jenkins.
Feature detailsGitLab Container Registry is a secure and private registry for Docker images. It allows for easy upload and download of images from GitLab CI. It is fully integrated with Git repository management.
DocumentationGitLab 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.
Feature details
Deploy from one environment (e.g. staging) to any other (e.g. production) from Chat
Documentation
Access your test reports, code quality and coverage information directly from your browser, with no need to download them locally.
Documentation
With GitLab CI you can upload your job artifacts in GitLab itself without the need of an external service. Because of this, artifacts are also browsable through GitLab’s web interface.
Documentation
You can make your pipelines run on a schedule in a cron-like environment.
Documentation
GitLab CI is capable of not only testing or building your projects, but also deploying them in your infrastructure, with the added benefit of giving you a way to track your deployments. Environments are like tags for your CI jobs, describing where code gets deployed.
Documentation
Protected Runners allow you to protect your sensitive information, for example deployment credentials, by allowing only jobs running on protected branches to access them.
Issue details
Create a Kubernetes cluster on GKE directly from your project, just connecting your Google Account and providing some information. The cluster can be used also by Auto DevOps to deploy your application.
Issue details
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.
Documentation
GitLab Enterprise Edition Premium can monitor your Canary Deployments when deploying your applications with Kubernetes.
Documentation
You can specify a retry keyword in your .gitlab-ci.yml file to make GitLab CI/CD retry a job for a specific number of times before marking it as failed.
Documentation
The ability of running CI/CD pipelines on protected branches is checked against a set of security rules that defines if you’re allowed or not. It includes creating new pipelines, retrying jobs, and perform manual actions.
Documentation
Limit the environment scope of a secret variable by defining which environments it can be available for.
Documentation
Define variables at the group level and use them in any project in the group.
DocumentationGitLab collects and displays performance metrics for deployed apps, leveraging Prometheus. Developers can determine the impact of a merge and keep an eye on their production systems, without leaving GitLab.
DocumentationGitLab comes out of the box enabled for Prometheus monitoring with extensive instrumentation, making it easy to ensure your GitLab deployment is responsive and healthy.
Documentation
“Distribute read-only queries among multiple PostgreSQL database servers and reduce the load on the primary database to increase responsiveness.”
Documentation
Create groups within groups to easily manage large amounts of people and projects
Feature details
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.
Feature details
For mission critical releases, you cannot afford downtime. Split your app servers, database, etc., into multiple instances and work in read-only mode during backups.
Documentation
GitLab provides a simple command line interface to backup or restore your whole installation, and is flexible enough to fit your needs.
Documentation
Easily set up a highly available Postgres cluster with automated failover (beta)
Documentation
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.
DocumentationManage access and permissions with five different user roles and settings for external users. Set permissions according to people's role, rather than either read or write access to a repository. Don't share the source code with people that only need access to the issue tracker.
Documentation
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.
Documentation
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.
Documentation
Ensure that disk space usage is under control.
Documentation
Group owners can prevent new members from being added to projects within a group.
Documentation
Control the technology and key length of SSH keys used to access GitLab
Documentation
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.
Documentation
GitLab Enterprise Edition Premium gives more flexibility to syncronise with LDAP based on filters, meaning you can leverage LDAP attributes to map GitLab permissions.
Documentation
To maintain the integrity of your code, GitLab Enterprise Edition 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.
Documentation
Auditor users are users who are given read-only access to all projects, groups, and other resources on the GitLab instance.
Documentation
Sign commits and prove that a commit was performed by a certain user.
Documentation
GitLab Enterprise Edition Premium allows you to enforce GPG signatures by reject unsigned commits.
Documentation
You can mark a secret variable as “protected” to make it available only to jobs running on protected branches, therefore only authorized users can get access to it.
Documentation
A single repository in Git is typically a number of times smaller than the same repository in SVN.
Documentation
Block important or secret files from being accidentally pushed to a live repository with push rules.
Documentation
Get the support you need. Our team of highly-skilled support engineers are available to help with all of your support needs.
Feature details
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.
Feature details
Receive support within a single business day.
Learn more about our support packageA separate system for documentation called Wiki, is built right into each GitLab project. Every Wiki is a separate Git repository.
DocumentationGitLab Pages provides an easy system for hosting static sites using GitLab repositories and GitLab CI, complete with custom domains and HTTPS support.
Feature details
With GitLab Pages, you can create a private repository to hold your site content, and keep only the page source (HTML) available online.
Documentation
With GitLab Pages websites, you can use a custom domain or subdomain.
Documentation
GitLab Pages allows you to add as many custom domains (known as domain aliases) pointing to a single website. A domain alias is like having multiple front doors to one location.
Documentation
Install a SSL/TLS certificate, at no cost, on a website set up with a custom domain served by GitLab Pages.
Documentation
Choose an example project to fork and get started with GitLab Pages.
Watch a 3-min video tutorial on how to get started with GitLab Pages by forking a project
Besides building any Jekyll version you want, with GitLab Pages you can use all Jekyll plugins available.
Documentation
GitLab Pages allows you to create custom error pages.
Documentation
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.
Feature details
Leverage Elasticsearch for faster, more advanced code search across your entire GitLab instance.
Documentation
With contribution analytics you can have an overview for the activity of issues, merge requests and push events of your organization and its members.
Documentation
Sync groups, manage SSH-keys, manage permissions, authentication and more. You can manage an entire GitLab instance through the LDAP / AD integration.
Documentation
GitLab provides APIs for most features, allowing developers to create deeper integrations with the product.
Documentation
Use LDAP groups to create or remove admins from your GitLab instance.
Documentation
Integrate with multiple LDAP servers for use when authenticating users.
Documentation
Add webhooks by default to all projects in a group so you can ensure they are present everywhere.
Documentation
Integrate with Jenkins CI and display the merge request build status directly from the merge request.
Documentation
Issues can be exported as CSV from GitLab and are sent to your default notification email as an attachment.
Documentation
GitLab Runner supports Windows operating system and can run jobs natively on this platform. You can automate build, test and deploy for Windows based projects leveraging powershell or batch files.
Documentation
GitLab Runner supports OSX operating system and can run jobs natively on this platform. You can automate build, test and deploy for OSX based projects leveraging shell scripts and command line tools.
Documentation
GitLab Runner supports Linux operating system on ARM architectures and can run jobs natively on this platform. You can automate build, test and deploy for Linux ARM based projects leveraging shell scripts and command line tools.
Documentation
GitLab Runner supports FreeBSD operating system and can run jobs natively on this platform. You can automate build, test and deploy for FreeBSD based projects leveraging shell scripts and command line tools.
Documentation
GitLab can integrate with Authentication and Authorization (LDAP / AD) mechanisms, multiple 3rd party services, CI/CD, and other tools such as ALM, PLM, Agile and Automation tools.
Documentation
Leverage the power of Git Hooks and chain them together to fire off custom scripts when certain actions occur on the repository. If the commit is declined or an error occurs during the Git hook check, the error message of the hook will be present in GitLab’s UI. GitLab supports all types of hooks.
Documentation
To ensure that developers in GitLab and project managers in JIRA remain in tune, GitLab integrates with JIRA and provides the necessary tooling to fill that gap.
Feature details
View GitLab repository information and navigate to GitLab from the JIRA development panel
Documentation
Manage large files such as audio, video and graphics files with the help of Git LFS.
Documentation
GitLab can integrate with most of the authentication and authorization providers.
Documentation
GitLab can import projects and issues from more sources (GitHub, BitBucket, Google Code, FogBugz, Gitea and from any git URL) than GitHub or any other VCS. We even have you covered for your move from SVN to Git with comprehensive guides and documentation.
Documentation
GitLab lets you easily migrate all repos, issues and merge request data from your previous provider.
Documentation
GitLab CE/EE can be installed on physical servers, virtualized servers (dedicated or shared), purpose-built appliances and virtualized appliances. These aren’t available with hosted solutions. Likewise, most on-premises servers can be deployed on a variety of operating systems and there’s more choice of on-premises solutions in general.
Read about the different ways to install GitLab
You have complete control of the server/instance, so you can install additional software (intrusion detection, performance monitoring, etc.) and view log files on the server itself. GitLab’s advanced log system means everything gets logged and provides you with easy access to a wealth of log file information.
Documentation
GitLab can run on bare metal servers where you can have control of the disk I/O, CPU, RAM, etc. Scale horizontally without an issue.
Read about the different ways to install GitLab
You are free to run your own software on the instance that GitLab is running on. Have your own intrusion detection system? No problem.
Read about the different ways to install GitLab
You can use your choice of configuration management software, from Puppet, Chef, Ansible for quick and straightforward implementation.
Read about the different ways to install GitLab
Use the tools you know for monitoring and maintenance, whether they’re standard or your own. GitLab doesn’t restrict you.
Read about the different ways to install GitLab
Use GitLab’s official repositories or manually download the package to install GitLab in a few steps. All major Linux distributions are supported.
Read about the different ways to install GitLab
All configuration options for administering a GitLab instance are in a single file. Say no to complex setups, your admin will thank you.
Read about the different ways to install GitLab
GitLab Enterprise Edition is publicly readable, meaning you can scan or modify the code to meet your security and development needs. The code used by most other providers is proprietary, meaning you cannot edit or view the source code.
Issue details
Containing your company’s IP behind the company’s firewall gives you protection from unauthorized access. Learn from the lessons of Code Space.
Lessons from Code Space
Take control of maintenance downtime, don’t be at the mercy of your hosting provider. Control how and where your code is backed up and stored.
GitLab releases a new version each month and lets you choose when to upgrade.
Learn how to upgrade your GitLab instance
Using our official Linux repositories or the official Docker image, upgrading GitLab is a breeze.
Learn how to upgrade your GitLab instance
GitLab has open issue trackers for almost all of its operations. From GitLab itself to infrastructure and marketing, you can help shape the product.
View all GitLab contributorsGitLab 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.
Feature detailsWhen a user is mentioned in or assigned to a merge request it will be included in the user Todos, making the development workflow faster and easier to track.
Documentation
Some other services have faster pageloads than GitLab.com right now, we’re actively working on improving this. Self-hosted instances of GitLab CE/EE will be performant up to tens of thousands of users.
Issue details
In GitLab, you can quickly create a new branch from an issue on the issue tracker. It will include the issue number and title automatically, making it easy to track which branch belongs to which issue.
Documentation
GitLab provides a convenient way to change metadata of an issue or merge request without leaving the comment field with slash commands.
Documentation
If you host GitLab yourself, IPv6 is supported as long as your underlying provider can support it. GitLab.com on the other hand does not support IPv6 at the moment due to limited provider support.
Read about the different ways to install GitLab
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.
Documentation
Accelerate idea-to-production by identifying areas of improvement in your entire development process. See how you compare to other organizations using GitLab.
Documentation
Git, on which GitLab is built, is fully distributed. Every user has a complete copy of the repository, allowing for much faster access to history, easier branching and an overall better experience.
Documentation
Git is really fast. Performing a diff, viewing history, committing and merging changes, obtaining any revision and any form of branching is very quick.
Documentation
GitLab.com has shared runners that allow you to use GitLab CI completely free up to 2000 build minutes for private projects and unlimited for public projects. Alternatively, you can set up your own Runner for faster build processing, unlimited build minutes, or special requirements.
Explore GitLab.com offerings
GitLab is meant to be the best place for any software project. The team behind GitLab is addressing issues that maintainers and contributors to large open source projects are facing, to make it easier to do both.
Blog post
In GitHub, when a user opens a pull request from a fork, they are given the option that allows the upstream repository contributors to collaborate with them on their new branch. GitLab allows you to restrict pushes very carefully, but does not have this option.
Issue details
You can change the order of tasks in markdown on GitHub. GitLab does not have this ability, but is considering implementing it.
Issue details
Link from new issues to a SUPPORT file, pointing to support resources.
Issue details
Many languages use frameworks that automatically run tests on your code and create a report: one example is the JUnit format that is common to different tools. GitLab supports browsing artifacts and you can download reports, but we’re still working on a proper way to integrate them directly into the product.
Issue details
Other CI systems show execution time for each single command run in CI jobs, not just the overall time. We’re reconsidering how job output logs are managed in order to add this feature as well.
Issue details
When viewing a merge request diff, navigate directly to a method/function in a changed file.
Issue details