# How to update this file:
# https://about.gitlab.com/handbook/marketing/website/#adding-features-to-webpages
# https://about.gitlab.com/handbook/marketing/website/#creating-a-comparison-page

devops_tools:
  # gitlab_core, gitlab_starter, gitlab_premium are needed for the feature comparison
  # table under /products.
  gitlab_core:
    name: 'Core'
    short_name: 'Core'
    logo: '/images/devops-tools/ce-gitlab-logo.svg'
  gitlab_starter:
    name: 'Starter'
    short_name: 'Starter'
    logo: '/images/devops-tools/ees-gitlab-logo.svg'
  gitlab_premium:
    name: 'Premium'
    short_name: 'Premium'
    logo: '/images/devops-tools/eep-gitlab-logo.svg'
  gitlab_ultimate:
    name: 'Ultimate'
    short_name: 'Ultimate'
    logo: '/images/devops-tools/eeu-gitlab-logo.svg'
    category:
      - value_stream_management
      - devops_reports
      - audit_events
      - authentication_and_authorization
      - project_management
      - epics
      - backlog_management
      - source_code_management
      - code_review
      - wiki
      - design_management
      - snippets
      - web_ide
      - continuous_integration
      - unit_testing
      - integration_testing
      - code_quality
      - performance_testing
      - container_registry
      - package_registry
      - continuous_delivery
      - pages
      - review_apps
      - incremental_rollout
      - auto_devops
      - kubernetes_management
      - chatops
      - metrics
      - logging
      - alert_management
      - static_application_security_testing
      - secret_detection
      - dynamic_application_security_testing
      - dependency_scanning
      - container_scanning
      - license_compliance
      - web_firewall
      - incident_management
      - container_behavior_analytics
      - container_network_security
      - behavior_analytics
      - vulnerability_management
  gitlab_com:
    name: 'GitLab.com'
    logo: '/images/devops-tools/gitlab-logo.svg'
  gitlab_free:
    name: 'GitLab.com Free'
    logo: '/images/devops-tools/gitlab-logo.svg'
  gitlab_bronze:
    name: 'GitLab.com Bronze'
    logo: '/images/devops-tools/gitlab-logo.svg'
  gitlab_silver:
    name: 'GitLab.com Silver'
    logo: '/images/devops-tools/gitlab-logo.svg'
  gitlab_gold:
    name: 'GitLab.com Gold'
    logo: '/images/devops-tools/gitlab-logo.svg'
  github:
    name: 'GitHub'
    logo: '/images/devops-tools/github-logo.svg'
    include_file: devops-tools/github/index.html.md.erb
    category:
      - audit_events
      - authentication_and_authorization
      - compliance_management
      - issue_tracking
      - kanban_boards
      - source_code_management
      - code_review
      - wiki
      - snippets
      - continuous_integration
      - container_registry
      - package_registry
      - pages
      - static_application_security_testing
      - dependency_scanning
      - vulnerability_database
  trello:
    name: 'Trello'
    logo: '/images/devops-tools/trello-logo.svg'
    include_file: '/devops-tools/trello/index.html.md.erb'
    category:
      - issue_tracking
      - kanban_boards
    summary: |
       Trello is a web-based project management application which uses the analogy of lists and cards as a user interface. A rich API as well as email-in capability enables integration with enterprise systems, or with cloud-based integration services. Trello offers a web interface, and mobile clients, and synchronizes all of them in near real time. Trello is offered as SaaS only.

       GitLab also offers a list and card based user interface for project management, but also offers capabilities in code creation, testing, packaging, releasing, monitoring, and securing the work. While Trello does a great job of providing the single functionality of work item management and only as a SaaS solution, GitLab offers one application for the entire DevOps lifecycle, either as SaaS or in a self-managed form.
  jira:
    name: 'Jira'
    logo: '/images/devops-tools/jira-logo.png'
    include_file: devops-tools/jira/index.html.md.erb
    category:
      - kanban_boards
      - issue_tracking
      - time_tracking
  microfocus_alm_octane:
        name: 'Micro Focus ALM Octane'
        logo: '/images/devops-tools/microfocus-logo.png'
        include_file: devops-tools/microfocus-alm-octane/index.html.md
        category:
          - issue_tracking
          - epics
  gerrit:
    name: 'Gerrit'
    logo: '/images/devops-tools/gerrit-logo.png'
    include_file: '/devops-tools/gerrit/index.html.md'
    category:
      - code_review
    summary: |
        Gerrit is a free, web-based team code collaboration tool. Software developers in a team can review each other's modifications on their source code using a Web browser and approve or reject those changes. Gerrit is a fork of Rietveld, another code review tool.
  bitbucket:
    name: "Atlassian Bitbucket"
    logo: '/images/devops-tools/bitbucket-logo.png'
    include_file: '/devops-tools/bitbucket/index.html.md.erb'
    category:
      - source_code_management
      - code_review
      - wiki
  jenkins:
    name: 'Jenkins'
    logo: '/images/devops-tools/jenkins-logo.svg'
    include_file: devops-tools/jenkins/index.html.md.erb
    category:
      - continuous_integration
  travis_ci:
    name: 'Travis CI'
    logo: '/images/devops-tools/travis-ci-logo.png'
    category:
      - continuous_integration
    summary: |
      Travis CI is a hosted, distributed continuous integration service used to build and test software projects hosted at GitHub. Travis CI also offers a self-hosted version called Travis CI Enterprise which requires either a GitHub Enterprise installation or account on GitHub.com. In contrast, GitLab.com and GitLab self-hosted versions offer both source code management, issue tracking, continuous integration, and many more DevOps tool chain requirements in a single application, while still also working with GitHub.

      When Travis CI has been activated for a given repository, GitHub will notify it whenever new commits are pushed to that repository or a pull request is submitted. Travis CI will then check out the relevant branch and run the commands specified in .travis.yml, which usually build the software and run any automated tests. When that process has completed, Travis notifies the developer(s) in the way it has been configured to do so.

      Although the Travis CI source is technically free software and available piecemeal on GitHub under permissive licenses, the company notes that it is unlikely that casual users could successfully integrate it on their own platforms. (ref: [wikipedia](https://en.wikipedia.org/wiki/Travis_CI)). In contrast, GitLab is open source and open core and available for everyone to contribute.
  circle_ci:
    name: 'CircleCI'
    logo: '/images/devops-tools/circle-ci-logo.svg'
    category:
      - continuous_integration
    summary: 'CircleCI is a continuous integration server (available both cloud-based and self-hosted) that supports any language that builds on Linux or macOS, including C++, JavaScript, .NET, PHP, Python, and Ruby. Like GitLab, CircleCI has been named a leader in CI by Forrester in 2017. CircleCI focuses on the orchestration and automation of the CI/CD pipeline and integrates to several industry standard tools for all other functionality. In contrast, GitLab offers a single integrated application providing automation of the entire DevOps lifecycle, based on tight out-of-the-box integrations with industry leading open source tools. GitLab also has the ability integrate to all other tools using CLI, API, and webhooks.'

  codeship:
    name: 'CodeShip'
    logo: '/images/devops-tools/codeship-logo.png'
    include_file: '/devops-tools/codeship/index.html.md.erb'
    category:
      - continuous_integration

  bamboo:
    name: 'Bamboo'
    logo: '/images/devops-tools/bamboo-logo.png'
    category:
      - continuous_integration
    include_file: devops-tools/bamboo/index.html.md
  spinnaker:
    name: 'Spinnaker'
    logo: '/images/devops-tools/spinnaker-logo.svg'
    category:
      - continuous_delivery
    include_file: devops-tools/spinnaker/index.html.md

  urbancode:
    name: 'UrbanCode Deploy'
    logo: '/images/devops-tools/UrbanCode-logo-2019.png'
    category:
      - continuous_delivery
    include_file: devops-tools/hcl-urbancode-deploy/index.html.md
  launchdarkly:
    name: 'LaunchDarkly'
    logo: '/images/devops-tools/launchdarkly-logo.png'
    category:
      - feature_flags
    include_file: devops-tools/launchdarkly/index.html.md

  codestar:
    name: 'AWS CodeStar'
    logo: '/images/devops-tools/codestar-logo.png'
    category:
      - source_code_management
      - continuous_integration
      - continuous_delivery
    summary: 'AWS CodeStar helps you develop, build, and deploy applications on AWS by providing a pre-configured continuous delivery toolchain.  Built-in security policies for various roles secure code access while the project dashboard centrally monitors application activity. Integration with Atlassian JIRA is required to create and manage JIRA issues in the AWS CodeStar dashboard. GitLab is a complete DevOps platform, delivered as a single application, providing CI/CD plus issue tracking for any SLDC, including those built on AWS.'
  teamcity:
    name: 'JetBrains TeamCity'
    logo: '/images/devops-tools/teamcity.png'
    category:
      - continuous_integration
    include_file: devops-tools/teamcity/index.html.md
  new_relic:
    name: 'New Relic'
    logo: '/images/devops-tools/new-relic-logo.png'
    include_file: devops-tools/new-relic/index.html.md
    category:
      - metrics
  datadog:
    name: 'Datadog'
    logo: '/images/devops-tools/datadog-logo.png'
    include_file: devops-tools/datadog/index.html.md
    category:
      - metrics
  victorops:
    name: 'VictorOps'
    logo: '/images/devops-tools/victorops-logo.png'
    include_file: devops-tools/victorops/index.html.md
    category:
      - incident_management
  splunk:
    name: 'Splunk'
    logo: '/images/devops-tools/splunk-logo.png'
    include_file: devops-tools/splunk/index.html.md
    category:
      - metrics
      - vulnerability_management
  microfocus_APM:
    name: 'Micro Focus APM'
    logo: '/images/devops-tools/microfocus-logo.png'
    include_file: devops-tools/micro-focus-apm/index.html.md
    category:
      - metrics
  dynatrace:
    name: 'Dynatrace'
    logo: '/images/devops-tools/dynatrace-logo.svg'
    include_file: devops-tools/dynatrace/index.html.md
    category:
      - metrics
  broadcom_apm:
    name: 'Broadcom (CA Technologies)'
    logo: '/images/devops-tools/ca-agile-central.png'
    include_file: devops-tools/broadcom-apm/index.html.md
    category:
      - metrics
  # ibm_apm:
  #   name: 'IBM APM'
  #   logo: '/images/devops-tools/ibm-logo.png'
  #   include_file: devops-tools/ibm-apm/index.html.md
  #   category:
  #     - metrics
  nagios:
    name: 'Nagios XI'
    logo: '/images/devops-tools/nagios-logo.png'
    include_file: devops-tools/nagios/index.html.md
    category:
      - metrics
  gogs:
    name: 'Gogs'
    logo: '/images/devops-tools/gogs-logo.png'
    category:
      - source_code_management
    summary: |
       Gogs is a light weight git server written in Go which is designed to be simple to set up and operate and can be run on just about anything. It is 100% open source under the MIT OSS license and provided only in self-managed form. Gogs offers repository file viewing and editing, project issue tracking, and a built-in wiki for project documentation.
  azuremonitor:
    name: 'MS Azure Monitor'
    logo: '/images/devops-tools/azure-monitoring-logo.svg'
    include_file: devops-tools/azuremonitor/index.html.md
    category:
      - metrics
  gitea:
    name: 'Gitea'
    logo: '/images/devops-tools/gitea-logo.png'
    category:
      - source_code_management
    summary: |
       Gitea is a community fork of Gogs, a  light weight git server written in Go which is designed to be simple to set up and operate and can be run on just about anything. It is 100% open source under the MIT OSS license and provided only in self-managed form. Gitea offers repository file viewing and editing, project issue tracking, and a built-in wiki for project documentation.
  svn:
    name: 'SVN'
    logo: '/images/devops-tools/subversion-logo.png'
    category:
      - source_code_management
  saas:
    name: 'SaaS'
    logo: 'null'
  gitlab_issue_boards:
    name: 'GitLab Issue Boards'
    logo: '/images/devops-tools/gitlab-logo.svg'
  asana:
    name: 'Asana'
    logo: '/images/devops-tools/asana-logo.png'
    include_file: devops-tools/asana/index.html.md
    category:
      - issue_tracking
      - kanban_boards
  azure_devops:
    name: 'Azure DevOps (TFS/VSTS)'
    logo: '/images/devops-tools/azure-devops-logo.png'
    include_file: '/devops-tools/azure_devops/index.html.md.erb'
    category:
      - issue_tracking
      - kanban_boards
      - source_code_management
      - continuous_integration
      - package_registry
      - continuous_delivery
      - wiki
      - vulnerability_management
      - web_firewall
      - behavior_analytics
      - container_network_security
  blackduck:
    name: 'BlackDuck'
    logo: '/images/devops-tools/blackduck-logo.png'
    category:
      - dependency_scanning
      - container_scanning
      - license_compliance
    summary: |
      BlackDuck offers security scanning of open source components, container scanning, and license management. BlackDuck was purchased by Synopsys. Synopsys also offers separate products for IAST and SAST, but those will be compared separately as they are purchased separately.

      BlackDuck maintains an Inventory of all open source code and its vulnerabilities and makes it available in the CI/CD pipeline via APIs. Unlike GitLab, it can detect more granular components beyond library use. Like GitLab, BlackDuck also uses a national vuln database but they add their own proprietary research.

      When a new vulnerability is announced, BlackDuck knows immediately what code is affected.  BlackDuck provides remediation advise, scoring, and CWE vuln type. The dashboard shows projects affected, by vulnerability, by project app or container, including a risk view.  You can also pivot to view vulns by project and projects affected by vulns. BlackDuck covers 81 languages.

      GitLab Ultimate automatically includes broad security scanning with every code commit including Static and Dynamic Application Security Testing, along with dependency scanning, container scanning, and license management. While BlackDuck can integrate with GitHub and other tools, that approach will require multiple software licenses and integration / maintenance effort.

  synopsys:
    name: 'Synopsys'
    logo: '/images/logos/synopsys-logo.png'
    category:
      - dependency_scanning
      - static_application_security_testing
      - license_compliance
      - container_scanning
      - dynamic_application_security_testing
    summary: |
      Synopsys has separate products for each type of application security testing. They include the following.

        * BlackDuck for dependency scanning, container scanning, and license management.
          Details are under BlackDuck comparison.

        * Coverity for SAST
          Coverity includes spell-checker-like capability with an IDE plug-in that alerts the developer to vulnerable phrases as they code. It also has dashboard that pulls in IAST from Seeker for a unified view. Coverity covers 20 programming languages. Our research indicates that Coverity costs around $12k USD for 5 users for the year.

        * Seeker for IAST
          Seeker employs and agent on the application. It is used during functional testing so that security tests are done in the normal course of other testing. Seekers has an API to integrate with Dev IDE. Seeker works with Java/all JVM languages. Seeker is only available on prem.

      GitLab Ultimate automatically includes broad security scanning with every code commit including Static and Dynamic Application Security Testing, along with dependency scanning, container scanning, and license management. While Synopsys can integrate with IDE's and DevOps tools via the API, that approach will require multiple software licenses and integration / maintenance effort.
  snyk:
    name: 'Snyk'
    logo: '/images/devops-tools/snyk.png'
    category:
      - dependency_scanning
    summary: |
      Snyk offers security scanning of open source components and container scanning.

      GitLab Ultimate offers not only these capabilities but also Static and Dynamic Application Security Testing and License Management. GitLab Ultimate automatically includes broad security scanning with every code commit including Static and Dynamic Application Security Testing, along with dependency scanning, container scanning, and license management.
  ca_veracode:
    name: 'Veracode'
    logo: '/images/devops-tools/veracode-logo.png'
    category:
      - static_application_security_testing
      - dynamic_application_security_testing
    summary: |
      Both Veracode and GitLab Ultimate offer open source component scanning along with Static and Dynamic Application Security Testing. Veracode is a mature product with a hefty pricetag. Veracode offers a SAST-lite product that integrates in the developer's IDE offering spell-check-like functionality to flag vulnerabilities as the developer types. It is a separate product.

      GitLab Ultimate automatically includes broad security scanning with every code commit including Static and Dynamic Application Security Testing, along with dependency scanning, container scanning, and license management.

      Note: In November 2018, the private equity firm Thoma Bravo acquired Veracode from Broadcom.  Veracode now functions as an independent company within the Thoma Bravo portfolio of companies.  Between March 2017 and July 2018 Veracode was part of CA Technologies.  For a brief period, from July 2018 to November 2018, Veracode was part of Broadcom following CA Technologies' acquisition by Broadcom

  microfocus_fortify:
    name: 'MicroFocus Fortify'
    logo: '/images/devops-tools/microfocus-logo.png'
    category:
      - dependency_scanning
      - static_application_security_testing
      - dynamic_application_security_testing
    summary: |
      Both Fortify and GitLab Ultimate offer open source component scanning along with Static and Dynamic Application Security Testing. Fortify uses Sonatype for open source scanning in its SaaS product as an OEM service. Fortify on-premise is integrated with SonaType and BlackDuck for open source scanning on-premise, both of those require separate licensing and set up.

      Fortify is a mature product and has led the Gartner Magic Quadrant for application security testing every year. Fortify offers IAST (with DAST) and RASP, though it does not offer container scanning. In spite of it's strengths as a stand-alone product, Fortify is a separate process outside of the developer's merge request workflow. The Fortify RASP product, Application Defender, is limited to Java and .Net applications. The Fortify Security Center (SSC) is needed if you want to pull results together from across the various Fortify scanners. Fortify acquired WebInspect many years back for DAST but you may still hear the name WebInspect from customers.  Fortify does not offer any form of container scanning currently.  Fortify does not offer portfolio level dashboard of vulnerabilities.

      Fortify can be easily integrated into GitLab CI process using Command Line and API integrations.

      GitLab automatically includes broad security scanning with every code commit including Static and Dynamic Application Security Testing, along with dependency scanning, container scanning, and license management.  GitLab aggregates and displays all results in a single dashboard both at Group and Project levels.

  checkmarx:
    name: 'Checkmarx'
    logo: '/images/devops-tools/checkmarx-logo.png'
    category:
      - static_application_security_testing
      - dependency_scanning
    include_file: devops-tools/checkmarx/index.html.md
  ibm_appscan:
    name: 'IBM AppScan'
    logo: '/images/devops-tools/ibm-appscan-logo.png'
    category:
      - static_application_security_testing
      - dynamic_application_security_testing
      - dependency_scanning
    summary: |
      Both IBM AppScan and GitLab Ultimate offer open source component scanning along with Static and Dynamic Application Security Testing. IBM AppScan is a mature product but, unlike GitLab Ultimate, it does not offer container scanning.

      GitLab Ultimate automatically includes broad security scanning with every code commit including Static and Dynamic Application Security Testing, along with dependency scanning, container scanning, and license management.
  sonarqube:
    name: 'SonarQube'
    logo: '/images/devops-tools/sonarqube-logo2.png'
    category:
      - static_application_security_testing
      - dependency_scanning
    summary: |
      SonarQube is an open source tool for continuous inspection of code quality using static **software composition analysis** to detect bugs, code smells, and security vulnerabilities on 20+ programming languages. SonarQube offers reports on duplicated code, coding standards, unit tests, code coverage, code complexity, comments, bugs, and security vulnerabilities.

      GitLab Ultimate automatically includes broad security scanning with every code commit including Static and Dynamic Application Security Testing, along with dependency scanning, container scanning, and license management.'
  sonatype_nexus_platform:
    name: 'Sonatype Nexus Platform'
    logo: '/images/devops-tools/sonatype-nexus-logo.png'
    category:
      - dependency_scanning
      - container_scanning
      - license_compliance
    summary: |
      Sonatype Nexus Platform is comprised of multiple products which contribute to the Sonatype Nexus security capabilities. Those products are Nexus Lifecycle, Nexus Auditor, Nexus Firewall, and Nexus Repository Pro, and the Nexus Intelligence service. In the application security space, Sonatype Nexus scans open source components for security vulnerabilities, scans containers and offers license management. Fortify relies on Sonatype for dependency scanning.

      GitLab Ultimate automatically includes broad security scanning with every code commit including Static and Dynamic Application Security Testing, along with dependency scanning, container scanning, and license management.

      For packaging deployments, both Sonatype and GitLab offer container registry, but Sonatype also offers a full binary repository in the form of Nexus Repository (available in both OSS and Pro).
  jfrog_artifactory:
    name: 'JFrog Artifactory'
    logo: '/images/logos/jfrog_artifactory.png'
    category:
      - container_registry
      - package_registry
      - helm_chart_registry
      - dependency_proxy
    include_file: devops-tools/artifactory/index.html.md
  sonatype_nexus_repo:
    name: 'Sonatype Nexus Repository'
    logo: '/images/devops-tools/sonatype-nexus-repo-logo.png'
    category:
      - container_registry
      - package_registry
      - helm_chart_registry
      - dependency_proxy
    summary: |
      Sonatype Nexus Repository  (available in both OSS and Pro) is a part of the Sonatype Nexus suite. Other products are Nexus Lifecycle, Nexus Auditor, Nexus Firewall, Nexus Platform, and the Nexus Intelligence service.

      Both Sonatype and GitLab offer a binary artifact repository and container registry, but Sonatype currently offers a support for more package types.
  docker_hub:
    name: 'Docker Hub'
    logo: '/images/devops-tools/docker-hub-logo.png'
    category:
      - container_registry
    summary: |
      Docker Hub is a cloud-based repository service in which Docker users and partners create, test, store and distribute container images. Docker Hub is the main public Docker repository which all docker tools go to by default. It offers both public repositories (for free) and private repositories (for a monthly recurring cost).
  docker_trusted_registry:
    name: 'Docker Trusted Registry'
    logo: '/images/devops-tools/docker-trusted-registry-logo.png'
    category:
      - container_registry
    summary: |
      Docker Trusted Registry is an enterprise-grade image storage solution from Docker. It is installed behind a firewall so that Docker images can be securely stored and managed, on-premise, letting an organization keep it's containers separate from the rest of the world. Like Docker Trusted Registry, GitLab also provides a secured container registry that can be installed behind an organizations firewalls and within it's complete control.
  aws_ecr:
    name: 'AWS Elastic Container Registry'
    logo: '/images/devops-tools/aws-ecr-logo.png'
    category:
      - container_registry
    summary: |
      Amazon Elastic Container Registry (ECR) is a fully-managed Docker container registry that makes it easy for developers to store, manage, and deploy Docker container images. Amazon ECR is integrated with Amazon Elastic Container Service (ECS) but can also be used from other sources. ECR is charged by storage and by internet traffic, meaning that it's cheaper to use if you stay within the AWS bubble.

      In contrast, GitLab provides a container registry which is built-in part of the product (ie. no extra costs beyond standard operating costs).
  azure_cr:
    name: 'Azure Container Registry'
    logo: '/images/devops-tools/azure-cr-logo.png'
    category:
      - container_registry
      - helm_chart_registry
    summary: |
      Azure Container Registry (ACR) provides storage of private Docker container images, enabling fast, scalable retrieval, and network-close deployment of container workloads on Azure. Additional capabilities include geo-replication, image signing with Docker Content Trust, and Helm Chart Repositories. Azure Container Registry has tiered per day and use costs.

      In contrast, GitLab provides a container registry which is built-in part of the product (ie. no extra costs beyond standard tiered licensing costs for the single GitLab application which provides capabilities for the entire DevOps lifecycle).
  google_cr:
    name: 'Google Container Registry'
    logo: '/images/devops-tools/google-cr-logo.png'
    category:
      - container_registry
    summary: |
      Google Container Registry (GCR) provides secure, private Docker image storage on Google Cloud Platform. It provides a single place for teams to manage Docker images, perform vulnerability analysis, and decide who can access what with fine-grained access control. Existing CI/CD integrations let teams set up fully automated Docker pipelines to get fast feedback. Costs for use are based only on on Google Cloud Platform storage and network usage.

      GitLab also provides a container registry which is a built-in part of the product (ie. no extra costs beyond standard tiered licensing costs for the single GitLab application which provides capabilities for the entire DevOps lifecycle).
  quay:
    name: 'RedHat Quay'
    logo: '/images/devops-tools/quay-logo.svg'
    category:
      - container_registry
      - helm_chart_registry
    summary: |
      Redhat Quay container and application registry provides secure storage, distribution, and deployment of containers on any infrastructure. It is available as an add-on for OpenShift or as a standalone component. Quay is offered both as self-managed or SaaS (quay.io).

      GitLab also provides a container registry which is a built-in part of the product (ie. no extra costs beyond standard tiered licensing costs for the single GitLab application which provides capabilities for the entire DevOps lifecycle).
  whitesource:
    name: 'WhiteSource'
    logo: '/images/devops-tools/whitesource-logo.png'
    category:
      - dependency_scanning
    summary: |
      WhiteSource scans open source code for security vulnerabilities. They claim to cover 200 programming languages. The Checkmarx dependency scanning relies on WhiteSource.

      GitLab Ultimate automatically includes broad security scanning with every code commit including Static and Dynamic Application Security Testing, along with dependency scanning, container scanning, and license management.
  rapid7:
    name: 'Rapid7'
    logo: '/images/devops-tools/rapid7-logo.png'
    category:
      - dynamic_application_security_testing
      - vulnerability_management
    summary: |
      Rapid7 can crawl and assess web applications to identify vulnerabilities with offerings on-premise and in the cloud. Rapid7's InsightAppSec assesses and reports on a web application's compliance to PCI-DSS, HIPAA, OWASP Top Ten, and other regulatory requirements. Integration with Atlassian Jira gives developers full visibility within their existing workflows while the Attack Replay feature lets developers validate vulns and test source code patches on their own.

      GitLab Ultimate automatically includes broad security scanning with every code commit including Static and Dynamic Application Security Testing, along with dependency scanning, container scanning, and license management
  qualys:
    name: 'Qualys'
    logo: '/images/devops-tools/qualys-logo.png'
    category:
      - container_scanning
      - dynamic_application_security_testing
    summary: |
      Qualys offers cloud infrastructure security and web application security, delivered as a public or private cloud.

      GitLab Ultimate is available on-premise or in the cloud and provides integrated application security scanning with every code commit, including Static and Dynamic Application Security Testing, along with dependency scanning, container scanning, and license management.
  cloudbuild:
    name: 'Google Cloud Build'
    logo: '/images/logos/google-cloud-build.svg'
    include_file: devops-tools/cloudbuild/index.html.md
    category:
      - continuous_integration
  puppet:
     name: 'Puppet Enterprise'
     logo: '/images/logos/puppet-logo.svg'
     category:
       - kubernetes_management
     summary: |
       Puppet is a configuration management tool and language that enables deployment and maintenance of state for large scale infrastructure. Puppet excels as managing legacy infrastructure like physical servers and VMs. Puppet was designed before widespread container adoption and does not implement Kubernetes natively.

       GitLab is a complete DevOps platform, delivered as a single application that includes not only configuration management, but also capabilities for project management, source code management, CI/CD, and monitoring. GitLab is designed for Kubernetes and cloud native applications.

       GitLab can be used together with Puppet to enable VM and bare metal configuration management. For Cloud Native applications run on Kubernetes, Puppet is not required and GitLab comes with all the functionality needed built-in.
  chef:
    name: 'Chef'
    logo: '/images/devops-tools/chef.png'
    category:
      - kubernetes_management
    summary: |
      Chef is a configuration management tool that enables deployment and maintenance of state for large scale infrastructure. Chef excels as managing legacy infrastructure like physical servers and VMs. Chef was designed before widespread container adoption and does not implement Kubernetes natively.

      GitLab is a complete DevOps platform, delivered as a single application that includes not only configuration management, but also capabilities for project management, source code management, CI/CD, and monitoring. GitLab is designed for Kubernetes and cloud native applications.

      GitLab can be used together with Chef to enable VM and bare metal configuration management. For Cloud Native applications run on Kubernetes, Chef is not required and GitLab can provide all the functionality natively.
  ansible:
    name: 'Red Hat Ansible Tower'
    logo: '/images/devops-tools/ansible-tower-logo.png'
    category:
      - kubernetes_management
    summary: |
      Ansible is an automation language and tool that can be used for configuration management and infrastructure provisioning. It enables deployment and maintenance of state for large scale infrastructure. Ansible excels as managing legacy infrastructure like physical servers and VMs. Although Ansible provides container support with Docker integration, Ansible does not implement Kubernetes natively and instead relies on a module to support Kubernetes.

      GitLab is a complete DevOps platform, delivered as a single application that includes not only configuration management, but also capabilities for project management, source code management, CI/CD, and monitoring. GitLab is designed for Kubernetes and cloud native applications.

      GitLab [can be used together with Ansible](https://blog.callr.tech/gitlab-ansible-docker-ci-cd/) to enable VM and bare metal configuration management. For Cloud Native applications run on Kubernetes, Ansible is not required and GitLab can provide all the functionality natively.
  saltstack:
    name: 'SaltStack'
    logo: '/images/devops-tools/saltstack-logo.png'
    include_file: devops-tools/SaltStack/index.html.md
    category:
      - kubernetes_management
  # hashicorp:
  #   name: 'HashiCorp'
  #   logo: '/images/devops-tools/Hashicorp-logo.png'
  #   include_file: devops-tools/hashicorp/index.html.md
  #   category:
  #     - kubernetes_management
  awsopsworks:
    name: 'AWS Opsworks'
    logo: '/images/devops-tools/awsopsworks-logo.png'
    include_file: devops-tools/awsopsworks/index.html.md
    category:
      - kubernetes_management
  # heroku:
  #   name: 'Heroku'
  #   logo: '/images/devops-tools/heroku-logo.svg'
  #   include_file: devops-tools/heroku/index.html.md
  #   category:
  #     - paas
  # openshift:
  #   name: 'OpenShift'
  #   logo: '/images/devops-tools/openshift-logo.svg'
  #   include_file: devops-tools/openshift/index.html.md
  #   category:
  #     - paas
  ca_agile_central:
    name: 'CA Agile Central'
    logo: '/images/devops-tools/ca-agile-central.png'
    category:
      - authentication_and_authorization
    summary: 'CA Agile Central is an agile project planning and management tool designed to help enterprise teams adopt and implement agile methodologies.  Based on the acquisition of Rally Software, Agile Central enables teams to manage their backlog of user stories, estimate and plan the work to deliver the user stories and then manage the actual delivery.  Rally supports multiple agile methodologies from sprints, where the delivery work is timeboxed to kanban, where the focus is on flow.'
  version_one:
    name: 'Collabnet Version One'
    logo: '/images/devops-tools/Collabnet-VersionOne.png'
    category:
      - authentication_and_authorization
    summary: 'Collabnet VersionOne is an agile project planning and management tool designed to help enterprise teams adopt and implement agile methodologies.  Based on the acquisition of VersionOne, Collabnet/VersionOne enables teams to manage their backlog of user stories, estimate and plan the work to deliver the user stories and then manage the actual delivery.  VersionOne supports Scaled Agile Framework and multiple agile methodologies from sprints,  where the delivery work is timeboxed to kanban, where the focus is on flow.'
  microfocus_ppm:
    name: 'MicroFocus PPM'
    logo: '/images/devops-tools/microfocus-logo.png'
    category:
      - authentication_and_authorization
    summary: 'MicroFocus PPM is an IT project planning and management tool designed to help enterprise teams organize, plan, prioritize and execute large enterprise projects and programs.  It facilitates capturing and prioritizing demand from business teams, allocating resources and managing execution through to completion.  It enables agile project execution through integration with MicroFocus ALM Octane and MicroFocus Agile Manager.'
  planview:
    name: 'Planview'
    logo: '/images/devops-tools/planview-logo.png'
    category:
      - epics
      - issue_tracking
      - kanban_boards
    summary: 'Planview is an IT project planning and management tool designed to help enterprise teams organize, plan, prioritize and execute large agile projects and programs. It facilitates capturing and prioritizing demand from business teams, allocating resources and managing execution through to completion.'
  agilecraft:
    name: 'AgileCraft Enterprise'
    logo: '/images/devops-tools/agilecraft-logo.png'
    category:
      - epics
      - issue_tracking
      - kanban_boards
    summary: 'AgileCraft is an enterprise agile planning and management tool designed help large organizations adopt agile planning and execution.  Supporting multiple enterprise agile frameworks, AgileCraft is designed to integrate with most team level agile tools, providing enterprise portfolio planning and management capabilities.'
  xebialabs:
    name: 'XebiaLabs'
    logo: '/images/devops-tools/xebialabs-logo.png'
    category:
      - continuous_delivery
    summary: |
      XebiaLabs is a platform that connects bring-your-own DevOps tools for release, deployment, and analytics. It stitches together your choice of tools "In the same way a conductor directs a symphony production, cueing all of the myriad participants to work together for a synchronized, flowing, harmonious performance, XebiaLabs orchestrates the tools in a pipeline to ensure successful, optimized release flow."

      DevOps-specific Key Performance Indicators help you identify bottlenecks and improve processes. Tune your processes for highest efficiency. Anticipate delays and take action before they turn into failures. Automate release activities to optimize delivery.

      While attempting to solve the same challenge as GitLab, XebiaLabs' approach remains expensive and complex relative to GitLab's single application across the entire SDLC.
  electric_flow:
    name: 'ElectricFlow'
    logo: '/images/devops-tools/electric_cloud-logo.png'
    include_file: '/devops-tools/electricflow/index.html.md.erb'
    category:
      - continuous_delivery
    summary: |
      Electric Cloud ElectricFlow is a platform which provides deployment automation, release orchestration, and DevOps insights to help organizations deliver better software faster. The base platform (formerly known as Electric Commander) is used by many organizations to automate their CI/CD pipelines.

      Although Electric Cloud claims complete end to end DevOps, the platform requires a lot of integration to other tools in the tool chain in order to supplement functionality, as do just about all CI/CD point tools. In contrast, GitLab come pre-integrated with fundamental and extended functionality built-in across the DevOps lifecycle. An example is with security tools, where other CI/CD vendors such as Electric Cloud claim DevSecOps, they merely integrate to 3rd party security tools and maybe provide a dashboard. GitLab comes with many security scanning capabilities built-in
  codefresh:
    name: 'Codefresh'
    logo: '/images/devops-tools/codefresh-logo.svg'
    category:
      - continuous_integration
      - continuous_delivery
      - container_registry
    include_file: devops-tools/codefresh/index.html.md
  crucible:
    name: 'Crucible'
    logo: '/images/devops-tools/crucible-logo.png'
    include_file: '/devops-tools/crucible/index.html.md'
    category:
      - code_review
  redmine:
    name: 'Redmine'
    logo: '/images/devops-tools/redmine-logo.png'
    include_file: '/devops-tools/redmine/index.html.md'
    category:
      - issue_tracking
  targetprocess:
    name: 'TargetProcess'
    logo: '/images/devops-tools/targetprocess.png'
    category:
      - issue_tracking
      - epics
      - kanban_boards
    summary:  |
      TargetProcess is an agile management / planning tool designed to enable visual management of projects and portfolios.  As a solution, TargetProcess provides a framework where teams can add additional feature-sets or what they call solutions to the base software such as financial management, risk management, quality management, etc.
  blueprint_storyteller:
    name: 'Blueprint Storyteller'
    logo: '/images/devops-tools/blueprint-storyteller-logo.png'
    category:
      - issue_tracking
      - epics
    summary:  |
      Blueprint Storyteller is a visual application modeling tool that enables creating process models, design artifacts, and includes workflow to manage the lifecycle events and collaboration of the artifacts.
  zoho_sprints:
    name: 'ZOHO Sprints'
    logo: '/images/devops-tools/zoho-sprints-icon.png'
    category:
      - issue_tracking
      - kanban_boards
      - epics
    summary:  |
      Zoho Sprints is a relatively new planning and tracking tool for agile teams.  Launched in October 2017, the tool brings task management, Kanban boards, epics, and other features to enable teams to organize and track their work.
  basecamp:
    name: 'Basecamp'
    logo: '/images/devops-tools/basecamp-logo.svg'
    category:
      - issue_tracking
      - time_tracking
    summary:  |
      Basecamp is a project management and collaboration tool designed to eliminate tools like slack, email, and Google Docs.  It promises to make it easier for project teams and their customers to share, collaborate, and complete project tasks.
  fogbugz:
    name: 'FogBugz'
    logo: '/images/devops-tools/fogbugz.png'
    category:
      - issue_tracking
      - kanban_boards
    summary: |
      FogBugz is a developer centric, project issue tracking tool that is straightforward and focused on managing the team issues.
  f5:
    name: 'F5 Networks'
    logo: '/images/devops-tools/f5.png'
    category:
      - web_firewall
    summary: |
      F5 offers Web Application Firewall (WAF), Access Management, and Network security. The WAF uses behavioral analytics, proactive bot defense, and application-layer encryption of sensitive data, such as credentials. F5 network security includes Big IP firewall manager, available on-premise or in the cloud.
  pivotaltracker:
    name: 'Pivotal Tracker'
    logo: '/images/devops-tools/pivotaltracker.svg'
    category:
      - issue_tracking
      - kanban_boards
    summary: |
      Pivotal Tracker is a project-planning tool that helps software development teams plan future work based on on the team’s current and past performance. Tracker visualizes project work (stories) moving them through a custom  workflow, which encourages teams to decompose work items into smaller and more managable elements.  This helps to foster business discussionsa bout scope, schedule and priority.
  plutora:
    name: 'Plutora'
    logo: '/images/devops-tools/plutora-logo-2018.svg'
    category:
      - authentication_and_authorization
      - value_stream_management
    summary: |
      Plutora focuses on value stream management solutions for enterprise I. Plutora tries to improve the speed and quality of application delivery by correlating data from existing tool-chains, coordinating delivery across diverse ecosystem of development methodologies and hybrid test environments, and incorporates test metrics gathered at every step of the delivery pipeline. Essentially, it is a reporting and visibility platform across the development lifecycle.
  gitprime:
    name: 'GitPrime'
    logo: '/images/devops-tools/gitprime-logo-nav.svg'
    category:
      - authentication_and_authorization
    summary: |
     GitPrime uses data from Git based code repositories to help engineering leaders move faster, optimize work patterns, and advocate for engineering with concrete data.
  semmle:
    name: 'Semmle'
    logo: '/images/devops-tools/semmle-logo.png'
    include_file: '/devops-tools/semmle/index.html.md'
    category:
      - static_application_security_testing
      - dependency_scanning
      - vulnerability_database
  imperva:
    name: 'Imperva'
    logo: '/images/devops-tools/imperva-logo.svg'
    category:
      - web_firewall
    summary: |
      Imperva provides a Web Application Firewall both as an appliance and as a cloud service.  Capabilities include API protection, bot mitigation, and attack reporting.
  palo-alto:
    name: 'Palo Alto'
    logo: '/images/devops-tools/palo-alto-green.png'
    category:
      - container_scanning
      - container_behavior_analytics
      - container_network_security
    summary: |
      PaloAlto's Twistlock product provides lifecycle security for containerized environments, "from pipeline to perimeter". Twistlock capabilities include runtime defense, vulnerability management, cloud native firewalls, pre-built compliance templates for HIPAA, PCI, GDPR, and NIST SP 800-190. It can be integrated into your CI/CD pipeline. Automated and custom policies can block builds or deployments based on vulnerabilities or compliance requirements. Runtime capabilities were recently expanded from only containerized applications to include VMs.

      Twistlock's container security features are robust, but they do not offer the breadth of GitLab's security scans. GitLab Ultimate automatically includes broad security scanning with every code commit including Static and Dynamic Application Security Testing, along with dependency scanning, container scanning, and license management.
  sysdig:
    name: 'SysDig'
    logo: '/images/devops-tools/sysdig-logo.svg'
    category:
      - container_behavior_analytics
      - container_network_security
    summary: |
      SysDig provides solutions that help secure containerized workloads through their integration with the open source Falco project.  They are capable of scanning containers for vulnerabilities and securing code in runtime through their intrusion detection and prevention capabilities.
  buildkite:
    name: 'Buildkite'
    logo: '/images/devops-tools/buildkite-logo.png'
    include_file: '/devops-tools/buildkite/index.html.md'
    category:
      - continuous_integration
  logrhythm:
    name: 'LogRhythm'
    logo: '/images/devops-tools/logrhythm-logo.png'
    category:
      - behavior_analytics
    summary: |
      LogRhythm's entity behavioral analytics (UEBA) solution UserXDR automatically identifies and prioritizes anomalous user behavior, bringing enhanced visibility and efficiency to the detection of these malicious threats.
  forcepoint:
    name: 'Forcepoint'
    logo: '/images/devops-tools/forcepoint-logo.svg'
    category:
      - behavior_analytics
    summary: |
      There is no one-size-fits-all UEBA solution. Forcepoint allows customers to build their own use cases and develop their own analytics without the need of a data scientist.  It features the broadest set of data ingest sources in the UEBA security market—including structured and unstructured data sources.
features:
  - title: "Free CI/CD with shared or personal Runners"
    description: "GitLab.com has shared Runners that allow you to use GitLab CI/CD 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."
    link_description: "Explore GitLab.com offerings"
    link: /pricing/#gitlab-com
    category:
      - continuous_integration
      - continuous_delivery
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github: false
    bitbucket: 'partially'
    gitlab_ci: true
    codestar: false
    buildkite: true
  - title: "Community Support"
    description: "The GitLab Community Forum is an active and vibrant place for all GitLab users to share and seek support."
    link_description: "Visit the GitLab Community Forum"
    link: https://forum.gitlab.com/
    pricing_page: true
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gerrit: true

    category:
      - unknown
  - title: "Built-in CI/CD"
    description: "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."
    screenshot_url: 09-gitlab-ci.png
    link_description: "Learn more about CI/CD"
    link: /product/continuous-integration/
    feature_page: true
    pricing_page: true
    category:
      - continuous_integration
      - continuous_delivery
    gitlab_com: true
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    github: true
    bitbucket: partially
    gogs: false
    gitlab_pages: true
    gitlab_merge_requests: true
    gitlab_ci: true
    jenkins: true
    spinnaker: false
    bamboo: true
    puppet: true
    teamcity: partially
    buildkite: partially
  - title: "Innersourcing"
    description: "Internal projects in GitLab allow you to promote innersourcing of your internal repositories."
    link_description: "Find out more about innersourcing"
    link: /blog/2014/09/05/innersourcing-using-the-open-source-workflow-to-improve-collaboration-within-an-organization/
    category:
      - unknown
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github: false
    bitbucket: false
  - title: "Commit graph and reporting tools"
    description: "GitLab provides commit graphs and reporting tools about collaborators' work."
    link_description: "Learn more about commit graphs"
    link: 'https://docs.gitlab.com/ee/user/project/repository/index.html#repository-graph'
    screenshot_url: 18-repo-graph.png
    category:
      - source_code_management
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github: true
    bitbucket: false
    azure_devops: true
  - title: "Availability"
    description: "GitLab.com is at 99.5% availability while we want to be above 99.95%. We're hiring to improve this in the last two months of 2017 and in 2018."
    link_description: "GitLab.com status"
    link: https://status.gitlab.com/
    category:
      - unknown
    gitlab_com: true
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    github: true
    bitbucket: true
  - title: "The best place for large open source projects"
    description: "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."
    link_description: "Making GitLab better for large open source projects"
    link: /blog/2016/01/15/making-gitlab-better-for-large-open-source-projects/
    category:
      - source_code_management
    gitlab_com: 'partially'
    github: true
  - title: "Server support for Windows and Mac"
    description: "Support for running the server on Windows and Mac operating systems"
    category:
      - omnibus
    link: "https://gitlab.com/gitlab-org/gitlab-foss/issues/46567"
    gitlab_ci: false
    gogs: true
    jenkins: true
    bamboo: true
  - title: "Runs with less memory and consumes less CPU power"
    description: "Uses little memory, it runs fine with 512MB. Uses little CPU power since Go is a compiled language"
    category:
      - unknown
    gitlab_com: false
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: false
    gogs: true
    bamboo: false
  - title: "The most comprehensive import feature set"
    description: "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."
    link_description: "Making it easier to get up and running with GitLab"
    link: https://docs.gitlab.com/ee/user/project/import/index.html
    category:
      - source_code_management
    gitlab_com: true
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    github: false
    bitbucket: false
    azure_devops: true
  - title: "Export projects"
    description: "GitLab allows you to export your project to other systems."
    link_description: "We don't restrict access to your data"
    link: https://docs.gitlab.com/ee/user/project/settings/import_export.html
    category:
      - source_code_management
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github: false

# Plan - Project Management: Start ---------------------------------------------
  - title: "Issues"
    description: "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."
    screenshot_url: 04-issues.png
    link_description: "Learn more about the Issue Tracker"
    link: https://docs.gitlab.com/ee/user/project/issues/
    category:
        - project_management
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github: true
    bitbucket: false # BB Cloud very limited, not "powerful". BB server has none.
    gogs: true
    jira: true
    ca_agile_central: true
    fogbugz: partially
    blueprint_storyteller: partially
    basecamp: true
    microfocus_alm_octane: true
  - title: "Description Templates"
    description: "By adding a description template to your issues or merge requests, users who create a new issue or merge request can select a template to help them to communicate effectively."
    link: 'https://docs.gitlab.com/ee/user/project/description_templates.html'
    link_description: "Learn more about GitLab Description Templates"
    screenshot_url: 26-issues-mrs-templates.png
    category:
      - project_management
      - source_code_management
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_merge_requests: true
    github: true
    jira: false
    ca_agile_central: false
    redmine: partially
    microfocus_alm_octane: true
  - title: "Task Lists"
    description: "Use task lists in issues, merge requests, and epics to manage tasks and track their completion using checkboxes."
    link: 'https://docs.gitlab.com/ee/user/markdown.html#task-lists'
    link_description: "Learn more about Task Lists"
    screenshot_url: task-lists.png
    category:
      - project_management
      - source_code_management
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
  - title: "File Attachments"
    description: "Upload file attachments (including images) to issues, merge requests, and epics, to communicate ideas beyond text."
    link: 'https://docs.gitlab.com/ee/development/file_storage.html'
    link_description: "Learn more about File Attachments"
    screenshot_url: file-attachments.png
    category:
      - project_management
      - source_code_management
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    microfocus_alm_octane: true
  - title: "Award Emoji"
    description: "Award emoji in issues, merge requests, and epics, for more expressive communications, and to indicate upvotes and downvotes."
    link: 'https://docs.gitlab.com/ee/user/award_emojis.html'
    link_description: "Learn more about Award Emoji"
    screenshot_url: award-emoji.png
    category:
      - project_management
      - source_code_management
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
  - title: "GitLab Flavored Markdown"
    description: "GitLab uses 'GitLab Flavored Markdown' (GFM). It extends the standard Markdown in a few significant ways to add some useful functionality."
    link_description: "Learn more about GitLab Flavored Markdown"
    link: 'https://docs.gitlab.com/ee/user/markdown.html'
    screenshot_url: 25-gfm.png
    category:
      - project_management
      - source_code_management
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_merge_requests: true
    github: true
    jira: true
    redmine: true
  - title: "Threaded Discussions"
    description: "Collaborate with threaded discussions in issues, merge requests, and epics."
    link: 'https://docs.gitlab.com/ee/user/discussions/'
    link_description: "Learn more about Threaded Discussions"
    screenshot_url: threaded-discussions.png
    category:
      - project_management
      - source_code_management
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    basecamp: true
  - title: "Filterable System Activity"
    description: "View system activity to see a history of changes to issues, merge requests, and epics. Filter by comments only or history only."
    link: 'https://docs.gitlab.com/ee/user/discussions/'
    link_description: "Learn more about System Activity"
    screenshot_url: system-activity.png
    category:
      - project_management
      - source_code_management
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
  - title: "Track Title Changes"
    description: "Track title changes in the system activity of issues, merge requests, and epics."
    link: 'https://docs.gitlab.com/ee/user/discussions/'
    link_description: "Learn more about Track Title changes"
    screenshot_url: system-activity.png
    category:
      - project_management
      - source_code_management
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
  - title: "Labels"
    description: "Labels provide an easy way to categorize issues, merge requests, or epics based on descriptive titles as 'bug', or 'documentation'."
    screenshot_url: labels.png
    link: https://docs.gitlab.com/ee/user/project/labels.html
    link_description: "Learn more about GitLab Labels"
    category:
        - project_management
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gogs: true
    gitlab_merge_requests: true
    github: true
    jira: true
    ca_agile_central: true
    blueprint_storyteller: false
    microfocus_alm_octane: true
  - title: "Prioritized Labels"
    description: "Assign prioritized labels with issues and merge requests to display them in priority order."
    screenshot_url: prioritized-labels.png
    link: https://docs.gitlab.com/ee/user/project/labels.html#label-priority
    link_description: "Learn more about Prioritized Labels"
    category:
        - project_management
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
  - title: "Scoped Labels"
    description: "Assign scoped labels mutually exclusively when they have the same scope."
    screenshot_url: scoped-labels.png
    link: https://docs.gitlab.com/ee/user/project/labels.html#scoped-labels-premium
    link_description: "Learn more about Prioritized Labels"
    category:
        - project_management
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: true
    gitlab_ultimate: true
  - title: "Issue Weights"
    description: "GitLab lets you manage issues using Agile practices by setting the weight of an issue."
    link_description: "Read our Issue Weights documentation"
    link: https://docs.gitlab.com/ee/user/project/issues/issue_weight.html
    screenshot_url: 43-issue-weight.png
    category:
      - project_management
    gitlab_core: false
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    github: false
    jira: true
    ca_agile_central: true
    zoho_sprints: true
    microfocus_alm_octane: true
    redmine: partially
    roi_case: "Allow estimation of issues and work. Remove the need for manual tracking. Make project estimation possible."
    shorthand: "issue_weights"
    hours_per_incident: 0.10
    incidents_per_year: 100
  - title: "Milestones"
    description: "Create and manage milestones at both the project and group levels, viewing all the issues for the milestone you’re currently working on, representing an Agile sprint or a release."
    link_description: "Learn more about Milestones"
    link: https://docs.gitlab.com/ee/user/project/milestones/
    screenshot_url: 28-group-milestones.png
    category:
        - project_management
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github: false
    bitbucket: false
    gogs: false
    jira: false
    ca_agile_central: false
    zoho_sprints: true
    microfocus_alm_octane: true
  - title: "Issue Due Dates"
    description: "In GitLab, you can set a due date for individual issues. This is very convenient if you have small tasks with a specific deadline."
    link_description: "Due dates documentation"
    link: https://docs.gitlab.com/ee/user/project/issues/due_dates.html
    screenshot_url: 41-issue-due-dates.png
    category:
      - project_management
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github: false
    gogs: false
    jira: true
    ca_agile_central: true
    redmine: true
    zoho_sprints: true
    microfocus_alm_octane: true
  - title: "Assignee"
    description: "Assign a user to an issue or a merge request, indicating responsibility for it."
    link_description: "Documentation"
    link: https://docs.gitlab.com/ee/user/project/issues/issue_data_and_actions.html#3-assignee
    screenshot_url: merge-request-assignee.png
    category:
      - project_management
      - code_review
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    zoho_sprints: true
    microfocus_alm_octane:  true
  - title: "Multiple Issue Assignees"
    description: "Assign more than one person to an issue at a time."
    link_description: "Read our Multiple Assignees Documentation"
    link: https://docs.gitlab.com/ee/user/project/issues/multiple_assignees_for_issues.html
    screenshot_url: 22-multiple-assignees-issues.png
    category:
      - project_management
    gitlab_core: false
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github: true
    jira: true
    ca_agile_central: true
    redmine: false
    zoho_sprints: true
    roi_case: "Increased collaboration and ensure issues are not ignored. Each person doesn't have to track their own issues by allowing this."
    shorthand: "multiple_assignees"
    hours_per_incident: 0.10
    incidents_per_year: 100
  - title: "Lock Discussion"
    description: "Lock down continued discussion in an issue or merge request as a Master role or higher, to prevent further abuse, spam, or unproductive collaboration."
    link_description: "Lock Discussion"
    link: https://docs.gitlab.com/ee/user/discussions/#lock-discussions
    screenshot_url: lock-discussion.png
    category:
      - project_management
      - source_code_management
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    github: true
    azure_devops: false
    redmine: false
  - title: "Confidential Issues"
    description: "Keep your information secure with Confidential Issues. With GitLab, you can create confidential issues visible only for project members with Reporter access level or above."
    link_description: "Learn more about Confidential Issues"
    link: https://docs.gitlab.com/ee/user/project/issues/confidential_issues.html
    screenshot_url: 17-confidential-issues.png
    category:
      - project_management
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github: false
    bitbucket: false
    jira: true
    ca_agile_central: true
    redmine: true
  - title: "Related Issues"
    description: "Explicitly mark issues as related, blocked, and blocking and track their status. Blocked issues are visible in the issue card view for easy identification."
    link_description: "Learn more about Related Issues"
    link: 'https://docs.gitlab.com/ee/user/project/issues/related_issues.html#related-issues'
    screenshot_url: 16-related-issues.png
    category:
      - project_management
    gitlab_core: false
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github: false
    bitbucket: false
    jira: true
    redmine: true
    ca_agile_central: true
    zoho_sprints: true
  - title: "Move Issue to Another Project"
    description: "You 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."
    link_description: "Learn more about moving issues between projects"
    link: https://docs.gitlab.com/ee/user/project/issues/moving_issues.html
    screenshot_url: 19-move-issue-to-other-project.png
    category:
      - project_management
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github: false
    bitbucket: false
    gogs: false
    jira: true
    ca_agile_central: true
    redmine: false
    zoho_sprints: true
  - title: "Mark Issue as Duplicate"
    description: "Mark an issue as a duplicate of another issue, closing it."
    link_description: "Learn more about marking duplicate issues"
    link: https://docs.gitlab.com/ee/user/project/quick_actions.html
    screenshot_url: mark-issue-duplicate.png
    category:
      - project_management
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github: false
    bitbucket: false
    gogs: false
    jira: true
    ca_agile_central: true
    redmine: false
  - title: "Anticipate Duplicate Issue"
    description: "When creating a new issue, see similar existing issues, to reduce the number of duplicates and focus collaboration."
    link_description: "Read our Similar Issues Documentation"
    link: https://docs.gitlab.com/ee/user/project/issues/#similar-issues
    screenshot_url: similar-issues.png
    category:
      - project_management
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
  - title: "New Issue via Email"
    description: "Create an issue from email by sending in the issue title and description."
    link_description: "Create issue from email"
    link: https://docs.gitlab.com/ee/user/project/issues/create_new_issue.html#new-issue-via-email
    screenshot_url: new-issue-email.png
    category:
      - project_management
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    jira: true
    ca_agile_central: false
    redmine: true
    basecamp: true
  - title: "Bulk Edit"
    description: "Edit multiple issues or merge requests all at once."
    link_description: "Learn more about Bulk Edit"
    link: https://docs.gitlab.com/ee/user/project/bulk_editing.html
    screenshot_url: bulk-edit.png
    category:
      - project_management
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
  - title: "Export Issues CSV file"
    description: "Issues can be exported as CSV from GitLab and are sent to your default notification email as an attachment."
    link_description: "Learn more about exporting issues CSV"
    link: https://docs.gitlab.com/ee/user/project/issues/csv_export.html
    screenshot_url: export-issues-csv-file.png
    category:
      - project_management
    gitlab_core: false
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github: false
    redmine: true
    roi_case: "Allow for external analysis and communication. No need for manual copy of issues into excel sheets."
    shorthand: "export_issues"
    hours_per_incident: 0.25
    incidents_per_year: 100
  - title: "Import Issues CSV file"
    description: "Issues can be imported from a CSV into GitLab, generated from another issue tracking system."
    link_description: "Learn more about importing issues CSV"
    link: https://docs.gitlab.com/ee/user/project/issues/csv_import.html
    screenshot_url: import-issues-csv-file.png
    category:
      - project_management
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
  - title: "Burndown Charts"
    description: "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."
    link_description: "Read our Burndown Chart Documentation"
    link: https://docs.gitlab.com/ee/user/project/milestones/burndown_charts.html
    screenshot_url: 34-burndown-charts.png
    category:
      - project_management
    gitlab_core: false
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github: false
    jira: true
    ca_agile_central: true
    redmine: partially
    fogbugz: partially
    blueprint_storyteller: false
    roi_case: "Track issue completion throughout a milestone. Save manual tracking time."
    shorthand: "burndown"
    hours_per_incident: 0.25
    incidents_per_year: 100
    zoho_sprints: true
    microfocus_alm_octane: true
  - title: "Issue Analytics"
    description: "See issue analytics at the group level."
    link_description: "Learn more about Issue Analytics"
    link: 'https://docs.gitlab.com/ee/user/group/#issues-analytics-premium'
    screenshot_url: issue-analytics.png
    category:
      - project_management
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    gitprime: false
    blueprint_storyteller: false
  - title: "Quick Actions"
    description: "GitLab provides a convenient way to change metadata of an issue or merge request without leaving the comment field with quick actions."
    link_description: "Documentation about quick actions"
    link: https://docs.gitlab.com/ee/user/project/quick_actions.html
    screenshot_url: estimate-time.png
    category:
      - project_management
      - source_code_management
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github: false
    bitbucket: false
    redmine: false
  - title: "Custom Notifications"
    description: "Be notified by email, Slack, or ToDos anytime there are changes to an issue or merge request."
    screenshot_url: 14-customized-notifications.png
    link: https://docs.gitlab.com/ee/user/profile/notifications.html
    link_description: "Learn more about Custom Notifications"
    category:
      - project_management
      - source_code_management
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    azure_devops: true
    redmine: partially
    basecamp: true
  - title: "Todos"
    description: "When a user is mentioned in or assigned to an issue or merge request it will be included in the user Todos, making the development workflow faster and easier to track."
    screenshot_url: todos.png
    link: https://docs.gitlab.com/ee/user/todos.html
    link_description: "Learn more about Todos"
    category:
      - project_management
      - source_code_management
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_merge_requests: true
    github: false
    gogs: false
    basecamp: true
    zoho_sprints: true
  - title: "Custom Text in Emails"
    description: "Include custom additional text in all emails sent by GitLab, such as including disclaimer text."
    screenshot_url: custom-text-emails.png
    link_description: "Custom Additional Text in Emails"
    link: https://docs.gitlab.com/ee/user/admin_area/settings/email.html#custom-additional-text
    category:
      - project_management
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: true
    gitlab_ultimate: true
    pricing_page: false
  - title: "Sub-addressing Email Servers"
    description: |
      For incoming email features in GitLab, support sub-addressing email servers.
    screenshot_url: sub-addressing-email-servers.png
    link_description: "Support sub-addressing email servers"
    link: https://docs.gitlab.com/ee/administration/incoming_email.html
    category:
      - project_management
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
  - title: "Catch-all Email Mailboxes"
    description: |
      For incoming email features in GitLab, support catch-all email mailboxes, which can be used with Microsoft Exchange and Google Groups.
    screenshot_url: catch-all-email-mailboxes.png
    link_description: "Support catch-all email mailboxes"
    link: https://docs.gitlab.com/ee/administration/incoming_email.html
    category:
      - project_management
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
  - title: "Jira Integration"
    description: "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."
    screenshot_url: jira-integration.png
    link_description: "Learn how integrate JIRA with GitLab"
    link: /solutions/jira/
    category:
      - project_management
      - source_code_management
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
  - title: "Jira Issues Integration"
    description: "Integrate Jira issues with GitLab merge requests."
    screenshot_url: jira-issues-integration.png
    link_description: "Learn how integrate JIRA with GitLab"
    link: https://docs.gitlab.com/ee/user/project/integrations/jira.html
    category:
      - project_management
      - source_code_management
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
  - title: "Jira Development Panel Integration"
    description: "View GitLab repository information and navigate to GitLab from the JIRA development panel."
    screenshot_url: jira-dev-panel-integration.png
    link_description: "Learn about JIRA development panel"
    link: https://docs.gitlab.com/ee/integration/jira_development_panel.html
    category:
      - project_management
      - source_code_management
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: true
    gitlab_ultimate: true
  - title: "Track Description Changes"
    description: "View the full history of description updates in issues, merge requests, and epics."
    link: 'https://gitlab.com/gitlab-org/gitlab-foss/issues/15597'
    category:
      - project_management
      - source_code_management
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: false
  - title: "Track Comment Changes"
    description: "View the full history of comment updates."
    link: 'https://gitlab.com/gitlab-org/gitlab/issues/3706'
    category:
      - project_management
      - source_code_management
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: false
    github: true
  - title: "Drag and Drop Tasks"
    description: "Drag and drop tasks in a task list."
    link_description: "See the GitLab issue to implement this"
    link: https://gitlab.com/gitlab-org/gitlab-foss/issues/18003
    category:
      - project_management
      - source_code_management
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: false
    gitlab_com: false
    github: true
    redmine: partially
    basecamp: true
    microfocus_alm_octane: true
  - title: "Rich Object Summary on Link Hover"
    description: "View an information-rich summary by hovering over links to users, issues, merge requests, and other objects in GitLab."
    category:
      - project_management
      - source_code_management
    link_description: "See the epic that implements this"
    link: 'https://gitlab.com/groups/gitlab-org/-/epics/333'
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: false
    github: true
    bitbucket: false
    azure_devops: false
  - title: "Create GitLab Branch from Jira Development Panel"
    description: "Create a GitLab branch from within the development panel of a JIRA issue."
    link_description: "See issue"
    link: https://gitlab.com/gitlab-org/gitlab/issues/2647
    category:
      - project_management
      - source_code_management
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: false
    gitlab_com: false
    bitbucket: false
    github: false
  - title: "Create GitLab Merge Request from Jira Development Panel"
    description: "Create a GitLab merge request from within the development panel of a JIRA issue."
    link_description: "See issue"
    link: https://gitlab.com/gitlab-org/gitlab/issues/2650
    category:
      - project_management
      - source_code_management
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: false
    gitlab_com: false
    bitbucket: false
    github: false
  - title: "Project Financial Management"
    description: "Tracking, managing and reporting on the budget and actual costs of the project.  Able to allocate costs to OPex or CAPex depending on specific organization reporting rules. Time tracking information used to determine labor cost allocations. Specific features would include: budget, spend, time tracking, resource cost, Capex/Opex."
    # link_description: ""
    # link: 'https://docs.gitlab.com/ee/topics/git/index.html'
    category:
      - project_management
    capability: true
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: false
    ca_agile_central: partially
    version_one: true
    microfocus_ppm: true
    planview: true
    agilecraft: true
    targetprocess: partially
    fogbugz: false
  - title: "Hill Chart Status reporting"
    description: "Hill charts make it simple to report the general status of a work item, issue, or project.  Where before the top of the hill, the item is full of uncertainty and unknowns, and after the crest of the hill, execution is clear sailing with fewer risks and unknowns. "
    # link_description: ""
    # link: 'https://docs.gitlab.com/ee/topics/git/index.html'
    category:
      - project_management
    capability: false
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: false
    ca_agile_central: false
    version_one: false
    microfocus_ppm: false
    planview: false
    basecamp: true
    zoho_sprints: false
# Plan - Project Management: End -----------------------------------------------

# Plan - Kanban Boards: Start --------------------------------------------------
  - title: "Project Issue Board"
    description: "GitLab 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."
    screenshot_url: 05-issue-boards.png
    link_description: "Learn more about GitLab Issue Boards"
    link: /product/issueboard/
    feature_page: true
    pricing_page: true
    category:
        - kanban_boards
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github: 'partially'
    bitbucket: false
    gogs: false
    gitlab_issue_boards: true
    asana: true
    jira: true
    ca_agile_central: true
    xebialabs: true
    fogbugz: true
    blueprint_storyteller: false
    basecamp: false
  - title: "Group Issue Board"
    description: "Issue board scoped at the group level, so that you can view issues in all projects of that group."
    link_description: "Learn more about Group-level Issue Boards"
    link: https://docs.gitlab.com/ee/user/project/issue_board.html#group-issue-boards
    screenshot_url: 49-group_issue_board.png
    feature_page: true
    category:
        - kanban_boards
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    jira: false
    fogbugz: false
    blueprint_storyteller: false
    basecamp: false
  - title: "Multiple Project Issue Boards"
    description: "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 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."
    link_description: "Multiple Project Issue Boards"
    link: https://docs.gitlab.com/ee/user/project/issue_board.html#multiple-issue-boards
    screenshot_url: 30-multiple-issue-boards.png
    feature_page: true
    category:
        - kanban_boards
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_issue_boards: true
    asana: true
    trello: true
    jira: true
    ca_agile_central: true
    redmine: true
    blueprint_storyteller: false
    basecamp: false
    roi_case: "Make it possible to plan multiple projects and multiple milestones at the same time."
    shorthand: "issue_boards"
    hours_per_incident: 0.25
    incidents_per_year: 100
  - title: "Multiple Group Issue Boards"
    description: "Multiple Group Issue Boards, similar to Multiple Project Issue Boards"
    link_description: "Multiple Groject Issue Boards"
    link: https://docs.gitlab.com/ee/user/project/issue_board.html#multiple-issue-boards
    screenshot_url: multiple-group-issue-boards.png
    feature_page: true
    pricing_page: true
    category:
        - kanban_boards
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_issue_boards: true
    asana: true
    trello: true
    jira: true
    ca_agile_central: false
    roi_case: "Make it possible to plan multiple projects and multiple milestones at the same time."
    shorthand: "issue_boards"
    hours_per_incident: 0.25
    incidents_per_year: 100
  - title: "Total Issue Count per Issue Board List"
    description: "View the total number of issues in an issue board list, at the top of the list."
    link_description: "Total Issue Count per Issue Board List"
    link: https://docs.gitlab.com/ee/user/project/issue_board.html#sum-of-issue-weights-starter
    screenshot_url: issue-count-per-list.png
    category:
        - kanban_boards
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_issue_boards: true
  - title: "Total Issue Weight per Issue Board List"
    description: "View the total weight of issues in an issue board list, at the top of the list."
    link_description: "Total Issue Weight per Issue Board List"
    link: https://docs.gitlab.com/ee/user/project/issue_board.html#sum-of-issue-weights-starter
    screenshot_url: issue-weight-per-list.png
    category:
        - kanban_boards
    gitlab_core: false
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_issue_boards: true
  - title: "Issue Board Label Lists"
    description: "An 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."
    link_description: "Learn more about labels and Issue Boards"
    link: 'https://docs.gitlab.com/ee/user/project/issue_board.html#overview'
    screenshot_url: 44-issue-boards-labels.png
    category:
      - kanban_boards
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_issue_boards: true
    asana: true
    trello: false
    jira: false
    ca_agile_central: false
    redmine: true
    microfocus_alm_octane: true
  - title: "Issue Board Assignee Lists"
    description: "Issue board lists that pull in issues assigned to a given user"
    screenshot_url: 05-issue-boards.png
    link_description: "Documentation about Issue Board Assignee Lists"
    link: https://docs.gitlab.com/ee/user/project/issue_board.html
    category:
      - kanban_boards
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    redmine: true
  - title: "Issue Board Milestone Lists"
    description: "Issue board lists that pull in issues in a given milestone"
    screenshot_url: issue-board-milestone-lists.png
    link_description: "Documentation about Issue Board Milestone Lists"
    link: https://docs.gitlab.com/ee/user/project/issue_board.html#milestone-lists-premium
    category:
      - kanban_boards
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
  - title: "Issue Board Configuration"
    description: "Associate a board with a milestone, labels, an assignee, and a weight"
    link_description: "Learn more about configurable Issue Boards"
    link: https://docs.gitlab.com/ee/user/project/issue_board.html#configurable-issue-boards-starter
    screenshot_url: 32-board-configuration.png
    category:
      - kanban_boards
    gitlab_core: false
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    jira: partially
    ca_agile_central: partially
    redmine: true
    microfocus_alm_octane: true
  - title: "Issue Board Focus Mode"
    description: "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."
    link_description: "Learn more about Issue Board focus mode"
    link: https://docs.gitlab.com/ee/user/project/issue_board.html#focus-mode
    screenshot_url: 33-issue-board-focus-mode.png
    category:
      - kanban_boards
    gitlab_core: false
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    jira: true
    ca_agile_central: false
    redmine: false
  - title: "Reorder Issues in Issue Board List"
    description: "Reorder issues in an issue board list to indicate priority and intended order of implementation."
    link_description: "Learn more about Reorder Issues in Issue Board List"
    link: https://docs.gitlab.com/ee/user/project/issue_board.html#actions-you-can-take-on-an-issue-board
    screenshot_url: reorder-issues-board-list.png
    category:
      - kanban_boards
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
  - title: "Add Multiple Issues to Project Issue Board"
    description: "From an Issue Board, you can add multiple issues to lists in the board by selecting one or more existing issues."
    link_description: "Learn how to add multiple issues to your Issue Board."
    link: 'https://docs.gitlab.com/ee/user/project/issue_board.html#adding-issues-to-a-list'
    screenshot_url: 31-add-issues-to-board.png
    category:
      - kanban_boards
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_issue_boards: true
    asana: false
    trello: false
    jira: false
    ca_agile_central: false
  - title: "New Issue in Issue Board List"
    description: "With GitLab Issue Boards, you can create issues directly from the board and assign multiple labels allowing them to appear on multiple boards."
    link_description: "Learn how to create a new issue from the Issue Board"
    link: 'https://docs.gitlab.com/ee/user/project/issues/create_new_issue.html#new-issue-from-the-issue-board'
    screenshot_url: 29-new-issue-from-board.png
    category:
      - kanban_boards
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_issue_boards: true
    asana: 'partially'
    trello: false
    jira: false
    ca_agile_central: true
    redmine: false
  - title: "Issue Board Epic Swimlanes"
    description: "View epics as swimlanes in an issue board."
    link_description: "See epic for details"
    link: 'https://gitlab.com/groups/gitlab-org/-/epics/328'
    category:
      - kanban_boards
      - epics
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: false
    jira: true
    ca_agile_central: true
    redmine: false
    blueprint_storyteller: false
  - title: "Issue Board with Custom Workflows"
    description: "An issue board pre-configured with a custom workflow."
    link_description: "See epic for details"
    link: 'https://gitlab.com/groups/gitlab-org/-/epics/424'
    category:
      - kanban_boards
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: false
  - title: "Issue Board Types"
    description: "Issue boards/dashboards reflect an organizations flow for processing work items. These boards can reflect individualized workflow or follow established patterns. Issue board types with established patterns (such as Scrum and Kanban) can make setup of new boards easier."
    link_description: "See issue for details"
    link: https://gitlab.com/gitlab-org/gitlab/issues/977
    category:
      - kanban_boards
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: false
    jira: true
    ca_agile_central: true
    redmine: false
  - title: "Issue Board Configuration with Advanced Logic"
    description: "Define what issues show in an issue board using advanced Boolean logic."
    link_description: "See epic for details"
    link: "https://gitlab.com/groups/gitlab-org/-/epics/291"
    category:
      - kanban_boards
    gitlab_com: false
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: false
    jira: true
    ca_agile_central: true
    redmine: false
# Plan - Kanban Boards: End ----------------------------------------------------

# Plan - Time Tracking: Start --------------------------------------------------
  - title: "Time Tracking"
    description: "Time Tracking in GitLab lets your team add estimates and record time spent on issues and merge requests."
    link_description: "Learn more about Time Tracking"
    link: /solutions/time-tracking/
    screenshot_url: 20-time-tracking.png
    feature_page: true
    category:
        - time_tracking
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github: false
    bitbucket: false
    gogs: false
    gitlab_merge_requests: true
    jira: true
    ca_agile_central: true
    redmine: true
  - title: "Track Time Spent"
    description: "Update and track the time spent on an issue or merge request."
    link_description: "Learn more about Time Tracking"
    link: 'https://docs.gitlab.com/ee/user/project/time_tracking.html'
    screenshot_url: spend-time.png
    category:
        - time_tracking
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    zoho_sprints: true
  - title: "Track Estimated Time Required"
    description: "Update and track the estimated time required on an issue or merge request."
    link_description: "Learn more about Time Tracking"
    link: 'https://docs.gitlab.com/ee/user/project/time_tracking.html'
    screenshot_url: estimate-time.png
    category:
        - time_tracking
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    zoho_sprints: true
  - title: "Advanced Time Tracking"
    description: "Able to capture individual time reporting for specific assigned tasks and then to allocate labor costs to the appropriate project. Specific features would include: estimate, actual, cost, reporting."
    # link_description: ""
    # link: 'https://docs.gitlab.com/ee/topics/git/index.html'
    category:
      - time_tracking
    capability: true
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: false
    ca_agile_central: true
    version_one: true
    microfocus_ppm: true
    planview: true
    agilecraft: true
    targetprocess: true
    fogbugz: partially
    zoho_sprints: partially
# Plan - Time Tracking: End ----------------------------------------------------

# Plan - Portfolio Management: Start -------------------------------------
  - title: "Single level Epics"
    description: "Plan and track features and work group level epics that collect issues together. Easily create and assign Issues directly from the Epic itself"
    link_description: "Learn more about Epics"
    link: https://docs.gitlab.com/ee/user/group/epics/
    screenshot_url: pending
    category:
        - "Epics"
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: true
    gitlab_ultimate: true
    pricing_page: true
    jira: true
    ca_agile_central: true
    targetprocess: true
    fogbugz: false
    blueprint_storyteller: false
  - title: "Multi-level Epics"
    description: "Plan and track strategies, initiatives, and features with multi-level epics that collect issues together. Manage multiple children epics and their issues within the Epic Tree by dragging and dropping them to organize and prioritize the work."
    link_description: "Learn more about Epics"
    link: https://docs.gitlab.com/ee/user/group/epics/
    screenshot_url: child-epics.png
    category:
        - epics
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: true
    pricing_page: true
    jira: true
    ca_agile_central: true
    targetprocess: true
    fogbugz: false
    blueprint_storyteller: false
  - title: "Reorder Issues in Epic Tree"
    description: "Reorder issues in an epic to indicate priority or intended order of implementation."
    link_description: "Learn more about Reorder Issues in Epic"
    link: https://docs.gitlab.com/ee/user/group/epics/#reordering-issues-in-an-epic
    screenshot_url: reorder-issues-in-epic.png
    category:
        - epics
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: true
  - title: "Epic Fixed Dates"
    description: "Use fixed dates to do top-down planning of epics."
    link_description: "Learn more about Epic Fixed Dates"
    link: https://docs.gitlab.com/ee/user/group/epics/#start-date-and-due-date
    screenshot_url: epics-fixed-dates.png
    category:
        - epics
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: true
  - title: "Epic Dynamic Dates"
    description: "Use dynamic dates to do bottom-up planning and tracking of epics, taking into account the start and due dates of its children Epics and its Issues's Milestones."
    link_description: "Learn more about Epic Dynamic Dates"
    link: https://docs.gitlab.com/ee/user/group/epics/#start-date-and-due-date
    screenshot_url: epic-dynamic-dates.png
    category:
        - epics
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: true
  - title: "Promote Issue to Epic"
    description: "Promote an issue to epic to continue collaboration at a higher-level work abstraction."
    link_description: "Learn more about promoting an issue to an epic"
    link: https://docs.gitlab.com/ee/user/group/epics/#promoting-an-issue-to-an-epic
    screenshot_url: promote-to-epic.png
    category:
        - epics
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: true
  - title: "Roadmaps"
    description: "Visualize multiple Epics and their progress in a Roadmap view. "
    link_description: "Learn more about Roadmaps"
    link: https://docs.gitlab.com/ee/user/group/roadmap/
    screenshot_url: 58-roadmap.png
    category:
        - roadmaps
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: true
    gitlab_ultimate: true
    pricing_page: true
    jira: true
    ca_agile_central: true
    targetprocess: true
    fogbugz: false
    blueprint_storyteller: false
  - title: "Risk/Issue Management"
    description: "Able to define and manage project RISK and ISSUE status and workflow to identify, track, mitigate and resolve potential risks and active issues facing the project.   Risk/Issue status and resolution managed through online workfow that tracks assignment and actions to address the specific item. Specific features would include: workflow, risk severity, risk priority, Assigning Risk/Issue for action, Risk/Issue status."
    # link_description: ""
    # link: 'https://docs.gitlab.com/ee/topics/git/index.html'
    category:
      - epics
    capability: true
    gitlab_core: partially
    gitlab_starter: partially
    gitlab_premium: partially
    gitlab_ultimate: partially
    ca_agile_central: true
    version_one: partially
    microfocus_ppm: true
    planview: true
    agilecraft: true
    targetprocess: true
    fogbugz: false
  - title: "DevOps Pipeline"
    description: "Able to establish visibility into the end to end DevOps pipeline so the entire team is aware of pipeline status and can contribute to overall success. Specific features would include: visibility into status of pipeline"
    # link_description: ""
    # link: 'https://docs.gitlab.com/ee/topics/git/index.html'
    category:
      - epics
    capability: true
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    ca_agile_central: partially
    version_one: partially
    microfocus_ppm: false
    planview: partially
    agilecraft: partially
    targetprocess: partially
    fogbugz: partially
    zoho_sprints: false
    microfocus_alm_octane: true
  - title: "Portfolio Planning"
    description: "Establishing strategic priorities and direction in order to govern the allocation of corporate resources to support specific business/IT initiatives.   Strategic planning evaluates in-flight projects and proposed future initiatives to shape and govern the ongoing investment in projects and discretionary work. Able to model and optimize different portfolio investment scenarios to determine the ideal funding combinations to meet strategic priorities. Specific features would include: Proposals, epics, backlog, strategic alignment, estimation, prioritization, what-if, monte-carlo simulation, optimization."
    # link_description: ""
    # link: 'https://docs.gitlab.com/ee/topics/git/index.html'
    category:
      - epics
    capability: true
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: partially
    ca_agile_central: true
    version_one: true
    microfocus_ppm: true
    planview: true
    agilecraft: true
    targetprocess: true
    fogbugz: false
    zoho_sprints: false
  - title: "Portfolio Status Management"
    description: "Tracks and reports on the overall status and health (scope, schedule, budget) of projects and programs within the portfolio to enable executives to support project execution. Specific features would include: forecasting, status tracking, release planning, roadmap, milestones, project/program hierarchy."
    # link_description: ""
    # link: 'https://docs.gitlab.com/ee/topics/git/index.html'
    category:
      - epics
    capability: true
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: partially
    ca_agile_central: true
    version_one: true
    microfocus_ppm: true
    planview: true
    agilecraft: true
    targetprocess: partially
    fogbugz: false
  - title: "Scrum"
    description: "Able to support the time-boxed (sprint) approach of the Agile -Scrum software delivery. Specific features would include: Issues, scrum boards, burndown charts, burn up."
    # link_description: ""
    # link: 'https://docs.gitlab.com/ee/topics/git/index.html'
    category:
      - epics
    capability: true
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    ca_agile_central: true
    version_one: true
    microfocus_ppm: partially
    planview: true
    agilecraft: true
    targetprocess: true
    fogbugz: partially
    blueprint_storyteller: partially
    zoho_sprints: true
    microfocus_alm_octane: true
  - title: "Kanban"
    description: "Able to support the flow based approach of Agile - Kanban software delivery.  Specific features would include: Issues, Kanban boards, burn up, cumulative flow diagram."
    # link_description: ""
    # link: 'https://docs.gitlab.com/ee/topics/git/index.html'
    category:
      - epics
    capability: true
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    ca_agile_central: true
    version_one: true
    microfocus_ppm: partially
    planview: true
    agilecraft: true
    redmine: partially
    targetprocess: true
    fogbugz: true
    blueprint_storyteller: partially
    zoho_sprints: true
    microfocus_alm_octane: true
  - title: "SAFe (Scaled Agile Framework) - Essential SAFe"
    description: "Able to support the key principles and practices of the [Essential SAFe configuration.](https://www.scaledagileframework.com/essential-safe/), Agile Release Train, (a combined CD pipeline where multiple projects align to release), Planning Increment (PI) Planning (cadence driven project planning/ vision)"
    # link_description: ""
    # link: 'https://docs.gitlab.com/ee/topics/git/index.html'
    category:
      - epics
    capability: true
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: partially
    ca_agile_central: true
    version_one: true
    microfocus_ppm: partially
    planview: true
    agilecraft: true
    targetprocess: true
    fogbugz: false
    blueprint_storyteller: partially
    zoho_sprints: false
  - title: "SAFe (Scaled Agile Framework) - Lean Portfolio Management"
    description: "Provides support for the key elements of [Lean Portfolio Management](https://www.scaledagileframework.com/lean-portfolio-management/). Specific features would include: Release Train, Lean Portfolio Management."
    # link_description: ""
    # link: 'https://docs.gitlab.com/ee/topics/git/index.html'
    category:
      - epics
    capability: true
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: partially
    ca_agile_central: true
    version_one: true
    microfocus_ppm: partially
    planview: partially
    agilecraft: true
    targetprocess: partially
    fogbugz: false
    blueprint_storyteller: partially
    zoho_sprints: false
# Plan - Agile Portfolio Management: End ---------------------------------------

# Plan - Value Stream Management: Start ----------------------------------------
  - title: "Value Stream Management"
    description: "GitLab will surface VSM (value stream management) style metrics, such as cycle time, lead time, and deployment frequency, aggregated and rolled up, per an individual team, across multiple teams within a department, or even across the entire organization."
    link_description: "See epic for details"
    link: 'https://about.gitlab.com/direction/manage/value_stream_management/'
    category:
      - value_stream_management
    capability: true
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: false
  - title: "Financial Management"
    description: "Tracking, managing and reporting on the budget and actual spend of projects and programs within specific portfolios. Able to allocate costs to OPex or CAPex depending on specific organization reporting rules. Time tracking information used to determine labor cost allocations. Specific features would include: budget, spend, time, resource cost."
    # link_description: ""
    # link: 'https://docs.gitlab.com/ee/topics/git/index.html'
    category:
      - epics
    capability: true
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: false
    ca_agile_central: partially
    version_one: true
    microfocus_ppm: true
    planview: true
    agilecraft: true
    targetprocess: partially
    fogbugz: false
    blueprint_storyteller: false
  - title: "Resource/Team Management"
    description: "Tracks and manages the availability of team members by skill, experience, location, and cost, so they can support both planned and unplanned work. Specific features would include: individual capacity, individual skills, individual assignments, labor cost."
    # link_description: ""
    # link: 'https://docs.gitlab.com/ee/topics/git/index.html'
    category:
      - epics
    capability: true
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: false
    ca_agile_central: true
    version_one: true
    microfocus_ppm: true
    planview: true
    agilecraft: true
    targetprocess: partially
    fogbugz: false
    blueprint_storyteller: false
  - title: "Work Planning/Management"
    description: "Able to define, schedule and assign specific tasks to team members and manage the sequence and interdependency of tasks with each other. This form of structured planning is needed when tasks are clearly defined and sequence of execution is critical. Specific features would include: WBS, Gantt Chart, Task Assignment, Scheduling, task sequence, task relationships."
    # link_description: ""
    # link: 'https://docs.gitlab.com/ee/topics/git/index.html'
    category:
      - epics
    capability: true
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: false
    ca_agile_central: partially
    version_one: partially
    microfocus_ppm: true
    planview: true
    agilecraft: true
    targetprocess: true
    fogbugz: false
    blueprint_storyteller: false
  - title: "Out-of-the-box Agile Reporting"
    description: "Teams have access to more than a dozen out-of-the-box reports with real-time, actionable insights into how their team is performing sprint over sprint. Example reports are sprint burndown, epic burndown, cumulative flow diagram, velocity chart, burn up chart, and sprint report."
    link_description: "Read our Burndown Chart Documentation"
    link: "https://docs.gitlab.com/ee/user/project/milestones/burndown_charts.html"
    category:
      - epics
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: false
    jira: true
    ca_agile_central: true
    blueprint_storyteller: partially
    zoho_sprints: true
  - title: "Product Roadmap"
    description: "Establishing the **product** vision and strategy to organize, govern and shape the effort of the multi-disciplinary team building specific business services. The Product Roadmap is based on specific business goals and objectives, manages high level requirements, prioritizes future features,  allocates resources, tracks progress and measures business results linked to the business strategy. Specific features would include: Product Strategy, Idea Gathering, Requirements Management, Resource Management, Feedback Collection, Milestone Tracking, Release Management, Workflow Management, Feature Tracking/Deviation, Roadmap Analytics, Centralized Notes, Report Generation, Imports, API/SDK, Conflict Management, and Customized Alerting."
    # link_description: ""
    # link: 'https://docs.gitlab.com/ee/topics/git/index.html'
    category:
      - roadmaps
    capability: true
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: false
    ca_agile_central: partially
    version_one: true
    microfocus_ppm: partially
    planview: true
    agilecraft: true
    targetprocess: true
    fogbugz: false
    blueprint_storyteller: true
    zoho_sprints: false
# Plan - Value Stream Management: End ------------------------------------------

# Plan - Requirements Management: Start ----------------------------------------
  - title: "Requirements Management"
    description: "Able to gather, document, refine and track approval of business and system requirements.  Managing and tracking the relationships between requirements and other requirements, requirements and code, requirements and test cases for each version of requirements. Specific features would include: definition, traceability, requirement hierarchy, dependency."
    link_description: "See epic for details"
    link: 'https://gitlab.com/groups/gitlab-org/-/epics/670'
    category:
      - requirements_management
    capability: true
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: false
    ca_agile_central: partially
    version_one: partially
    microfocus_ppm: partially
    planview: false
    agilecraft: partially
    targetprocess: partially
    fogbugz: false
    blueprint_storyteller: true
    microfocus_alm_octane: true
# Plan - Requirements Management: End ------------------------------------------

# Plan - Quality Management: Start ---------------------------------------------
  - title: "Quality Management"
    description: "Able to support test planning, definition of test cases, results of test execution and corresponding backlog of work resulting from failed tests. Specific features would include: Test case planning, test execution, defect tracking (backlog), severity, priority."
    link_description: "See epic for details"
    link: 'https://gitlab.com/groups/gitlab-org/-/epics/671'
    category:
      - quality_management
    capability: true
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: false
    ca_agile_central: true
    version_one: true
    microfocus_ppm: false
    planview: false
    agilecraft: partially
    targetprocess: partially
    fogbugz: false
    microfocus_alm_octane: true
# Plan - Quality Management: End -----------------------------------------------

# Plan - Service Desk: Start ---------------------------------------------------
  - title: "Service Desk"
    description: "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."
    link_description: "Learn more about Service Desk"
    link: /product/service-desk/
    screenshot_url: service-desk.png
    category:
      - service_desk
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: true
    gitlab_ultimate: true
    jira: false
    ca_agile_central: false
    microfocus_alm_octane: false
    roi_case: "Save from using external tools and integrations. ZenDesk is $1200 per year per user."
    shorthand: "service_desk"
    hours_per_incident: 1
    incidents_per_year: 1
  - title: "Service Desk Custom Branding"
    description: "Allow customization of incoming issues and response emails, including the service desk user name to allow for a cohesive branding experience for your customers."
    link_description: "Learn more about Service Desk customization"
    link: https://docs.gitlab.com/ee/user/project/service_desk.html#configuring-service-desk
    category:
      - service_desk
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: true
    gitlab_ultimate: true
    jira: false
    ca_agile_central: false
    microfocus_alm_octane: false
  - title: "Service Desk via Web"
    description: "Access Service Desk via a web form, in addition to email."
    link_description: "See issue for details"
    link: 'https://gitlab.com/gitlab-org/gitlab/issues/1734'
    category:
      - service_desk
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: false
# Plan - Service Desk: End -----------------------------------------------------

  - title: "Portfolio Management"
    description: "Plan and track work at the project and portfolio level. Manage capacity and resources together with Portfolio Management."
    link_description: "Learn more about Portfolio Management"
    link: /solutions/portfolio-management/
    category:
      - unknown
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: true
    pricing_page: true
    jira: false
    ca_agile_central: true
    version_one: true
    microfocus_ppm: true
    planview: true
    agilecraft: true
    targetprocess: true
    fogbugz: false
    zoho_sprints: false
    microfocus_alm_octane: partially

# Create:Knowledge - Wiki: Start ---------------------------------------------------
  - title: "Wiki based project documentation"
    description: "A separate system for documentation called Wiki, is built right into each GitLab project. Every Wiki is a separate Git repository."
    link_description: "Learn more about GitLab Wikis"
    link: https://docs.gitlab.com/ee/user/project/wiki/
    screenshot_url: 36-wiki.png
    category:
      - wiki
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github: true
    bitbucket: 'partially' ## BB Cloud: yes, BB Server: no
    azure_devops: true
    microfocus_alm_octane: false
# Create:Knowledge - Wiki: End ---------------------------------------------------

  - title: "Create new branches from issues"
    description: "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."
    link_description: "See how in our documentation"
    link: https://docs.gitlab.com/ee/user/project/repository/web_editor.html#create-a-new-branch-from-an-issue
    category:
      - source_code_management
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github: false
    bitbucket: false
    gogs: false
    redmine: false
  - title: "Allow edits from upstream maintainers in a fork"
    description: |
      When a user opens a merge request from a fork, they are given the option
      to allow upstream maintainers to collaborate with them on the source
      branch. This allows the maintainers of the upstream project to make small
      fixes or rebase branches before merging, reducing the back and forth of
      accepting community contributions.
    link: https://docs.gitlab.com/ee/user/project/merge_requests/allow_collaboration.html
    category:
      - source_code_management
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github: true
    bitbucket: false
    zoho_sprints: false
  - title: "Application performance monitoring"
    description: "GitLab 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."
    link_description: "Learn more about monitoring deployed apps"
    link: https://docs.gitlab.com/ee/user/project/integrations/prometheus.html
    screenshot_url: 47-prometheus.png
    category:
      - metrics
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github: false
    bitbucket: false
    gogs: false
    gitlab_ci: true
    travis_ci: false
    jenkins: false
    circle_ci: false
    codestar: true
    bamboo: false
    nagios: true
    plutora: false
    zoho_sprints: false
  - title: "Application performance alerts"
    description: "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."
    link_description: "Learn more about creating SLI alerts"
    link: https://docs.gitlab.com/ee/user/project/integrations/prometheus.html#setting-up-alerts-for-prometheus-metrics-ultimate
    screenshot_url: 63-apm-alerts.png
    category:
      - metrics
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: true
    pricing_page: true
    gitlab_com: true
    github: false
    bitbucket: false
    gogs: false
    gitlab_ci: true
    travis_ci: false
    jenkins: false
    circle_ci: false
    codestar: true
    xebialabs: true
    zoho_sprints: false
  - title: "GitLab Self-monitoring"
    description: "GitLab comes out of the box enabled for Prometheus monitoring with extensive instrumentation, making it easy to ensure your GitLab deployment is responsive and healthy."
    link_description: "Learn more about GitLab self-monitoring"
    link: https://docs.gitlab.com/ee/administration/monitoring/prometheus/index.html
    screenshot_url: 48-gitlab-monitoring.png
    category:
      - metrics
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github: false
    bitbucket: false
    gitlab_ci: true
    travis_ci: false
    jenkins: false
    circle_ci: false
    bamboo: false
    nagios: false
  - title: "Hardware infrastructure monitoring"
    description: "GitLab monitors application performance with extensive instrumentation, but it does not monitor traditional hardware-based infrastructure."
    category:
      - metrics
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: false
    gitlab_com: false
    gitlab_ci: false
    new_relic: true
    nagios: true
  - title: "Synthetic Transaction Monitoring"
    description: "The ability to monitor websites using Web browser emulation or scripted recordings of Web transactions. Creating behavioral scripts to simulate an action or path performed by a customer/end-user that would be taken on an application"
    category:
      - metrics
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: false
    gitlab_com: false
    gitlab_ci: true
    new_relic: true
    nagios: partially
    datadog: true
    microfocus_APM: false
    ibm_apm: true
    broadcom_apm: false
    dynatrace: true
    azuremonitor: true
  - title: "Cloud Native Monitoring"
    description: "The monitoring of cloud native applications including microservices that are built to run in the cloud so that bottlenecks and issues can be addressed via insights into collected metrics. "
    category:
      - metrics
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    gitlab_ci: true
    new_relic: true
    nagios: true
    datadog: true
    microfocus_APM: false
    ibm_apm: true
    broadcom_apm: true
    dynatrace: true
    azuremonitor: true
  - title: "Server Monitoring"
    description: "Reviewing and analyzing a server for availability, operations, performance, security and other operations-related processes.  Monitor servers system resources like CPU Usage, Memory Consumption, I/O, Network, Disk Usage, Process, etc.  GitLab uses the Node Exporter (via Prometheus) to expose an extensive set of machine-level metrics on Linux and other Unix systems such as CPU usage, memory, disk utilization, filesystem fullness, and network bandwidth."
    category:
      - metrics
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    gitlab_ci: true
    new_relic: true
    nagios: true
    datadog: true
    microfocus_APM: true
    ibm_apm: true
    broadcom_apm: true
    dynatrace: true
    azuremonitor: true
  - title: "Baselining"
    description: "Measures an application’s performance and tells whether it meets the service level agreements before it goes live to customers. Used for a product’s or platform’s continuous performance analysis and monitoring"
    category:
      - metrics
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: false
    gitlab_com: false
    gitlab_ci: false
    new_relic: true
    nagios: true
    datadog: true
    microfocus_APM: true
    ibm_apm: true
    broadcom_apm: true
    dynatrace: true
    azuremonitor: false
  - title: "Real User Monitoring (RUM)"
    description: "Records user interaction with a client interacting with a server or cloud-based application. Determines if users are being served quickly and without errors and, if not, which part of a business process is failing"
    category:
      - metrics
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: false
    gitlab_com: false
    gitlab_ci: false
    new_relic: true
    nagios: true
    datadog: false
    microfocus_APM: true
    ibm_apm: true
    broadcom_apm: true
    dynatrace: true
    azuremonitor: partially
  - title: "Topology"
    description: "Network mapping that provides real-time views and performance monitoring of network devices, services, applications, connections and traffic patterns on one or more networks"
    category:
      - metrics
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: false
    gitlab_com: false
    gitlab_ci: false
    new_relic: true
    nagios: false
    datadog: true
    microfocus_APM: partially
    ibm_apm: partially
    broadcom_apm: true
    dynatrace: true
    azuremonitor: false
  - title: "Cycle Analytics"
    description: "GitLab provides a dashboard that lets teams measure the time it takes to go from planning to monitoring. 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."
    link_description: "Learn more about Cycle Analytics"
    link: /product/cycle-analytics/
    screenshot_url: 15-cycle-analytics.png
    feature_page: true
    category:
      - unknown
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github: false
    bitbucket: false
    gogs: false
    gitlab_ci: true
    travis_ci: false
    jenkins: false
    circle_ci: false
    gitlab_merge_requests: true
    bamboo: false
    xebialabs: true
    plutora: true
    gitprime: false
  - title: "Priority Support"
    description: "Get the support you need. Our team of highly-skilled support engineers are available to help with all of your support needs."
    link_description: "Learn more about our support services"
    link: /support/#priority-support
    category:
      - unknown
    pricing_page: true
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
  - title: "24/7 uptime support"
    description: "GitLab responds within 30 minutes when production is unavailable."
    link_description: "Learn more about our support services"
    link: /support/#priority-support
    category:
      - unknown
    pricing_page: true
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: false
    roi_case: "Solve 1 major issue per quarter in 30 minutes instead of waiting for the next day to be solved, saving 8 hours waiting time per issue."
    shorthand: "uptime_support"
    hours_per_incident: 8
    incidents_per_year: 3
  - title: "Image Discussions"
    description: "Within a commit view or a merge request diff view, and with respect to a specific location of an image, you can have a resolvable discussion. Have multiple discussions specifying different areas of an image."
    link_description: "Image Discussions"
    link: https://docs.gitlab.com/ee/user/discussions/#image-discussions
    category:
        - code_review
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    github: false
    azure_devops: false
    gerrit: false
    crucible: false
  - title: "Merge Request Commit Discussions"
    description: "Comment on a commit within the context of a merge request itself"
    link_description: "Merge Request Commit Discussions"
    link: https://docs.gitlab.com/ee/user/discussions/#commit-discussions
    category:
        - code_review
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    github: true
    azure_devops: partially
    gerrit: false
    crucible: partially
    basecamp: false
  - title: "Create merge request from email"
    description: |
      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.
    link_description: "Create merge request from email"
    link: https://docs.gitlab.com/ee/user/project/merge_requests/index.html#create-new-merge-requests-by-email
    category:
      - source_code_management
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gogs: false
    azure_devops: false
  - title: "First time contributor badge"
    description: "Highlight first-time contributors in a project."
    link_description:
    link:
    category:
      - source_code_management
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github: true
    azure_devops: false
  - title: "SUPPORT file link"
    description: "Link from new issues to a SUPPORT file, pointing to support resources."
    link_description: "See the GitLab issue to implement this"
    link: https://gitlab.com/gitlab-org/gitlab-foss/issues/35397
    category:
      - issue_trackers
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: false
    gitlab_com: false
    github: true
    redmine: false
  - title: "Built-in Container Registry"
    description: "GitLab 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. (Codefresh will be ending their support for private docker registries as of May 1, 2020"
    link_description: "Documentation on Container Registry"
    link: https://docs.gitlab.com/ee/user/project/container_registry.html
    screenshot_url: 12-container-registry.png
    category:
      - container_registry
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github: true
    bitbucket: false
    jenkins: false
    travis_ci: false
    circle_ci: false
    teamcity: partially
    codefresh: false
    gogs: false
    sonatype_nexus_repo: true
    jfrog_artifactory: true
    plutora: false
    roi_case: "Allow push and pull of registry images for projects, saving data transfer time to and from external services."
    shorthand: multiproject_pipelines
    hours_per_incident: 0.20
  - title: "Preview your changes with Review Apps"
    description: |
      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. Review Apps support both static and dynamic URLs.
    link_description: "Learn more about Review Apps"
    link: /product/review-apps/
    screenshot_url: 10-review-apps.png
    feature_page: true
    category:
        - review_apps
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github: false
    bitbucket: false
    gogs: false
    gitlab_ci: true
    travis_ci: false
    jenkins: false
    circle_ci: false
    teamcity: false
    codefresh: true
    codestar: false
    gitlab_merge_requests: true
    azure_devops: partially
    bamboo: false
    xebialabs: false
    plutora: false
    basecamp: false
    roi_case: "Allow automatic deploy and preview of changes without affecting the production environment, saving time to manually stage and run the new version."
    shorthand: review_apps
    hours_per_incident: 0.50
    incidents_per_year: 30
  - title: "Environments Auto-stop"
    description: "This feature allows users to configure an optional expiration date which can be set for review app environments."
    link_description: "Learn more about Environments auto-stop"
    link: 'https://docs.gitlab.com/ee/ci/environments.html'
    screenshot_url: 10-review-apps.png
    feature_page: true
    category:
        - review_apps
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github: false
    bitbucket: false
    gogs: false
  - title: "New features every month"
    description: "GitLab is updated with new features and improvements every month on the 22nd."
    link_description: ""
    link:
    category:
      - unknown
    gitlab_com: true
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    github: false
    bitbucket: false
    gogs: false
  - title: "One integrated tool"
    description: "Other tools require the integration of multiple 3rd party tools to complete the software development lifecycle. GitLab has a completely integrated solution that covers the entire development lifecycle."
    link_description:
    link:
    category:
      - unknown
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    github: false
    bitbucket: false
    gogs: false
  - title: "Choice and flexibility"
    description: "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."
    link_description: "Read about the different ways to install GitLab"
    link: /install/
    category:
      - unknown
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    saas: false
  - title: "Access to the server"
    description: "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."
    link_description: "Learn more about logging"
    link: https://docs.gitlab.com/ee/administration/logs.html
    gitlab_com: false
    category:
      - authentication_and_authorization
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    github: false
  - title: "Runs on metal"
    description: "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."
    link_description: "Read about the different ways to install GitLab"
    link: /install/
    category:
      - unknown
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: false
    github: false
  - title: "Highly Available setups"
    description: "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."
    link_description: "More information on High Availability"
    link: https://docs.gitlab.com/ee/administration/high_availability/
    category:
      - unknown
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: false
    github: false
    bitbucket: partially # https://confluence.atlassian.com/bitbucketserver/high-availability-for-bitbucket-server-776640137.html
  - title: "Run your own software on your instance"
    description: "You are free to run your own software on the instance that GitLab is running on. Have your own intrusion detection system? No problem."
    link_description: "Read about the different ways to install GitLab"
    link: /install/
    category:
      - unknown
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: false
    github: false
  - title: "Use your configuration management software"
    description: "You can use your choice of configuration management software, from Puppet, Chef, Ansible for quick and straightforward implementation."
    link_description: "Read about the different ways to install GitLab"
    link: /install/
    category:
      - unknown
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: false
    github: false
  - title: "Use standard Unix tools for maintenance and monitoring"
    description: "Use the tools you know for monitoring and maintenance, whether they're standard or your own. GitLab doesn't restrict you."
    link_description: "Read about the different ways to install GitLab"
    link: /install/
    category:
      - unknown
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: false
    github: false
  - title: "Single package installation"
    description: "Use GitLab's official repositories or manually download the package to install GitLab in a few steps. All major Linux distributions are supported."
    link_description: "Read about the different ways to install GitLab"
    link: /install/
    category:
      - unknown
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: false
  - title: "Single configuration file"
    description: "All configuration options for administering a GitLab instance are in a single file. Say no to complex setups, your admin will thank you."
    link_description: "Read about the different ways to install GitLab"
    link: /install/
    category:
      - unknown
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: false
  - title: "Basic backup and restore mechanism without additional software"
    description: "GitLab provides a simple command line interface to backup or restore your whole installation, and is flexible enough to fit your needs."
    link_description: "Learn more about backing up and restoring GitLab"
    link: https://docs.gitlab.com/ee/raketasks/backup_restore.html
    category:
      - unknown
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: false
  - title: "IPv6 ready"
    description: "Both GitLab.com and GitLab Self-manages support IPv6." # https://gitlab.com/gitlab-org/gitlab-foss/issues/47216
    link_description: "Read the docs on configuring IPv6"
    link: https://docs.gitlab.com/omnibus/settings/nginx.html#setting-the-nginx-listen-address-or-addresses
    category:
      - unknown
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: false
    github: true
    bitbucket: true # https://bitbucket.org/blog/bitbucket-cloud-now-available-ipv6
  - title: "AD / LDAP integration"
    description: "Sync groups, manage SSH-keys, manage permissions, authentication and more. You can manage an entire GitLab instance through the LDAP / AD integration."
    link_description: "More information about AD / LDAP integration"
    link: https://docs.gitlab.com/ee/administration/auth/ldap.html
    category:
      - authentication_and_authorization
    pricing_page: true
    gitlab_com: false
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    github: true
    bitbucket: true
    gogs: true
    puppet: true
    chef: true
    ansible: true
    microfocus_alm_octane: true
  - title: "Next business day Support"
    description: "Receive support within a single business day."
    link_description: "Learn more about our support services"
    link: /support/#standard-support
    category:
      - unknown
    pricing_page: true
    gitlab_core: false
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
  - title: "Free Guest users"
    description: "Guest users don't count towards the license count."
    link: 'https://docs.gitlab.com/ee/user/permissions.html#free-guest-users-ultimate'
    link_description: "Learn more about Guest users"
    category:
      - unknown
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: true
    pricing_page: true
    gitlab_com: true
  - title: "Multiple LDAP / AD server support"
    description: "Link multiple LDAP servers to GitLab for authentication and authorization"
    link_description: "Advanced LDAP configuration"
    link: https://docs.gitlab.com/ee/administration/auth/ldap-ee.html
    category:
      - authentication_and_authorization
    pricing_page: true
    gitlab_com: false
    gitlab_core: false
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    github: false
    bitbucket: true
  - title: "Multiple approvers in code review"
    description: |
      In GitLab, to ensure strict code review, you can require a minimum
      number of users to approve of a merge request before it is able to be
      merged. You can undo an approval by removing it after the fact.
    link_description: "Approvals Documentation"
    link: https://docs.gitlab.com/ee/user/project/merge_requests/merge_request_approvals.html
    category:
        - code_review
    gitlab_core: false
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    pricing_page: true
    github: false
    bitbucket: false
    azure_devops: true
    gerrit: true
    crucible: true
  - title: "Approval rules for code review"
    description: |
      Make sure the right people review merge requests with approval rules by
      specifying lists of eligible approvers, the minimum number of approvals
      for each, and which target branches they protect. This makes it easy to
      request review from different teams like Engineering, UX and Product.
    link_description: "Approvals Documentation"
    link: https://docs.gitlab.com/ee/user/project/merge_requests/merge_request_approvals.html
    category:
        - code_review
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: true
    gitlab_ultimate: true
    pricing_page: false
    github: false
    bitbucket: false
    azure_devops: false
    gerrit: true
    crucible: false
  - title: "Ease of migration from other providers"
    description: "GitLab lets you easily migrate all repos, issues and merge request data from your previous provider."
    link_description: "Learn how to migrate your projects to GitLab"
    link: https://docs.gitlab.com/ee/user/project/import/index.html
    category:
      - source_code_management
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github: 'partially'
    azure_devops: false
  - title: "Access to and ability to modify source code"
    description: "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."
    link_description: "Read the GitLab Enterprise Edition license."
    link: https://gitlab.com/gitlab-org/gitlab/blob/master/LICENSE
    gitlab_com: false
    category:
      - unknown
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    github: false
    bitbucket: false
  - title: "A comprehensive API"
    description: "GitLab provides APIs for most features, allowing developers to create deeper integrations with the product."
    link_description: "Read our API Documentation"
    link: https://docs.gitlab.com/ee/api/
    category:
      - unknown
    gitlab_com: true
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    github: true
    gitlab_ci: true
    travis_ci: true
    jenkins: true
    circle_ci: true
    teamcity: true
    spinnaker: true
    codestar: true
    bitbucket: true
    bamboo: true
    xebialabs: true
    nagios: true
    codefresh: true
    plutora: true
  - title: "Search files with fuzzy file finder"
    description: "GitLab provides a way to search a file in your repository in one keystroke."
    link_description: "Read about the file finder in our documentation"
    link: https://docs.gitlab.com/ee/user/project/repository/file_finder.html
    screenshot_url: 21-find-files.png
    category:
      - source_code_management
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github: true
    bitbucket: false
    azure_devops: true
  - title: "Advanced Global Search"
    description: "Leverage Elasticsearch for faster, more advanced code search across your entire GitLab instance."
    link_description: "Learn more about Advanced Global Search"
    link: https://docs.gitlab.com/ee/user/search/advanced_global_search.html
    category:
      - global_search
    gitlab_com: false
    gitlab_core: false
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    bitbucket: true
    roi_case: "Monthly developer reporting saves manager 20 mins per user / month through easy contribution reporting."
    shorthand: "global_code_search"
    hours_per_incident: 0.17
    incidents_per_year: 37
  - title: "Advanced Syntax Search"
    description: "Use advanced queries for more targeted search results."
    link_description: "Learn more about Advanced Syntax Search"
    link: https://docs.gitlab.com/ee/user/search/advanced_search_syntax.html
    category:
      - source_code_management
    gitlab_com: false
    gitlab_core: false
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    bitbucket: true
  - title: "Global Search API"
    description: "Search globally through the API"
    link_description: "Learn more about Global Search API"
    link: https://docs.gitlab.com/ee/api/search.html
    category:
      - source_code_management
    gitlab_com: true
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
  - title: "Create and remove admins based on an LDAP group"
    description: "Use LDAP groups to create or remove admins from your GitLab instance."
    link_description: "Learn more about this feature"
    link: https://docs.gitlab.com/ee/administration/auth/ldap-ee.html#administrator-sync
    category:
      - authentication_and_authorization
    gitlab_core: false
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: false
  - title: "Kerberos user authentication"
    description: "Authenticate users with Kerberos."
    link_description: "Learn more about our Kerberos integration"
    link: https://docs.gitlab.com/ee/integration/kerberos.html
    category:
      - authentication_and_authorization
    gitlab_core: false
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: false
  - title: "Integrate with Atlassian Crowd"
    description: "Authenticate users with Atlassian Crowd."
    link_description: "Learn more about our Atlassian Crowd integration"
    link: https://docs.gitlab.com/ee/administration/auth/crowd.html
    gitlab_com: false
    category:
      - unknown
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
  - title: "Multiple LDAP server support (compatible with AD)"
    description: "Integrate with multiple LDAP servers for use when authenticating users."
    link_description: "Learn more about multiple LDAP server support"
    link: https://docs.gitlab.com/ee/administration/auth/how_to_configure_ldap_gitlab_ee/index.html#multiple-ldap-servers
    category:
      - authentication_and_authorization
    gitlab_core: false
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: false
  - title: "Group webhooks"
    description: "Add webhooks by default to all projects in a group so you can ensure they are present everywhere."
    link_description: "Learn more about Group webhooks"
    link: https://docs.gitlab.com/ee/user/project/integrations/webhooks.html
    category:
      - unknown
    gitlab_core: false
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    roi_case: "No need to add integration webhooks into every project. Assuming 12 projects a year."
    shorthand: "webhooks"
    hours_per_incident: 0.17
    incidents_per_year: 2
  - title: "Push rules"
    description: "Reject new code and commits that don't comply with company policy."
    link_description: "Learn more about push rules"
    link: https://docs.gitlab.com/ee/push_rules/push_rules.html
    category:
      - source_code_management
    gitlab_core: false
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    roi_case: "Prevent 1 push per user per month that takes a manager 20 minutes to revert."
    shorthand: "push_rules"
    hours_per_incident: 0.33
    incidents_per_year: 8
  - title: "Block secret file push"
    description: "Block important or secret files from being accidentally pushed to a live repository with push rules."
    link_description: "Learn more about blocking secret file pushing"
    link: https://docs.gitlab.com/ee/push_rules/push_rules.html#prevent-pushing-secrets-to-the-repository
    category:
      - source_code_management
    gitlab_core: false
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    roi_case: "Prevents secrets from appearing in the repository. If a secret ends in the repo, given that you found it, it'll be at least 8 hours remove it. If you don't, the damage can be very big. "
    shorthand: "secret_file"
    hours_per_incident: 8
    incidents_per_year: 2
  - title: "Fast-forward merge with option to rebase"
    description: "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."
    link_description: "Learn more about rebase before merge"
    link: https://docs.gitlab.com/ee/user/project/merge_requests/fast_forward_merge.html
    screenshot_url: 42-merge-method.png
    category:
      - source_code_management
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    bitbucket: false
    gitlab_merge_requests: true
    github: true
    azure_devops: true
    roi_case: "Rebasing a merge twice a week would normally take 5 minutes additional developer time, can now be done automatically"
    shorthand: "rebase_merge"
    hours_per_incident: 0.08
    incidents_per_year: 75
  - title: "Squash and merge"
    description: "Combine commits into one so that main branch has a simpler to follow and revert history."
    link_description: "Learn more about squash and merge"
    link: https://docs.gitlab.com/ee/user/project/merge_requests/squash_and_merge.html
    screenshot_url: 45-squash-and-merge.png
    category:
      - source_code_management
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github: true
    gitlab_merge_requests: true
    azure_devops: true
    roi_case: "Squashing a merge twice a week would normally take 5 minutes additional developer time, can now be done automatically"
    shorthand: "squash"
    hours_per_incident: 0.08
    incidents_per_year: 75
  - title: "Remote repository push mirroring"
    description: |
      Mirror a repository from your local server to elsewhere. Push mirroring
      is supported via HTTP and SSH using password authentication, and using
      public-key authentication with SSH.
    link_description: "Learn more about repository push mirroring"
    link: https://docs.gitlab.com/ee/user/project/repository/repository_mirroring.html
    category:
      - source_code_management
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github: false
    gogs: true
    bitbucket: false
    roi_case: "Automatically synchronizing repositories saves duplication of effort for each push. One push per day saves 5 minutes of productivity."
    shorthand: "mirroring"
    hours_per_incident: 0.08
    incidents_per_year: 261
  - title: "Remote repository pull mirroring"
    description: |
      Mirror a repository from a remote Git server to your local server, making
      it easy to keep local forks and replicas up to date.
    link_description: "Learn more about repository pull mirroring"
    link: https://docs.gitlab.com/ee/user/project/repository/repository_mirroring.html
    category:
      - source_code_management
    gitlab_core: false
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github: false
    gogs: true
    bitbucket: true
    roi_case: "Automatically synchronizing repositories saves duplication of effort for each push. One push per day saves 5 minutes of productivity."
    shorthand: "mirroring"
    hours_per_incident: 0.08
    incidents_per_year: 261
  - title: "Display merge request status for builds on Jenkins CI"
    description: "Integrate with Jenkins CI and display the merge request build status directly from the merge request."
    link_description: "Learn more about our Jenkins integration"
    link: https://docs.gitlab.com/ee/integration/jenkins.html
    category:
      - source_code_management
    gitlab_core: false
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
  - title: "PostgreSQL HA"
    description: "Easily set up a highly available Postgres cluster with automated failover (beta)"
    link_description: "Learn more about PostgreSQL HA"
    link: https://docs.gitlab.com/ee/administration/high_availability/alpha_database.html
    gitlab_com: false
    category:
      - unknown
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: true
    gitlab_ultimate: true
  - title: "Import from GitLab.com"
    description: "Import projects from GitLab.com to a private GitLab instance."
    link_description: "Learn more about importing projects from GitLab.com"
    link: https://docs.gitlab.com/ee/workflow/importing/import_projects_from_gitlab_com.html
    gitlab_com: false
    category:
      - source_code_management
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    azure_devops: true
  - title: "Email all users of a project, group, or entire server"
    description: "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."
    link_description: "Learn more about emailing users from within GitLab"
    link: https://docs.gitlab.com/ee/tools/email.html
    gitlab_com: false
    category:
      - unknown
    gitlab_core: false
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
  - title: "Limit project size at a global, group, and project level"
    description: "Ensure that disk space usage is under control."
    link_description: "Learn more about project size limiting"
    link: https://docs.gitlab.com/ee/user/admin_area/settings/account_and_limit_settings.html#repository-size-limit
    gitlab_com: false
    category:
      - unknown
    gitlab_core: false
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    azure_devops: false
  - title: "Omnibus package supports log forwarding"
    description: "Forward your logs to a central system."
    link_description: "Learn more about log forwarding"
    gitlab_com: false
    link: https://docs.gitlab.com/omnibus/settings/logs.html#udp-log-forwarding
    category:
      - logging
    gitlab_core: false
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
  - title: "Lock project membership to group"
    description: "Group owners can prevent new members from being added to projects within a group."
    link_description: "Learn more about locking project membership to a group"
    link: https://docs.gitlab.com/ee/workflow/groups.html#lock-project-membership-to-members-of-this-group
    category:
      - unknown
    gitlab_core: false
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    roi_case: "Controls to prevent inadvertently adding members to project without authorization. Assuming once per quarter."
    shorthand: "lock_project"
    hours_per_incident: 0.17
    incidents_per_year: 4
  - title: "Admin Control"
    description: "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."
    link_description: "View the administration documentation"
    link: 'https://docs.gitlab.com/ee/administration/index.html'
    category:
      - unknown
    gitlab_com: false
    gitlab_core: false
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
  - title: "Restrict SSH Keys"
    description: "Control the technology and key length of SSH keys used to access GitLab"
    link_description: "View the administration documentation"
    link: 'https://docs.gitlab.com/ee/README.html#administrator-documentation'
    category:
      - source_code_management
    gitlab_com: false
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
  - title: "Merge approvals"
    description: "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."
    link_description: "Learn more about merge request approvals"
    link: https://docs.gitlab.com/ee/user/project/merge_requests/merge_request_approvals.html
    screenshot_url: 46-mr-approvals.png
    category:
        - source_code_management
        - code_review
    pricing_page: true
    gitlab_core: false
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_merge_requests: true
    github: true
    azure_devops: true
    bitbucket: true
    gerrit: true
    crucible: false
    roi_case: "Prevents a complex manual process with comments that takes 2 minutes to coordinate and 20 mergers per user per month."
    shorthand: "approvals"
    hours_per_incident: 0.03
    incidents_per_year: 240
  - title: "LDAP group sync"
    description: "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."
    link_description: "Learn more about LDAP group synchronization"
    link: https://docs.gitlab.com/ee/administration/auth/ldap-ee.html#group-sync
    gitlab_com: false
    category:
      - authentication_and_authorization
    gitlab_core: false
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
  - title: "LDAP group sync filters"
    description: "GitLab Enterprise Edition Premium gives more flexibility to synchronize with LDAP based on filters, meaning you can leverage LDAP attributes to map GitLab permissions. "
    link_description: "Learn more about LDAP group synchronization"
    link: https://docs.gitlab.com/ee/administration/auth/ldap-ee.html#filters-premium-only
    gitlab_com: false
    category:
      - authentication_and_authorization
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: true
    gitlab_ultimate: true
  - title: "Live upgrade assistance"
    description: "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."
    link_description: "Learn more about our support services"
    link: /support/
    gitlab_com: false
    category:
      - unknown
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: true
    gitlab_ultimate: true
  - title: "Audit Logs"
    description: "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."
    link_description: "Learn more about Audit Logs"
    link: https://docs.gitlab.com/ee/administration/audit_events.html
    category:
      - audit_events
      - logging
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: false
    github: true
    roi_case: "Finding out who did what in the application logs takes 4 hours @ 90 per hour and you want to know this once a year."
    shorthand: "audit_logs"
    hours_per_incident: 4
    incidents_per_year: 1
  - title: "Auditor users"
    description: "Auditor users are users who are given read-only access to all projects, groups, and other resources on the GitLab instance."
    link_description: "Auditor users"
    link: https://docs.gitlab.com/ee/administration/auditor_users.html
    gitlab_com: false
    category:
      - unknown
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: true
    gitlab_ultimate: true
    roi_case: "Annual audits of configurations can be performed from a central account or accounts, saving ~10 hours collating account information from each group"
    shorthand: "auditor"
    hours_per_incident: 10
    incidents_per_year: 1
  - title: "Disaster Recovery"
    description: "Fail over in minutes to another data-center."
    link_description: "Learn more about Disaster Recovery"
    category:
      - unknown
    link: https://docs.gitlab.com/ee/administration/geo/disaster_recovery/index.html
    pricing_page: true
    gitlab_com: false
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: true
    gitlab_ultimate: true
    bitbucket: true
  - title: "Granular user roles and flexible permissions"
    description: |
      Manage 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.
    link_description: "Learn more about User Roles"
    link: https://docs.gitlab.com/ee/user/permissions.html
    screenshot_url: 02-user-roles.png
    category:
      - authentication_and_authorization
    gitlab_com: true
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    github: false
    bitbucket: false
    puppet: true
    chef: true
    ansible: true
    xebialabs: true
  - title: "Projects"
    description: "Organize your repository into private, internal, or public projects."
    link_description: "Learn more about Projects"
    link: https://docs.gitlab.com/ee/README.html#projects-and-groups
    screenshot_url: 01-projects.png
    category:
      - unknown
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    bitbucket: true
  - title: "Merge Requests"
    description: "Create merge requests and @mention team members to review and safely merge your changes."
    screenshot_url: 07-merge-requests.png
    link: https://docs.gitlab.com/ee/user/project/merge_requests/
    link_description: "Learn more about merge requests"
    category:
        - source_code_management
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    azure_devops: true
    bitbucket: true
    blueprint_storyteller: false
  - title: "Merge conflict resolution"
    description: "Preview merge conflicts in the GitLab UI and tell Git which version to use."
    screenshot_url: 08-merge-conflicts.png
    link: https://docs.gitlab.com/ee/user/project/merge_requests/resolve_conflicts.html
    link_description: "Learn more about the merge conflict resolution UI"
    category:
        - source_code_management
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_merge_requests: true
    github: true
    azure_devops: true
  - title: "Reject unsigned commits"
    description: "GitLab Enterprise Edition Premium allows you to enforce GPG signatures by rejecting unsigned commits."
    link: https://docs.gitlab.com/ee/push_rules/push_rules.html#enabling-push-rules
    link_description: "Read more about enforcing push rules"
    category:
        - source_code_management
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: true
    gitlab_ultimate: true
    bitbucket: false
    github: false
    azure_devops: false
  - title: "Verified Committer"
    description: "Verify that a push only contains commits by the same user performing the push."
    link: https://docs.gitlab.com/ee/push_rules/push_rules.html#enabling-push-rules
    link_description: "In development for GitLab. Follow this link for more information."
    category:
        - source_code_management
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: true
    gitlab_ultimate: true
    github: false
    bitbucket: false
    azure_devops: false
  - title: "Git is fast"
    description: "Git is really fast. Performing a diff, viewing history, committing and merging changes, obtaining any revision and any form of branching is very quick."
    link_description: "Get started using Git with GitLab"
    link: 'https://docs.gitlab.com/ee/topics/git/index.html'
    category:
      - source_code_management
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    svn: false
  - title: "Git has smaller size requirements"
    description: "A single repository in Git is typically a number of times smaller than the same repository in SVN."
    link_description: "Read about using Git with GitLab"
    link: 'https://docs.gitlab.com/ee/topics/git/index.html'
    category:
      - source_code_management
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    svn: false
    azure_devops: true
  - title: "Navigate to method/function in a merge request diff"
    description: |
      When viewing a merge request diff, navigate directly to a method/function in a changed file.
    link_description: "See the GitLab issue to implement this feature"
    link: 'https://gitlab.com/gitlab-org/gitlab-foss/issues/35846'
    category:
      - source_code_management
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: false
    gitlab_com: false
    github: true
  - title: "File Locking"
    description: |
      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.
    link_description: "Learn more about File Locking"
    link: /solutions/file-locking/
    screenshot_url: 23-file-locking.png
    category:
        - source_code_management
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: true
    gitlab_ultimate: true
    gogs: false
    azure_devops: true
    roi_case: "Prevents accidental changes to files. If this occurs once per month per developer, it can take 20 minutes to track down and revert."
    shorthand: "file_lock"
    hours_per_incident: 0.33
    incidents_per_year: 12
  - title: "Merge when pipeline succeeds"
    description: "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."
    link: 'https://docs.gitlab.com/ee/user/project/merge_requests/merge_when_pipeline_succeeds.html'
    link_description: "Learn more about Merge when pipeline succeeds"
    category:
        - source_code_management
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    github: false
    gitlab_merge_requests: true
    azure_devops: true
  - title: "Revert specific commits or a merge request from the UI"
    description: "Revert any commit or a single merge request from GitLab's UI, with a click of a button."
    link: 'https://docs.gitlab.com/ee/user/project/merge_requests/revert_changes.html'
    link_description: "Learn how to revert a commit or a merge request from the GitLab UI."
    screenshot_url: 27-revert-commits-ui.png
    category:
        - source_code_management
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_merge_requests: true
    github: true
    azure_devops: true
    xebialabs: true
  - title: "Based on Git, a distributed VCS"
    description: "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."
    link_description: "Get started with Git"
    link: 'https://docs.gitlab.com/ee/topics/git/index.html'
    category:
        - source_code_management
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    svn: false
    bitbucket: true
  - title: "Powerful branching"
    description: "A branch in Git contains the entire history that precedes it. It's also created or moved towards instantly and easily shared."
    link_description: "See the Git documentation to get started with branches"
    link: 'https://docs.gitlab.com/ee/topics/git/index.html'
    screenshot_url: 18-repo-graph.png
    category:
        - source_code_management
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    svn: false
    azure_devops: true
  - title: "Protected branches"
    description: "Granular permissions for branches you want to protect."
    link_description: "Read about protected branches"
    link: https://docs.gitlab.com/ee/user/project/protected_branches.html
    screenshot_url: 35-protected-branches.png
    category:
        - source_code_management
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    azure_devops: true
    bitbucket: true
  - title: "Web IDE"
    description: |
      Contribute to projects faster by using the Web IDE to avoid context
      switching in your local development environment. The Web IDE is
      integrated with merge requests and GitLab CI so that you can resolve
      feedback, fix failing tests and preview changes live with client side
      evaluation without leaving the Web IDE.
    link_description: "Learn more about the Web IDE"
    link: 'https://docs.gitlab.com/ee/user/project/web_ide/'
    screenshot_url: 56-web-ide.png
    category:
        - web_ide
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    azure_devops: false
    github: false
    bitbucket: false
    plutora: false
  - title: "Web Terminal for Web IDE"
    description: |
      Interact with your code in a Web Terminal in the Web IDE to inspect API
      responses, experiment in a REPL, or compile your code.
    link_description: "Learn more about the Web IDE Web Terminal"
    link: 'https://docs.gitlab.com/ee/user/project/web_ide/index.html#interactive-terminals-for-the-web-ide-ultimate'
    screenshot_url: 56-web-ide.png
    category:
        - web_ide
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: true
    azure_devops: false
    github: false
    bitbucket: false
  - title: "File Syncing to Web Terminal"
    description: |
      Changes made in the Web IDE will now be synced to the Web Terminal. User changes made
      in the Web IDE can now be be tested within the Web Terminal before committing them to the project.
    link_description: "Learn more about File Syncing to Web Terminal"
    link: 'https://docs.gitlab.com/ee/user/project/web_ide/#file-syncing-to-web-terminal'
    screenshot_url: sync-webide-cirunner.png
    category:
        - web_ide
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: true
    gitlab_com: true
    azure_devops: false
    github: false
    bitbucket: false
  - title: "Snippets"
    description: |
      Store and share code snippets to engage in a conversation about that piece of code.
      You can embed snippets on any blog or website using a single line of code.
    link_description: "Learn more about Snippets"
    link: https://docs.gitlab.com/ee/user/snippets.html
    category:
        - snippets
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    azure_devops: true
    bitbucket: true
  - title: "Xcode integration"
    description: |
      Open Xcode projects in Xcode directly from GitLab. Starting in Xcode 10,
      you can also sign in to GitLab in Xcode and access projects directly from
      the Xcode interface.
    link_description: "Learn more about Xcode integration"
    link: https://docs.gitlab.com/ee/user/project/repository/index.html#clone-in-apple-xcode
    gitlab_com: true
    category:
        - source_code_management
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
  - title: "Merge request versions"
    description: "View and compare merge request diffs from the merge request UI."
    link: https://docs.gitlab.com/ee/user/project/merge_requests/versions.html
    link_description: "Learn more about merge request versions"
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    azure_devops: false
  - title: "Inline commenting and discussion resolution"
    description: |
      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 and can be left on any line, changed or unchanged. You can
      configure your project to only accept merge requests when all discussions
      are resolved.
    link: https://docs.gitlab.com/ee/user/discussions/#resolvable-discussions
    link_description: "Learn more about resolving discussions"
    category:
        - code_review
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github: false
    bitbucket: false
    gitlab_merge_requests: true
    azure_devops: true
    gerrit: true
    crucible: true
  - title: "Cherry-picking changes"
    description: "Cherry-pick any commit in the UI by simply clicking the Cherry-Pick button in a merged merge request or a specific commit."
    link: 'https://docs.gitlab.com/ee/user/project/merge_requests/cherry_pick_changes.html'
    link_description: "Learn more about cherry picking merge requests"
    screenshot_url: 37-cherry-pick-commit.png
    category:
      - source_code_management
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    github: false
    bitbucket: false
    gitlab_merge_requests: true
    azure_devops: true
  - title: "Activity Stream"
    description: "View a list of the latest commits, merges, comments, and team members on your project."
    screenshot_url: 13-activity-stream.png
    link: https://docs.gitlab.com/ee/user/profile/preferences.html#default-dashboard
    link_description: "Learn more about the Activity Stream"
    category:
      - source_code_management
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    bitbucket: false
    azure_devops: true
  - title: "CI/CD Horizontal Autoscaling"
    description: "GitLab CI/CD cloud native architecture can easily scale horizontally by adding new nodes if the workload increases. GitLab Runners can automatically spin up and down new containers to ensure pipelines are processed immediately and minimize costs."
    link: https://docs.gitlab.com/runner/configuration/autoscale.html#overview
    link_description: "Learn more about GitLab CI/CD Horizontal Autoscaling"
    category:
        - continuous_integration
        - continuous_delivery
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_ci: true
    jenkins: false
    bamboo: 'partially'
    codefresh: true
    buildkite: true
  - title: "CI/CD Pipelines Dashboard"
    description: "Visualize the history and current status of pipelines across projects and groups all in a single dashboard that can be customized for each user."
    link: https://docs.gitlab.com/ee/user/operations_dashboard/
    link_description: "Learn more about Cross-Project Pipelines in the Operations Dashboard"
    category:
        - continuous_integration
        - continuous_delivery
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_ci: true
    jenkins: 'partially'
    bamboo: 'partially'
    codefresh: true
    buildkite: true
  - title: "DevOps Score"
    description: "Accelerate idea-to-production by identifying areas of improvement in your entire development process. See how you compare to other organizations using GitLab."
    link: https://docs.gitlab.com/ee/user/instance_statistics/dev_ops_score.html
    link_description: "Learn more about DevOps Score"
    category:
      - devops_reports
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: false
  - title: "GPG Signed Commits"
    description: "Sign commits and prove that a commit was performed by a certain user."
    link: https://docs.gitlab.com/ee/user/project/gpg_signed_commits/
    link_description: "Read more about GPG signed commits"
    category:
      - source_code_management
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    bitbucket: true
    github: true
    azure_devops: false
  - title: "Database load balancing for PostgreSQL"
    description: |
      Distribute read-only queries among multiple PostgreSQL database servers
      and reduce the load on the primary database to increase responsiveness.
    link: https://docs.gitlab.com/ee/administration/database_load_balancing.html
    link_description: "Learn more about database load balancing"
    category:
      - unknown
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: false
  - title: "Deploy from Chat"
    description: "Deploy from one environment (e.g. staging) to any other (e.g. production) from Chat"
    link: https://docs.gitlab.com/ee/integration/slash_commands.html
    link_description: "Read the documentation on Slash commands"
    category:
      - continuous_delivery
      - chatops
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
  - title: "Create, search and view issues from chat"
    description: "Quickly create, view and search for issues straight from chat."
    link: https://docs.gitlab.com/ee/integration/slash_commands.html
    link_description: "Read the documentation on Slash commands"
    category:
      - issue_trackers
      - chatops
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    jira: false
    ca_agile_central: false
    redmine: false
  - title: "Mattermost integration"
    description: "Mattermost can be automatically installed and integrated using GitLab Omnibus"
    link: https://docs.gitlab.com/omnibus/gitlab-mattermost/
    link_description: "Read the documentation on Mattermost integration"
    screenshot_url: 50-mattermost.png
    feature_page: true
    category:
      - unknown
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: false
    jira: false
    microfocus_alm_octane: false
    ca_agile_central: false
  - title: "Google Hangouts integration"
    description: "Integrate with Google Hangouts"
    link: https://docs.gitlab.com/ee/user/project/integrations/hangouts_chat.html
    link_description: "Read the documentation on Google Hangouts integration"
    screenshot_url: google-hangouts-integration.png
    category:
      - unknown
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
  - title: "Subgroups: groups within groups"
    description: "Create groups within groups to easily manage large numbers of people and projects."
    link: '/features/subgroups/'
    link_description: "Learn more about Subgroups"
    category:
      - unknown
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github: false
    bitbucket: false
  - title: "Built for using containers and Docker"
    description: "GitLab ships with its own Container Registry, Docker CI Runner, and is ready for a complete CI/CD container workflow. There is no need to install, configure, or maintain additional plugins."
    link_description: ""
    link: ""
    category:
        - container_registry
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_ci: true
    travis_ci: true
    jenkins: false
    circle_ci: true
    teamcity: true
    spinnaker: true
    codestar: true
  - title: "Docker image support"
    description: "Supports storage and retrieval of Docker style containers."
    link_description: "Learn more about the GitLab container registry"
    link: https://docs.gitlab.com/ee/user/project/container_registry.html
    category:
        - container_registry
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    jfrog_artifactory: true
    sonatype_nexus_repo: true
    docker_hub: true
    docker_trusted_registry: true
    aws_ecr: true
    azure_cr: true
    google_cr: true
    quay: true
  - title: "Container registry webhooks"
    description: "Trigger actions after a successful push to a registry to integrate Docker Hub with other services."
    link_description: "Learn more about GitLab registry webhooks"
    link: https://docs.gitlab.com/ee/administration/container_registry.html#configure-container-registry-notifications
    category:
      - container_registry
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    jfrog_artifactory: true
    sonatype_nexus_repo: true
    docker_hub: true
    docker_trusted_registry: true
    aws_ecr: false
    azure_cr: true
    google_cr: false
    quay: true
  - title: "Container registry high availability"
    description: "Highly available through the use of multiple replicas of all containers and metadata such that if a machine fails, the registry continues to operate and can be repaired."
    link_description: "Learn more about GitLab high availability"
    link: https://docs.gitlab.com/ee/administration/high_availability/README.html
    category:
      - container_registry
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    jfrog_artifactory: true
    sonatype_nexus_repo: true
    docker_hub: true
    docker_trusted_registry: true
    aws_ecr: true
    azure_cr: true
    google_cr: true
    quay: true
  - title: "Container registry geographic replication"
    description: "Supports distributed teams by running multiple registry instances across several regions and syncing between data centers."
    link_description: "Learn more about GitLab replication"
    link: https://docs.gitlab.com/ee/administration/geo/replication/
    category:
      - container_registry
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: true
    gitlab_ultimate: true
    jfrog_artifactory: true
    sonatype_nexus_repo: true
    docker_hub: true
    docker_trusted_registry: true
    aws_ecr: true
    azure_cr: true
    google_cr: true
    quay: true
  - title: "Supports private container registries"
    description: "Offers the ability to have private container registries and repositories"
    link_description: "Learn more about GitLab private container registries"
    link: https://docs.gitlab.com/ee/user/project/container_registry.html#using-with-private-projects
    category:
      - container_registry
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    jfrog_artifactory: true
    sonatype_nexus_repo: true
    docker_hub: true
    docker_trusted_registry: true
    aws_ecr: true
    azure_cr: true
    google_cr: true
    quay: true
  - title: "SaaS container registry offering"
    description: "The container registry ia available as a software service."
    link_description: "Learn more about the container registry available on GitLab.com"
    link: https://docs.gitlab.com/ee/user/project/container_registry.html
    category:
      - container_registry
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    jfrog_artifactory: true
    sonatype_nexus_repo: false
    docker_hub: true
    docker_trusted_registry: false
    aws_ecr: true
    azure_cr: true
    google_cr: true
    quay: true
  - title: "Self-managed container registry offering"
    description: "Container registry which is available to be self-installed and self-managed in an organizations data center, co-hosted, or in a chosen cloud provider."
    link_description: "Learn more about self-installing GitLab"
    link: https://about.gitlab.com/install/
    category:
      - container_registry
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    jfrog_artifactory: true
    sonatype_nexus_repo: true
    docker_hub: false
    docker_trusted_registry: true
    aws_ecr: false
    azure_cr: false
    google_cr: false
    quay: true
  - title: "Use container registry through REST API"
    description: "Enables support for automation and integration of container registry through a REST API."
    link_description: "View the GitLab issue."
    link: https://gitlab.com/gitlab-org/gitlab-foss/issues/55978
    category:
      - container_registry
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    jfrog_artifactory: true
    sonatype_nexus_repo: true
    docker_hub: true
    docker_trusted_registry: true
    aws_ecr: true
    azure_cr: true
    google_cr: true
    quay: true
  - title: "Use search to find and identify Docker images"
    description: "Allows users to search their GitLab instance for image names and tags"
    link_description: "View the GitLab issue."
    link: https://gitlab.com/groups/gitlab-org/-/epics/2615
    category:
      - container_registry
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: false
    jfrog_artifactory: true
    sonatype_nexus_repo: true
    docker_hub: true
    docker_trusted_registry: true
    aws_ecr: true
    azure_cr: true
    google_cr: true
    quay: true
  - title: "Lower the cost of storage for the GitLab Container Registry by running garbage collection"
    description: "In the context of the Docker registry, garbage collection is the process of removing blobs from the filesystem when they are no longer referenced by a manifest."
    link_description: "Check out the documentation, and get started today."
    link: https://docs.gitlab.com/ee/administration/packages/container_registry.html#container-registry-garbage-collection
    category:
      - container_registry
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    jfrog_artifactory: true
    sonatype_nexus_repo: true
    docker_hub: true
    docker_trusted_registry: true
    aws_ecr: true
    azure_cr: true
    google_cr: true
    quay: true
  - title: "Helm chart repository support"
    description: "Supports storage and retrieval of Helm charts."
    link_description: "View the GitLab issue. "
    link: https://gitlab.com/groups/gitlab-org/-/epics/2281
    category:
      - container_registry
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: false
    jfrog_artifactory: true
    sonatype_nexus_repo: true
    docker_hub: false
    docker_trusted_registry: false
    aws_ecr: false
    azure_cr: true
    google_cr: false
    codefresh: true
    quay: partially
  - title: "Cloud Native"
    description: "GitLab and its CI/CD is Cloud Native, purpose built for the cloud model. GitLab can be easily deployed on Kubernetes and used to deploy your application to Kubernetes with support out of the box."
    link_description: "Kubernetes integration"
    link: /solutions/kubernetes/
    category:
        - container_registry
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_ci: true
    travis_ci: false
    jenkins: false
    circle_ci: true
    bamboo: false
    puppet: false
    chef: false
    teamcity: partially
    ansible: 'partially'
    saltstack: false
    awsopsworks: true
  - title: "Container debugging with an integrated web terminal"
    description: "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."
    link_description: "Learn more about the web terminal"
    link: 'https://docs.gitlab.com/ee/ci/environments.html#web-terminals'
    category:
        - container_registry
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_ci: true
    travis_ci: false
    jenkins: false
    spinnaker: false
    gitlab_merge_requests: true
    github: false
    bamboo: false
    plutora: false
  - title: "Docker tag expiration and retention policies"
    description: "Easily define, manage and update Docker image expiration policies on a per project and per Docker repository level, reducing storage costs and operational risks of manually removing images."
    link_description: "Learn more about how to programmatically expire images"
    link: 'https://docs.gitlab.com/ee/user/packages/container_registry/#expiration-policy'
    category:
        - container_registry
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    jfrog_artifactory: true
    sonatype_nexus_repo: true
    docker_hub: false
    docker_trusted_registry: false
    aws_ecr: true
    azure_cr: true
    google_cr: false
    quay: true
  - title: "Comprehensive pipeline graphs"
    description: |
      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.
    link_description: "Learn more about pipeline graphs"
    link: 'https://docs.gitlab.com/ee/ci/pipelines.html#pipeline-graphs'
    category:
        - continuous_delivery
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_ci: true
    travis_ci: false
    jenkins: true
    circle_ci: true
    teamcity: true
    spinnaker: false
    codestar: false
    codefresh: true
    gitlab_merge_requests: true
    bamboo: false
    plutora: false
  - title: "Online visualization of HTML artifacts"
    description: |
      Access your test reports, code quality and coverage information directly
      from your browser, with no need to download them locally.
    link_description: "Learn more about using job artifacts in your project"
    link: 'https://docs.gitlab.com/ee/user/project/pipelines/job_artifacts.html'
    category:
      - continuous_integration
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    bamboo: 'partially'
    buildkite: false
  - title: "Browsable artifacts"
    description: |
      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.
    link_description: "Learn more about using job artifacts in your project"
    link: 'https://docs.gitlab.com/ee/user/project/pipelines/job_artifacts.html'
    category:
        - continuous_delivery
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_ci: true
    travis_ci: false
    jenkins: false
    circle_ci: true
    spinnaker: false
    teamcity: partially
    bamboo: true
    roi_case: "Allow uploaded artifacts to be browsable and downloaded directly with the UI, saving time using external services for this."
    shorthand: browsable_artifacts
    hours_per_incident: 0.30
    incidents_per_year: 25
  - title: "Scheduled triggering of pipelines"
    description: "You can make your pipelines run on a schedule in a cron-like environment."
    link_description: "Learn how to trigger pipelines on a schedule in GitLab"
    link: 'https://docs.gitlab.com/ee/ci/triggers/#using-scheduled-triggers'
    category:
      - continuous_integration
      - continuous_delivery
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_ci: true
    travis_ci: true
    jenkins: true
    circle_ci: true
    teamcity: true
    spinnaker: true
    codestar: true
    bamboo: true
    codefresh: true
    plutora: false
    github: true
    buildkite: true
  - title: "Code Quality"
    description: |
      Code Quality reports are available in the merge request widget area or on the pipeline page, giving you early insights into
      how the change will affect the health of your code before deciding if you want to accept it.
    screenshot_url: full-code-quality-report.png
    link_description: "Learn more about Code Quality reports"
    link: 'https://docs.gitlab.com/ee/user/project/merge_requests/code_quality_diff.html'
    category:
        - continuous_integration
    gitlab_core: false
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    pricing_page: true
    gitlab_ci: true
    travis_ci: false
    jenkins: 'partially'
    circle_ci: false
    teamcity: true
    bamboo: false
    plutora: false
    buildkite: false
    roi_case: "Allow automatic code quality checks and feedback directly in the MR, saving time checking them manually, for each MR."
    shorthand: codequality
    hours_per_incident: 0.10
    incidents_per_year: 100
  - title: "Multi-project pipeline graphs"
    description: |
      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.
    link_description: "Learn more about multi-project pipeline graphs"
    link: https://docs.gitlab.com/ee/ci/multi_project_pipeline_graphs.html
    category:
      - continuous_delivery
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: true
    gitlab_ultimate: true
    pricing_page: true
    gitlab_ci: true
    travis_ci: false
    jenkins: 'partially'
    circle_ci: false
    teamcity: true
    spinnaker: false
    codestar: false
    bamboo: false
    plutora: false
    roi_case: "Prevent from manually check relationships and status of related projects, saving time doing cross-project content switch."
    shorthand: multiproject_pipelines
    hours_per_incident: 0.15
    incidents_per_year: 100
  - title: "Protected variables"
    description: |
      You can mark a variable as "protected" to make it available only to jobs running on
      protected branches, therefore only authorized users can get access to it.
    link_description: "Learn how to use protected variables"
    link: 'https://docs.gitlab.com/ee/ci/variables/#protected-variables'
    category:
      - continuous_integration
      - continuous_delivery
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_ci: true
    travis_ci: true
    jenkins: false
    circle_ci: false
    bamboo: true
    buildkite: false
  - title: "Deployment projects"
    description: "A deployment project holds the software project you are deploying: releases that have been built and tested, and the environments to which releases are deployed."
    link_description: "Learn about GitLab projects"
    link: "https://docs.gitlab.com/ee/user/project/"
    category:
      - continuous_delivery
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: false
    gitlab_com: false
    bamboo: true
    plutora: partially
  - title: "Environments and deployments"
    description: |
      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.
    link_description: "Learn more about environments"
    link: https://docs.gitlab.com/ee/ci/environments.html
    category:
      - release_orchestration
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    gitlab_ci: true
    travis_ci: false
    jenkins: false
    circle_ci: false
    spinnaker: true
    bamboo: true
    xebialabs: true
    electric_flow: true
    plutora: partially
  - title: "Per-environment permissions"
    description: "Developers and QA can deploy to their own environments on demand while production stays locked down. Build engineers and ops teams spend less time servicing deploy requests, and can gate what goes into production."
    link_description: "Learn about protected branches in GitLab"
    link: "https://docs.gitlab.com/ee/user/project/protected_branches.html"
    category:
      - release_orchestration
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: false
    gitlab_com: false
    bamboo: true
    electric_flow: true
  - title: "Environments history"
    description: |
      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.
    link_description: "Learn more about history of an environment"
    link: 'https://docs.gitlab.com/ee/ci/environments.html#viewing-the-deployment-history-of-an-environment'
    category:
        - release_orchestration
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    gitlab_ci: true
    travis_ci: false
    jenkins: false
    circle_ci: false
    bamboo: false
    electric_flow: true
    plutora: true
  - title: "Environment-specific variables"
    description: "Limit the environment scope of a variable by defining which environments it can be available for."
    link_description: "Learn how to configure environment-specific variables"
    link: https://docs.gitlab.com/ee/ci/variables/#limiting-environment-scopes-of-environment-variables
    category:
      - release_orchestration
      - kubernetes_management
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_ci: true
    travis_ci: false
    jenkins: false
    circle_ci: false
    bamboo: true
    electric_flow: true
  - title: "Group-level variables"
    description: "Define variables at the group level and use them in any project in the group."
    link_description: "Learn how to configure variables"
    link: 'https://docs.gitlab.com/ee/ci/variables/#variables'
    category:
      - continuous_integration
      - continuous_delivery
      - kubernetes_management
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    gitlab_ci: true
    travis_ci: false
    jenkins: false
    circle_ci: true
    bamboo: false
    electric_flow: true
  - title: "Customizable path for CI/CD configuration"
    description: "You can define a custom path into your repository for your CI/CD configuration file."
    link_description: "Learn how to configure a custom CI/CD configuration file"
    link: 'https://docs.gitlab.com/ee/user/project/pipelines/settings.html#custom-ci-config-path'
    category:
        - continuous_integration
        - continuous_delivery
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    gitlab_ci: true
    travis_ci: false
    jenkins: false
    circle_ci: false
    buildkite: false
  - title: "Object storage for artifacts"
    description: "Artifacts can be stored on Object Storage (Amazon S3)"
    link_description: "Learn how to store artifacts on object storage"
    link: 'https://docs.gitlab.com/ee/administration/job_artifacts.html#using-object-storage'
    category:
      - unknown
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: false
    gitlab_ci: true
    electric_flow: true
    plutora: false
  - title: "Object storage for LFS"
    description: "LFS files can be stored on Object Storage (Amazon S3)"
    link_description: "Learn how to store artifacts on object storage"
    link: 'https://docs.gitlab.com/ee/administration/lfs/lfs_administration.html#setting-up-s3-compatible-object-storage'
    category:
      - unknown
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: false
    gitlab_ci: true
    bitbucket: true
    plutora: false
  - title: "Run CI/CD jobs on Windows"
    description: |
      GitLab Runner supports Windows and can run jobs natively on this platform.
      You can automatically build, test, and deploy Windows-based projects by leveraging PowerShell or batch files.
    link_description: "Install GitLab Runner on Windows"
    link: 'https://docs.gitlab.com/runner/install/windows.html'
    category:
        - continuous_integration
        - continuous_delivery
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_ci: true
    travis_ci: false
    jenkins: true
    circle_ci: false
    codestar: false
    codefresh: 'partially'
    electric_flow: 'partially'
    buildkite: true
  - title: "Run CI/CD jobs on macOS"
    description: |
      GitLab Runner supports macOS and can run jobs natively on this platform.
      You can automatically build, test, and deploy for macOS based projects by leveraging shell scripts and command line tools.
    link_description: "Install GitLab Runner on macOS"
    link: 'https://docs.gitlab.com/runner/install/osx.html'
    category:
        - continuous_integration
        - continuous_delivery
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_ci: true
    travis_ci: true
    jenkins: true
    circle_ci: true
    codestar: false
    codefresh: false
    electric_flow: true
    buildkite: true
  - title: "Run CI/CD jobs on Linux ARM"
    description: |
      GitLab Runner supports Linux operating systems on ARM architectures and can run jobs natively on this platform.
      You can automatically build, test, and deploy for Linux ARM based projects by leveraging shell scripts and command line tools.
    link_description: "Install GitLab Runner on Linux"
    link: 'https://docs.gitlab.com/runner/install/linux-manually.html'
    category:
        - continuous_integration
        - continuous_delivery
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_ci: true
    travis_ci: true
    jenkins: true
    circle_ci: true
    codefresh: 'partially'
    electric_flow: 'partially'
    buildkite: false
  - title: "Run CI/CD jobs on FreeBSD"
    description: |
      GitLab Runner supports FreeBSD and can run jobs natively on this platform.
      You can automatically build, test, and deploy for FreeBSD-based projects by leveraging shell scripts and command line tools.
    link_description: "Install GitLab Runner on FreeBSD"
    link: 'https://docs.gitlab.com/runner/install/freebsd.html'
    category:
        - continuous_integration
        - continuous_delivery
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_ci: true
    travis_ci: false
    jenkins: true
    circle_ci: false
    codefresh: false
    electric_flow: 'partially'
    buildkite: true
  - title: "Show code coverage rate for your pipelines"
    description: |
      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.
    link_description: "Learn how to generate and show code coverage information in GitLab"
    link: /blog/2016/11/03/publish-code-coverage-report-with-gitlab-pages/
    category:
        - continuous_integration
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    gitlab_ci: true
    travis_ci: false
    jenkins: true
    codefresh: false
    circle_ci: false
    buildkite: false
  - title: "Details on duration for each command execution in GitLab CI/CD"
    description: |
      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.
    link_description: "Read more on the issue"
    link: 'https://gitlab.com/gitlab-org/gitlab-foss/issues/63880'
    category:
        - continuous_integration
        - continuous_delivery
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: false
    gitlab_ci: false
    travis_ci: true
    jenkins: true
    circle_ci: true
    codefresh: true # https://codefresh.io/docs/docs/configure-ci-cd-pipeline/monitoring-pipelines/
    electric_flow: true
    buildkite: false
  - title: "Auto DevOps"
    description: |
      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.
    link_description: "Read more about Auto DevOps in the documentation"
    link: 'https://docs.gitlab.com/ee/topics/autodevops/'
    category:
      - auto_devops
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_ci: true
    travis_ci: false
    jenkins: false
    circle_ci: false
    spinnaker: false
    puppet: false
    chef: false
    ansible: false
    electric_flow: false
    codefresh: false
    plutora: false
  - title: "Protected Runners"
    description: |
      Protected Runners allow you to protect your sensitive information, for example deployment credentials,
      by allowing only jobs running on protected branches to access them.
    link_description: "Read more on the issue"
    link: 'https://docs.gitlab.com/ee/ci/runners/#protected-runners'
    category:
        - continuous_integration
        - continuous_delivery
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_ci: true
    travis_ci: false
    jenkins: false
    circle_ci: true
    electric_flow: true
    codefresh: false
    buildkite: true
  - title: "Easy integration of existing Kubernetes clusters"
    description: |
      Add your existing Kubernetes cluster to your project, and easily access it from your
      CI/CD pipelines to host Review Apps and to deploy your application.
    link_description: "Read more on the issue"
    link: 'https://gitlab.com/gitlab-org/gitlab-foss/issues/35616'
    category:
        - kubernetes_management
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_ci: true
    travis_ci: false
    jenkins: false
    circle_ci: false
    codestar: false
    teamcity: partially
    codefresh: true
    plutora: false
  - title: "Easy creation of Kubernetes clusters on GKE"
    description: |
      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.
    link_description: "Read more on the issue"
    link: 'https://gitlab.com/gitlab-org/gitlab-foss/issues/35954'
    category:
        - kubernetes_management
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_ci: true
    travis_ci: false
    jenkins: false
    circle_ci: false
    codefresh: false
  - title: "Support for multiple Kubernetes clusters"
    description: |
      Easily deploy different environments, like Staging and Production, to different Kubernetes clusters.
      This allows to enforce strict data separation.
    link_description: "Read more on the issue"
    link: 'https://docs.gitlab.com/ee/user/project/clusters/#multiple-kubernetes-clusters-premium'
    screenshot_url: 55-multiple_clusters.png
    category:
        - kubernetes_management
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_ci: true
    travis_ci: false
    jenkins: false
    circle_ci: false
    codefresh: true
    plutora: false
  - title: "Easy Deployment of applications for Kubernetes clusters"
    description: |
      Install Helm Tiller, Nginx Ingress, Cert-Manager, Prometheus, GitLab Runner, JupyterHub, and Knative directly into your cluster from the GitLab Web UI with one click.
    screenshot_url: 52-cluster-apps.png
    link_description: "Read through the documentation on installing applications on GKE clusters"
    link: 'https://docs.gitlab.com/ee/user/project/clusters/index.html#installing-applications'
    category:
        - kubernetes_management
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_ci: true
    travis_ci: false
    jenkins: false
    circle_ci: false
    codefresh: true
  - title: "Publish static websites for free with GitLab Pages"
    description: "GitLab Pages provides an easy system for hosting static sites using GitLab repositories and GitLab CI, complete with custom domains, access control, and HTTPS support."
    screenshot_url: 03-gitlab-pages.png
    link_description: "Learn more about GitLab Pages"
    link: '/product/pages/'
    feature_page: true
    category:
      - pages
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    gitlab_pages: true
    github: true
  - title: "Keep track of releases using GitLab Releases"
    description: "GitLab's Releases feature 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, and receive notifications when new releases are available for projects you track, including for guests of your project."
    screenshot_url: release-releases_page.png
    link_description: "Learn more about GitLab Releases"
    link: 'https://docs.gitlab.com/ee/user/project/releases/index.html'
    feature_page: true
    category:
      - release_orchestration
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    gitlab_pages: true
    github: true
  - title: "Publish your website from a private project for free"
    description: "With GitLab Pages, you can create a private repository to hold your site content, and keep only the page source (HTML) available online."
    link_description: "Visit GitLab Pages Documentation."
    link: 'https://docs.gitlab.com/ee/user/project/pages/'
    category:
      - pages
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_pages: true
    github: false
  - title: "Custom domains for GitLab Pages"
    description: "With GitLab Pages websites, you can use a custom domain or subdomain."
    link_description: "Learn how to apply custom domains to GitLab Pages websites"
    link: 'https://docs.gitlab.com/ee/user/project/pages/getting_started_part_three.html#setting-up-custom-domains-dns-records-and-ssl-tls-certificates'
    category:
      - pages
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_pages: true
    github: true
  - title: "Multiple custom domains for GitLab Pages"
    description: "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."
    link_description: "Learn how to add custom domains to your GitLab Pages website"
    link: 'https://docs.gitlab.com/ee/user/project/pages/introduction.html#add-a-custom-domain-to-your-pages-website'
    category:
      - pages
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_pages: true
    github: false
  - title: "Secure custom domains (HTTPS) with GitLab Pages"
    description: "Install a SSL/TLS certificate, at no cost, on a website set up with a custom domain served by GitLab Pages."
    link_description: "Learn how to add an SSL/TLS certificate to your GitLab Pages website"
    link: 'https://docs.gitlab.com/ee/user/project/pages/getting_started_part_three.html#ssl-tls-certificates'
    category:
      - pages
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_pages: true
    github: false
  - title: "GitLab Pages custom domains verification"
    description: |
      When adding a new custom domain, users must add an associated TXT record
      in order to verify they are the owner of the domain. That mechanism is
      used to prevent users from claiming domains they do not own.
    link_description: "Visit GitLab Pages Documentation."
    link: 'https://docs.gitlab.com/ee/user/project/pages/'
    category:
      - pages
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_pages: true
    github: false
  - title: "GitLab Pages support all Static Site Generators"
    description: |
      With GitLab, you can build any SSG, and also choose specific SSGs' versions you want your site to build with (e.g. Middleman 4.1.1).
    link_description: "Learn how to build any SSG with GitLab Pages"
    link: '/blog/2016/06/17/ssg-overview-gitlab-pages-part-3-examples-ci/'
    category:
      - pages
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_pages: true
    github: false
  - title: "GitLab Pages example projects"
    description: |
      Choose an [example project](https://gitlab.com/pages) to fork and get started with GitLab Pages.
    link: 'https://www.youtube.com/watch?v=TWqh9MtT4Bg'
    link_description: "Watch a 3-min video tutorial on how to get started with GitLab Pages by forking a project"
    category:
      - pages
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_pages: true
    github: true
  - title: "GitLab Pages Templates for Static Site Generators"
    description: |
      For those not interested in forking a project, GitLab Pages also offers templates for Gitbook, Hugo, Jekyll, Gatsby, and PlainHTML to start your Pages site from a template.
    link: 'https://www.youtube.com/watch?v=C2E1M-4Jvd0'
    link_description: "Watch a 2-minute video on getting your Pages site running with a GitLab template"
    category:
      - pages
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    github: true
  - title: "GitLab Pages supports all Jekyll plugins"
    description: |
      Besides building any Jekyll version you want, with GitLab Pages you can use all Jekyll plugins available.
    link_description: "Visit GitLab Pages Documentation."
    link: 'https://docs.gitlab.com/ee/user/project/pages/'
    category:
      - pages
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_pages: true
    github: false
  - title: "Custom Error Pages (404) for GitLab Pages"
    description: "GitLab Pages allows you to create custom error pages."
    link_description: "Learn how to add a custom 404 to GitLab Pages websites"
    link: 'https://docs.gitlab.com/ee/user/project/pages/introduction.html#custom-error-codes-pages'
    category:
      - pages
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_pages: true
    github_pages: true
  - title: "Access control for GitLab Pages"
    description: "GitLab Pages allows you to set up custom access control for your site."
    link_description: "Learn how to setup access control on GitLab Pages websites"
    link: 'https://docs.gitlab.com/ee/user/project/pages/#getting-started'
    solution: release
    category:
      - pages
    gitlab_com: true
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_pages: true
    github_pages: false
    github: false
  - title: "Globally distributed cloning with GitLab Geo"
    description: |
      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.
    link_description: "Learn more about GitLab Geo"
    category:
      - source_code_management
    link: /solutions/geo/
    pricing_page: true
    gitlab_com: false
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: true
    gitlab_ultimate: true
    bitbucket: true
    electric_flow: true
    roi_case: "Prevent waiting for git fetch operations to complete over long distances that take 45 seconds to complete, 4 every day, 5 days a week"
    shorthand: "geo"
    hours_per_incident: 0.05
    incidents_per_year: 261
  - title: "Support for High Availability"
    description: |
      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.
    category:
      - unknown
    link_description: "Learn more about GitLab's High availability"
    link: https://docs.gitlab.com/ee/administration/high_availability/
    pricing_page: true
    gitlab_com: false
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: true
    gitlab_ultimate: true
    gogs: false
    bitbucket: true
    electric_flow: true
    roi_case: "Allows to reach 99% availability instead of 95%, meaning 15 days of more availability per year, 8 hours per day"
    shorthand: "ha_setup"
    hours_per_incident: 8
    incidents_per_year: 3
  - title: "Deploy Boards"
    description: |
      GitLab Premium
      ships with Deploy Boards offering a consolidated view of the current health
      and status of each CI/CD environment running on Kubernetes. The status of each
      pod of your latest deployment is displayed seamlessly within GitLab without
      the need to access Kubernetes.
    link_description: "Learn more about Deploy Boards"
    link: 'https://docs.gitlab.com/ee/user/project/deploy_boards.html'
    category:
        - continuous_delivery
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    pricing_page: true
    github: false
    bitbucket: false
    gogs: false
    puppet: false
    chef: false
    ansible: false
    electric_flow: 'partially'
    roi_case: "Single tool to check on deploy status. Saves about 5 minutes of context switching and logging into other tool. Average user check once per week for deploy to staging or prod."
    shorthand: "deploy_boards"
    hours_per_incident: 0.08
    incidents_per_year: 52
  - title: "Timed and manual incremental rollout deployments"
    description: |
      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.
    link_description: "Learn more about configuring incremental rollout deployments"
    link: 'https://docs.gitlab.com/ee/topics/autodevops/index.html#incremental-rollout-to-production-premium'
    category:
        - continuous_delivery
    pricing_page: true
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: true
    gitlab_ultimate: true
    electric_flow: true
  - title: "Canary Deployments"
    description: |
      GitLab Enterprise Edition Premium can monitor your Canary Deployments when
      deploying your applications with Kubernetes.
    link_description: "Learn more about configuring Canary Deployments"
    link: 'https://docs.gitlab.com/ee/user/project/deploy_boards.html#canary-deployments'
    category:
        - continuous_delivery
    pricing_page: true
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_ci: true
    travis_ci: false
    jenkins: false
    circle_ci: false
    spinnaker: true
    puppet: false
    chef: false
    ansible: false
    electric_flow: true
    roi_case: "Canary deploys were already possible, but not able to be represented. For those using canaries, save another context switch by displaying within GitLab."
    shorthand: "canary"
    hours_per_incident: 0.08
    incidents_per_year: 52
  - title: "Minimal CI/CD configuration"
    description: "GitLab CI/CD requires less configuration for your pipelines than other similar setups like Jenkins."
    link_description: "Learn more about GitLab CI/CD"
    link: /product/continuous-integration/
    category:
      - continuous_integration
      - continuous_delivery
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_ci: true
    jenkins: false
    codestar: false
    electric_flow: false
    teamcity: partially
    plutora: false
    buildkite: true
  - title: "Containment"
    description: "Containing your company's IP behind the company's firewall gives you protection from unauthorized access. Learn from the lessons of Code Space."
    link_description: "Lessons from Code Space"
    link: http://www.infoworld.com/article/2608076/data-center/murder-in-the-amazon-cloud.html
    category:
      - unknown
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: false
    saas: false
  - title: "Multiple integrations"
    description: "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."
    link_description: "Learn more about GitLab's integrations"
    link: https://docs.gitlab.com/ee/integration/
    category:
      - authentication_and_authorization
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    saas: false
    jira: true
    ca_agile_central: true
    electric_flow: true
    plutora: true
  - title: "Application Partners"
    description: "Since every application that supports Git will work with GitLab, there are hundreds of applications that can integrate and work with Gitlab. Additionally, there are many partners that integrate with authentication and authorization of GitLab."
    link_description: "Learn more about GitLab's multiple technology partners"
    link: https://about.gitlab.com/partners/
    category:
      - authentication_and_authorization
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
  - title: "Control"
    description: "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."
    link_description: ""
    link:
    category:
      - unknown
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    github: false
    gitlab_com: false
    saas: false
  - title: "You decide when you upgrade"
    description: "GitLab releases a new version each month and lets you choose when to upgrade."
    link_description: "Learn how to upgrade your GitLab instance"
    link: /update
    category:
      - unknown
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: false
    github: false
    bitbucket: false
  - title: "Easy upgrade process"
    description: "Using our official Linux repositories or the official Docker image, upgrading GitLab is a breeze."
    link_description: "Learn how to upgrade your GitLab instance"
    link: /update
    category:
      - unknown
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: false
    github: false
    bitbucket: false
    electric_flow: false
  - title: "Retrieval"
    description: "Getting your IP back from cloud vendors that store data in proprietary formats can be a costly and lengthy process. No such trouble with GitLab CE/EE."
    link_description: ""
    link:
    category:
      - unknown
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: false
    saas: false
  - title: "In good company"
    description: "GitLab is the most adopted on-premises solution for developer collaboration, deployed at over 100,000 organizations worldwide."
    link_description: ""
    link:
    category:
      - unknown
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    saas: false
  - title: "Ability to edit all fields of a merge request"
    description: "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."
    link: 'https://docs.gitlab.com/ee/user/project/merge_requests/'
    link_description: "Read through GitLab Merge Request's Documentation"
    category:
      - source_code_management
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_merge_requests: true
    github: false
  - title: "Automatically close issue(s) when a merge request is merged"
    description: "With GitLab, you can use specific keywords to close one or more issues as soon as a merge request is merged."
    link_description: "Learn more about automatically closing issues"
    link: "https://docs.gitlab.com/ee/user/project/issues/closing_issues.html#via-merge-request"
    screenshot_url: 24-issue-closing.png
    category:
      - issue_trackers
      - source_code_management
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    github: true
    bitbucket: true
    gitlab_merge_requests: true
    gogs: true
    jira: false
    ca_agile_central: false
    redmine: true
  - title: "Configurable issue closing pattern"
    description: "Define your own specific keywords to close one or more issues as soon as a merge request is merged."
    link_description: "Learn more about automatically closing issues"
    link: "https://docs.gitlab.com/ee/administration/issue_closing_pattern.html"
    category:
      - issue_trackers
      - source_code_management
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: false
    github: false
    jira: false
    ca_agile_central: false
    redmine: false
  - title: "Work in Progress merge requests (WIP)"
    description: "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."
    link: https://docs.gitlab.com/ee/user/project/merge_requests/work_in_progress_merge_requests.html
    link_description: "Learn more about WIP MRs"
    category:
      - source_code_management
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    github: false
    bitbucket: false
    gitlab_merge_requests: true
    gogs: false
    azure_devops: true
    basecamp: false
  - title: "Restrict push and merge access to certain users"
    description: "Extend the base functionality of protected branches and choose which users can push or merge to a protected branch."
    link_description: "Read about protected branches"
    link: https://docs.gitlab.com/ee/user/project/protected_branches.html#restricting-push-and-merge-access-to-certain-users-starter
    screenshot_url: 39-restrict-push-and-merge-access-to-users.png
    category:
      - source_code_management
    gitlab_core: false
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    azure_devops: true
  - title: "Protected tags"
    description: "Granular permissions for tags you want to protect."
    link_description: "Read about protected tags"
    link: https://docs.gitlab.com/ee/user/project/protected_tags.html
    screenshot_url: 40-protected-tags.png
    category:
      - authentication_and_authorization
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    azure_devops: false
  - title: " Custom header and footer system message in web and email"
    description: "Include custom header and footer system messages throughout GitLab and in emails."
    link_description: "Read about Custom header and footer system message in web and email"
    link: https://docs.gitlab.com/ee/customization/system_header_and_footer_messages.html
    screenshot_url: custom-header-footer.png
    category:
      - compliance_management
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
  - title: "Custom Git Hooks"
    description: "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."
    link_description: "Learn how to use Git Hooks with GitLab"
    link: https://docs.gitlab.com/ee/administration/custom_hooks.html
    category:
      - source_code_management
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: false
    github: 'partially'
    bitbucket: 'partially' # BB Cloud: false, BB Server: true
  - title: "Responsive-first design"
    description: "GitLab is built with a responsive-first design approach. Be it on a desktop, tablet or smartphone, GitLab is optimized to be viewed for the best result."
    link_description:
    link:
    category:
      - unknown
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github: 'partially'
    bitbucket: 'partially'
  - title: "Community based, users can help shape the product"
    description: "GitLab has open issue trackers for almost all of its operations. From GitLab itself to infrastructure and marketing, you can help shape the product."
    link_description: "View all GitLab contributors"
    link: http://contributors.gitlab.com/
    category:
      - unknown
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github: false
    electric_flow: false
    bitbucket: 'partially'
  - title: "Git LFS 2.0 support"
    description: |
      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.
    link_description: "Learn more about Git LFS support in GitLab"
    link: 'https://docs.gitlab.com/ee/workflow/lfs/manage_large_binaries_with_git_lfs.html'
    feature_page: true
    category:
      - source_code_management
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github: true
    bitbucket: true
    gogs: false
  - title: "Various authentication mechanisms"
    description: "GitLab can integrate with most of the authentication and authorization providers."
    link_description: "Read more about GitLab's authentication integration"
    link: https://docs.gitlab.com/ee/administration/auth/
    category:
      - authentication_and_authorization
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: false
    github: true
  - title: "Built-in and custom project templates"
    description: |
      When creating a new project, you can choose to kickstart your project from a predefined template
      that already has some working example code and CI preconfigured.
      In addition, you can define a custom project templates by assigning a group. Child projects of
      this group are available as templates when creating a new project.
    link_description: "Read more about Project templates"
    link: 'https://docs.gitlab.com/ee/gitlab-basics/create-project.html'
    screenshot_url: 38-new-project-templates.png
    category:
      - issue_trackers
      - source_code_management
      - continuous_integration
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    azure_devops: false
    redmine: partially
    buildkite: true
  - title: "Automatic Retry for Failed CI Jobs"
    description: |
      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.
    link_description: "Learn more about Automatic Retry for Failed CI Jobs"
    link: 'https://docs.gitlab.com/ee/ci/yaml/#retry'
    category:
        - continuous_integration
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_ci: true
    travis_ci: true
    jenkins: true
    circle_ci: false
    codefresh: true
    buildkite: true
    roi_case: "Automatically retry failed jobs in CI/CD pipelines, saving time to wait for a manual retry to have pipelines succeed."
    shorthand: autoretry_jobs
    hours_per_incident: 0.12
    incidents_per_year: 30
  - title: "Pipelines security"
    description: |
      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.
    link_description: "Learn more about pipeline security"
    link: 'https://docs.gitlab.com/ee/user/project/new_ci_build_permissions_model.html'
    category:
      - continuous_integration
      - continuous_delivery
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_ci: true
    travis_ci: false
    jenkins: true
    circle_ci: true
    codefresh: true
    buildkite: true
  - title: "Include external files in CI/CD pipeline definition"
    description: |
      You can include external files in your pipeline definition file, using them
      as templates to reuse snippets for common jobs.
    link_description: "Learn more about including external files"
    link: 'https://docs.gitlab.com/ee/ci/yaml/#include'
    category:
      - continuous_integration
      - continuous_delivery
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_ci: true
    travis_ci: false
    jenkins: true
    circle_ci: false
    codefresh: true
    buildkite: true
  - title: "Security Dashboards"
    description: "Security Dashboard report the latest security status of the default branch for each project"
    link_description: "Learn more about Security Dashboards"
    link: "https://docs.gitlab.com/ee/user/project/security_dashboard.html"
    screenshot_url: 61-security-dashboard.png
    category:
      - static_application_security_testing
      - dynamic_application_security_testing
      - dependency_scanning
      - container_scanning
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: true
    pricing_page: true
    gitlab_com: true
    github: false
    xebialabs: true
  - title: "Static Application Security Testing"
    # https://www.synopsys.com/content/dam/synopsys/sig-assets/datasheets/SAST-Coverity-datasheet.pdf
    description: |
      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 and in the Pipeline view.
      This feature is available as part of [Auto DevOps](https://docs.gitlab.com/ee/topics/autodevops/#auto-sast) to provide security-by-default.
    link_description: "Learn more about Static Application Security Testing"
    link: 'https://docs.gitlab.com/ee/user/application_security/sast/'
    screenshot_url: 54-sast.png
    category:
        - static_application_security_testing
        - auto_devops
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate:
      valid: true
      details: 'supports 11 languages'
    feature_page: true
    pricing_page: true
    gitlab_com: true
    gitlab_ci: true
    blackduck: false
    synopsys:
      valid: true
      details: 'supports 20 languages' # https://www.synopsys.com/content/dam/synopsys/sig-assets/datasheets/SAST-Coverity-datasheet.pdf
    snyk: false
    ca_veracode: true
    checkmarx: true
    circle_ci: false
    ibm_appscan: true
    microfocus_fortify: true
    sonarqube: true
    sonatype_nexus_platform: false
    travis_ci: false
    palo-alto: false
    whitesource: false
    rapid7: false
    qualys: false
    github: false
    gitlab_security: true
    codefresh: false
    plutora: false
    semmle: true
  - title: "Vulnerability Database available for viewing and is accepting contributions"
    description: "Our vulnerability database project can now be viewed, and enhanced by anyone."
    link_description: "Learn more about contributing to the vulnerability database"
    link: "https://docs.gitlab.com/ee/user/application_security/dependency_scanning/#contributing-to-the-vulnerability-database"
    # screenshot_url '61-security-dashboard.png
    category:
      - dependency_scanning
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: true
    pricing_page: false
    gitlab_com: true
  - title: "Add a reason when dismissing vulnerabilities"
    description: "When dismissing a vulnerabilities identified by our scanners, there is now a field available to add a reason detailing why the vulnerability was dismissed. This will allow security teams and developers to be able to review the history and understand why items were not remediated."
    link: "https://docs.gitlab.com/ee/user/application_security/#adding-a-dismissal-reason"
    category:
      - static_application_security_testing
      - dynamic_application_security_testing
      - dependency_scanning
      - container_scanning
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: true
    pricing_page: false
    gitlab_com: true
  - title: "Project Dependency List"
    description: "You can easily access the Dependency List (sometimes referred to as a Bill of Materials or BOM) from the left sidebar menu. The BOM indicates what components are included in your project, and often is requested by Security teams and Compliance teams."
    link: "https://docs.gitlab.com/ee/user/application_security/dependency_scanning/#dependency-list"
    category:
      - dependency_scanning
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: true
    pricing_page: false
    gitlab_com: true
  - title: "Dependency Scanning"
    description: |
      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.
    link_description: "Learn more about Dependency Scanning"
    link: 'https://docs.gitlab.com/ee/user/application_security/dependency_scanning/'
    category:
        - dependency_scanning
        - auto_devops
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: true
    gitlab_com: true
    gitlab_ci: true
    blackduck: true
    synopsys: true
    snyk: true
    ca_veracode: true
    checkmarx: true
    circle_ci: false
    codefresh: false
    ibm_appscan: true
    microfocus_fortify: true
    sonarqube: false
    sonatype_nexus_platform: true
    travis_ci: false
    palo-alto: false
    whitesource: true
    rapid7: false
    qualys: false
    github: false
    gitlab_security: true
    semmle: true
  - title: "Container Scanning"
    description: |
      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 and in the Pipeline view.
      This feature is available as part of [Auto DevOps](https://docs.gitlab.com/ee/topics/autodevops/#auto-container-scanning)
      to provide security-by-default.
    link_description: "Learn more about container scanning"
    link: 'https://docs.gitlab.com/ee/user/application_security/container_scanning/'
    screenshot_url: 56-container-scanning.png
    category:
        - container_scanning
        - auto_devops
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: true
    pricing_page: true
    gitlab_com: true
    gitlab_ci: true
    blackduck: true
    synopsys: true
    snyk: true
    ca_veracode: false
    checkmarx: false
    circle_ci: false
    codefresh: false
    ibm_appscan: false
    microfocus_fortify: false
    sonarqube: false
    sonatype_nexus_platform: true
    travis_ci: false
    palo-alto: true
    whitesource: true
    rapid7: false
    qualys: true
    github: false
    gitlab_security: true
    plutora: false
    semmle: false
  - title: "Dynamic Application Security Testing"
    description: |
      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 and in the Pipeline view. This feature is available as part of
      [Auto DevOps](https://docs.gitlab.com/ee/topics/autodevops/#auto-sast) to provide security-by-default.
    link_description: "Learn more about application security for containers"
    link: 'https://docs.gitlab.com/ee/user/application_security/dast/'
    screenshot_url: 57-dast.png
    category:
        - dynamic_application_security_testing
        - auto_devops
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: true
    pricing_page: true
    gitlab_com: true
    gitlab_ci: true
    blackduck: false
    synopsys: false
    snyk: false
    ca_veracode: true
    checkmarx: false
    circle_ci: false
    codefresh: false
    ibm_appscan: true
    microfocus_fortify: true
    sonarqube: false
    sonatype_nexus_platform: false
    travis_ci: false
    palo-alto: false
    whitesource: false
    rapid7: true
    qualys: true
    github: false
    gitlab_security: true
    plutora: false
    semmle: false
  - title: "Interactive Application Security Testing"
    description: |
      [IAST](https://blogs.gartner.com/neil_macdonald/2012/01/30/interactive-application-security-testing/) combines elements of static and dynamic application security testing methods to improve the overall quality of the results. IAST typically uses an agent to instrument the application to monitor library calls and more.
      GitLab does not yet offer this feature.
    link_description: ""
    link:
    category:
        - unknown
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: false
    gitlab_com: false
    gitlab_ci: false
    blackduck: false
    synopsys: true
    snyk: false
    ca_veracode: true
    checkmarx: true
    circle_ci: false
    ibm_appscan: true
    microfocus_fortify: true
    sonarqube: false
    sonatype_nexus_platform: false
    travis_ci: false
    codefresh: false
    palo-alto: false
    whitesource: false
    rapid7: false
    qualys: true
    github: false
    gitlab_security: false
    plutora: false
    semmle: false
  - title: "Cloud Native Network Firewall"
    description: |
      Cloud native network firewall provides container-level network micro segmentation which isolates container network communications to limit the “blast radius” of compromise to a specific container or microservice. A container-aware virtual firewall that utilizes machine learning to automatically identify valid traffic flows between app components in your cluster. Limits damage by preventing attackers from moving through your environment when they have already compromised one part of it. GitLab does not yet offer this feature.
    link_description: ""
    link:
    category:
      - unknown
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: false
    gitlab_com: false
    blackduck: false
    synopsys: false
    snyk: false
    ca_veracode: false
    checkmarx: false
    ibm_appscan: false
    microfocus_fortify: false
    sonarqube: false
    sonatype_nexus_platform: false
    whitesource: false
    rapid7: false
    qualys: false
    palo-alto: true
    semmle: false

# Defend - Threat Insights: Start ---------------------------------------------

  - title: "Vulnerability Management"
    description: |
      GitLab's vulnerability management is about ensuring assets and applications are scanned for vulnerabilities.
      It also includes the processes to record, manage, and mitigate those vulnerabilities.

      Vulnerability management helps identify meaningful sets of vulnerabilities, in both your assets and application code,
      that can be mitigated, managed, and acted upon by your whole team&mdash;not just the security organization. It also
      provides a unified interface to the systems teams are already using for managing results from the ~"devops::secure" stage
      so there is always a single source of truth and single place for managing security results.

    link_description: "Learn more about Vulnerability Management"
    link: 'https://about.gitlab.com/direction/defend/vulnerability_management/'
    category:
        - vulnerability_management
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: true
    feature_page: false
    pricing_page: false
    gitlab_com: true
    rapid7: true
    azure_devops: true
    splunk: true
    gitlab_security: true

# Defend - Vulnerability Insights: End ---------------------------------------------

  - title: "Browser Performance Testing"
    description: |
      Easily detect performance regressions for web apps, prior to merging into master.
      Browser Performance Testing is included in
      Auto DevOps,
      providing automatic performance analytics of the root page with
      zero configuration.
    link_description: Learn more about Browser Performance Testing
    link: 'https://docs.gitlab.com/ee/user/project/merge_requests/browser_performance_testing.html'
    screenshot_url: 53-browser-performance.png
    category:
      - continuous_integration
      - auto_devops
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    gitlab_ci: true
    circle_ci: false
    travis_ci: false
    codefresh: false
    buildkite: false
  - title: "Automated Accessibility scanning of Review Apps"
    description: |
      Performing accessibility testing is important in order to ensure you're serving all the users who use your products. In GitLab you can generate Accessibility reports automatically prior to merging into master.
    link_description: Learn more about Autoamted Accessibility scanning
    link: 'https://docs.gitlab.com/ee/user/project/merge_requests/accessibility_testing.html'
    category:
      - continuous_integration
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    gitlab_ci: true
    circle_ci: false
    travis_ci: false
    codefresh: false
  - title: "Fast SSH Authorization"
    description: |
      Authorize SSH users via a fast, indexed lookup in the GitLab database,
      or OpenSSH certificates.
    link_description: "Learn more about Fast SSH Key Lookup"
    link: 'https://docs.gitlab.com/ee/administration/operations/fast_ssh_key_lookup.html'
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: false
  - title: "Create projects with Git push"
    description: |
      Push new projects to the desired location and a new private project will
      automatically be created.
    link_description: "Learn more about creating Projects"
    link: 'https://docs.gitlab.com/ee/gitlab-basics/create-project.html#push-to-create-a-new-project'
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    gitlab_ci: true
    github: false
    bitbucket: false
    azure_devops: false
  - title: "Step folding for CI/CD logs"
    description: |
      Collapse the job log output for each command.
    link_description: "Documentation"
    link: 'https://docs.gitlab.com/ee/ci/pipelines.html#expanding-and-collapsing-job-log-sections'
    category:
      - continuous_integration
      - continuous_delivery
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_ci: true
    travis_ci: true
    jenkins: true
    circle_ci: true
    buildkite: false
  - title: "Instant SSL with Let's Encrypt for Omnibus GitLab"
    description: "Easily enable HTTPS for your GitLab deployment with Omnibus GitLab packages."
    link_description: "Learn more about Let's Encrypt integration"
    link: 'https://docs.gitlab.com/omnibus/settings/ssl.html#let-39-s-encrypt-integration'
    category:
      - unknown
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: false
  - title: "Contribution Analytics"
    description: "View contributions per member of a group"
    link_description: "Learn more about Contribution Analytics"
    link: 'https://docs.gitlab.com/ee/user/group/contribution_analytics/index.html'
    category:
      - value_stream_management
    gitlab_core: false
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    gitprime: true
    roi_case: "Monthly developer reporting saves manager 20 mins per user / month through easy contribution reporting."
    shorthand: "contribution_analytics"
    hours_per_incident: 0.33
    incidents_per_year: 12
  - title: "Keep personal email private"
    description: |
      Use a noreply email address for your commits instead of your personal
      email address private.
    link_description: "Learn more about private commit email addresses"
    link: 'https://docs.gitlab.com/ee/user/profile/#private-commit-email'
    category:
      - source_code_management
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github: true
  - title: "Kubernetes Cluster Monitoring"
    description: |
      Monitor key metrics of your connected Kubernetes cluster.
    link_description: "Learn more about Cluster Monitoring"
    link: https://docs.gitlab.com/ee/user/project/clusters/#monitoring-your-kubernetes-cluster-ultimate
    screenshot_url: 59-cluster-monitoring.png
    category:
      - metrics
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: true
    pricing_page: true
    gitlab_com: true
    github: false
    electric_flow: false
  - title: "ChatOps"
    description: |
      Execute common actions directly from chat, with the output sent back to the channel.
    link_description: "Learn more about ChatOps"
    link: https://docs.gitlab.com/ee/ci/chatops/
    category:
      - chatops
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    pricing_page: true
    gitlab_com: true
    github: false
    electric_flow: false
  - title: "License Compliance"
    description: "Check that licenses of your dependencies are compatible with your application, and approve or blacklist them. Results are then shown in the Merge Request and in the Pipeline view."
    link_description: "Learn more about License Compliance"
    link: 'https://docs.gitlab.com/ee/user/application_security/license_compliance/'
    screenshot_url: 62-license-management.png
    category:
        - license_compliance
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: true
    pricing_page: true
    blackduck: true
    synopsys: true
    snyk: false
    ca_veracode: false
    checkmarx: false
    ibm_appscan: false
    microfocus_fortify: false
    sonarqube: false
    sonatype_nexus_platform: true
    whitesource: true
    rapid7: false
    qualys: false
    semmle: false
  - title: "CI/CD for external repo"
    description: |
      Connect your projects hosted on external services (like GitHub or Bitbucket) and leverage
      the power of GitLab CI/CD pipelines to build, test, and deploy your applications easily.
    link_description: "Learn more about CI/CD for external repositories"
    link: https://docs.gitlab.com/ee/ci/ci_cd_for_external_repos/
    screenshot_url: cicd_project.png
    category:
      - continuous_integration
      - continuous_delivery
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: true
    gitlab_ultimate: true
    buildkite: true
  - title: "CI/CD for GitHub"
    description: |
      Connect your projects hosted on GitHub and leverage
      the power of GitLab CI/CD pipelines to build, test, and deploy your applications easily.
    link_description: "Learn more about CI/CD for GitHub"
    link: /solutions/github/
    screenshot_url: cicd_project.png
    category:
      - continuous_integration
      - continuous_delivery
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: true
    gitlab_ultimate: true
    buildkite: true
  - title: "Deploy Tokens"
    description: |
      Provide read-only access to specific repositories or container images to external infrastructures
      that need to access your data, for example to deploy applications on Kubernetes. This setting is available for project and group level.
    link_description: "Learn more about Deploy Tokens"
    link: 'https://docs.gitlab.com/ee/user/project/deploy_tokens/'
    category:
        - continuous_delivery
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github: false
  - title: "Plugins"
    description: |
      Plugins allow you to respond to the event with a script stored on the
      GitLab server, so you don't need to build your own web server to listen
      to GitLab events and then call GitLab back over the API.
    link_description: "Learn more about Plugins"
    link: https://docs.gitlab.com/ee/administration/plugins.html
    category:
      - pages
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: false
  - title: "Project badges"
    description: |
      First-class support for badges that are commonly added to a Project's
      README, so that they are shown with the project description.
    link_description: "Learn more about Project badges"
    link: https://docs.gitlab.com/ee/user/project/badges.html
    category:
      - source_code_management
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
  - title: "Enforce accepting terms of service"
    description: |
      Enforce your users accepting new terms of service by blocking GitLab traffic.
    link_description: "Learn more about Enforce accepting terms of service"
    link: https://docs.gitlab.com/ee/user/admin_area/settings/terms.html
    category:
      - authentication_and_authorization
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: false
  - title: "SAML SSO for Groups"
    description: "Connect a group in GitLab to a SAML identity provider to manage authentication."
    link_description: "Learn more about LDAP group synchronization"
    link: https://docs.gitlab.com/ee/user/group/saml_sso/
    category:
      - authentication_and_authorization
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: false
    gitlab_free: false
    gitlab_bronze: false
    gitlab_silver: true
    gitlab_gold: true
    github: true
    bitbucket: 'partially'
  - title: "View Kubernetes pod logs"
    description: "The monitoring of servers, application, network and security devices via generated log files to identify errors and problems for analysis. GitLab makes it easy to view the logs of running pods in connected Kubernetes clusters. By displaying the logs directly in GitLab, developers can avoid having to manage console tools or jump to a different interface."
    link_description: "Learn more about viewing Kubernetes pod logs"
    link: https://docs.gitlab.com/ee/user/project/clusters/kubernetes_pod_logs.html
    screenshot_url: 60-pod-logs.png
    category:
      - kubernetes_management
      - logging
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: true
    pricing_page: true
    gitlab_com: true
    github: false
    bitbucket: false
    gogs: false
    gitlab_ci: true
    travis_ci: false
    jenkins: false
    teamcity: false
    circle_ci: false
    codestar: true
  - title: "Supports geolocation-aware DNS"
    description: "Having Geo replicated server(s) can make local pulls go more quickly, but without support for Geolocation-aware DNS, developers need to reconfigure their tools manually to point to their nearest geo replicated server. Users using Geolocation-aware DNS can be transparently directed to the closest server available and can access repository data faster."
    link_description: "Learn more about GitLab Geo"
    link: "https://docs.gitlab.com/ee/administration/geo/replication/"
    category:
      - source_code_management
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: false
    github: true
  - title: "Advanced global search installed as default search"
    description: "Advanced global search via ElasticSearch is installed and enabled as part of the core installation and provides the default search capability"
    link_description: "Learn more about GitLab search"
    link: "https://docs.gitlab.com/ee/user/search/"
    category:
      - global_search
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: false
    gitlab_com: false
    github: true
  - title: "Mercurial repository hosting"
    description: "Hosts Mercurial DVCS repositories."
    link_description: "See the GitLab issue to implement this"
    link: https://gitlab.com/gitlab-org/gitlab-foss/issues/31600
    category:
      - source_code_management
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: false
    gitlab_com: false
    bitbucket: true
  - title: "Groups dropdown in navigation"
    description: "Searching for a group is directly available behind a lightweight dropdown menu, removing the need to navigate away from your work into a separate view when you’re looking for a hard-to-remember group."
    link_description: "Learn more about Groups"
    link: "https://docs.gitlab.com/ee/user/group/"
    screenshot_url: groups-dropdown.png
    category:
      - source_code_management
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github: false
  - title: "GitLab Flavored Markdown with CommonMark"
    description: "GitLab Flavored Markdown is now rendered using CommonMark, a modern standard, for new Markdown content."
    link_description: "Learn more about GitLab Flavored Markdown"
    link: "https://docs.gitlab.com/ee/user/markdown.html"
    category:
      - issue_trackers
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github: false
  - title: "Initialize README on project creation"
    description: "A repository can be initialized with an example README when creating a new project. If this option is checked, a project repository is initialized with a default master branch which can be cloned right away."
    link_description: "Learn more about Project creation"
    link: "https://docs.gitlab.com/ee/gitlab-basics/create-project.html"
    screenshot_url:
    category:
      - source_code_management
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github: true
  - title: "Allow SAML assurance level to bypass 2FA"
    description: "it is now possible to honor the SAML provider's assurance level, allowing to disable the two-factor authentication on GitLab side via a new SAML configuration option"
    link_description: "Learn more about SAML OmniAuth Provider"
    link: "https://docs.gitlab.com/ee/integration/saml.html#bypass-two-factor-authentication"
    category:
      - authentication_and_authorization
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github: false
  - title: "Restrict access by IP address"
    description: "Restrict access at the group level to incoming traffic adhering to an IP address subnet, keeping your code secure."
    link_description: "Learn more about restricting access by IP address"
    link: https://docs.gitlab.com/ee/user/group/#ip-access-restriction-ultimate-only
    category:
      - authentication_and_authorization
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: true
    gitlab_com: true
    bitbucket: true
    github_com: false
  - title: "Enforced Two-factor Authentication (2FA)"
    description: "Two-factor authentication secures your account by requiring a second confirmation, in addition to your password. That second step means your account stays secure even if your password is compromised. The ability to enforce 2FA provides further security by making sure all users are using it."
    link_description: "Learn more about Enforced GitLab 2FA"
    link: https://docs.gitlab.com/ee/security/two_factor_authentication.html
    category:
      - authentication_and_authorization
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github: true
    bitbucket: 'partially'
    electric_flow: false
  - title: "IP Whitelisting"
    description: "IP Whitelisting defines safe IP network addresses from which clients can access and interact with the repository server. This helps prevent unwanted third parties from accessing your account even if they have acquired a team member’s email address and password."
    link_description: "See the GitLab issue to implement this"
    link: https://gitlab.com/gitlab-org/gitlab/issues/1985
    category:
      - source_code_management
      - authentication_and_authorization
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: true
    gitlab_free: false
    gitlab_bronze: false
    gitlab_silver: false
    gitlab_gold: true
    bitbucket: true
    electric_flow: false
  - title: "Manage third party offers"
    description: "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"
    link_description: "Learn more about Third party offers"
    link: "https://docs.gitlab.com/ee/user/admin_area/settings/third_party_offers.html"
    screenshot_url: third-party-offers.png
    category:
      - source_code_management
    gitlab_core: false
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github: false
  - title: "Bad test quarantine"
    description: "Don't let red builds become the norm. Across all tests, keep flaky or broken tests out of sight (but not out of mind), and keep the build green with one-click quarantine of tests."
    link_description: "Read more on the issue"
    link: "https://gitlab.com/gitlab-org/gitlab-foss/issues/52908"
    category:
      - continuous_integration
      - unit_testing
      - integration_testing
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: false
    gitlab_com: false
    bamboo: true
    buildkite: true
  - title: "See JUnit test summaries in merge request widget"
    description: "GitLab allows you to view JUnit test results from the merge request widget, giving you insight into quality impacts of your changes."
    link_description: "Learn more about JUnit test summaries in the merge request widget"
    link: "https://docs.gitlab.com/ee/ci/junit_test_reports.html"
    screenshot_url: junit-test-summaries-MR-widget.png
    category:
      - continuous_integration
      - unit_testing
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github: true
    buildkite: false
  - title: "User status message"
    description: "Define and show your personal status message via an Emoji and text message, exposed on your profile page and on any comment and author line."
    link_description: "Learn more about Status messages"
    link: "https://docs.gitlab.com/ee/user/profile/#current-status/"
    screenshot_url: status-messages-profile.png
    category:
      - issue_trackers
      - source_code_management
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github: true
    redmine: partially
  - title: "Private profile page"
    description: "In certain situations, when privacy is of concern, users might not want to show their
      activity, contributions and personal projects. Activity-related information can be disabled in the
      profile settings."
    link_description: "Learn more about Private profiles"
    link: "https://docs.gitlab.com/ee/user/profile/#private-profile/"
    screenshot_url: private-profile.png
    category:
      - source_code_management
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github: false
  - title: "Download single repository files"
    description: "When browsing through project repositories on GitLab, having direct access to single files is a relevant use case. A 'Download' button in the file viewer allows you to download individual files from the GitLab UI."
    link_description: "Learn more about Project repositories"
    link: "https://docs.gitlab.com/ee/user/project/repository/"
    screenshot_url: download-single-files.png
    category:
      - source_code_management
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github: true
  - title: "Domain Specific Language"
    description: "A Domain Specific Language (DSL) for defining infrastructure configuration allows thinking in resources, not files or commands to write declarative rather then procedural code."
    # link_description: ""
    # link: ''
    category:
      - unknown
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: false
    puppet: true
    chef: false
    electric_flow: true
  - title: "Automated Provisioning"
    description: "Find, discover, and manage bare metal and VM servers. Provision using defined polices automatically installing the correct OS or hypervisors, based on the information discovered in your environment."
    # link_description: ""
    # link: 'https://docs.gitlab.com/ee/topics/git/index.html'
    category:
      - unknown
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: false
    puppet: true
    chef: true
  - title: "Infrastructure Orchestration"
    description: "Model complex infrastructures and the dependencies between distributed services and systems that make up an application or application stack using infrastructure as code. The infrastructure orchestrator uses the model to manage deployment ensuring the right services are available, at the right time, with the right information."
    # link_description: ""
    # link: 'https://docs.gitlab.com/ee/topics/git/index.html'
    category:
      - unknown
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: false
    puppet: true
    chef: true
  - title: "Configuration Modeling"
    description: "CM modeling is the concept to consolidate the interactions between IT service assets, configuration items and infrastructure.  Shows the interaction and relationship of services, infrastructure, and assets with each other,  it will ease to find the root cause of an incident and problem."
    # link_description: ""
    # link: 'https://docs.gitlab.com/ee/topics/git/index.html'
    category:
      - configuration
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    puppet: true
    chef: true
    saltstack: true
    ansible: true
    awsopsworks: true
  - title: "Configuration Automation"
    description: "Configure Management automation is used to make the server reach a desirable state, previously defined by provisioning scripts using a tool's specific language and features ensuring that every system you’re responsible for is configured accurately and consistently."
    # link_description: ""
    # link: 'https://docs.gitlab.com/ee/topics/git/index.html'
    category:
      - configuration
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    puppet: true
    chef: true
    saltstack: true
    ansible: true
    awsopsworks: true
  - title: "Configure Monitoring"
    description: "CM monitoring includes the process of recording and reporting configuration item descriptions (e.g., hardware, software, firmware, etc.) and all departures from the baseline during design and production. In the event of discovered problems, the verification of baseline configuration and approved modifications can be quickly determined."
    # link_description: ""
    # link: 'https://docs.gitlab.com/ee/topics/git/index.html'
    category:
      - configuration
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    puppet: true
    chef: true
    saltstack: true
    ansible: true
    awsopsworks: true
  - title: "Configure Governance"
    description: "CM governance is a review that assesses compliance with established performance requirements, commercial and appropriate government standards, and functional, allocated, and product baselines. Configuration governance confirm that the system and subsystem configuration documentation complies with the functional and physical performance characteristics before acceptance into an architectural baseline."
    # link_description: ""
    # link: 'https://docs.gitlab.com/ee/topics/git/index.html'
    category:
      - configuration
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: false
    gitlab_com: partially
    puppet: true
    chef: true
    saltstack: partially
    ansible: partially
    awsopsworks: partially
  - title: "Repository languages on project overview"
    description: "A code languages bar on the project overview shows all relevant languages the GitLab repository consists of, including relative quantity."
    link_description: "Learn more about Projects"
    link: "https://docs.gitlab.com/ee/user/project/"
    screenshot_url: repository-languages.png
    category:
      - source_code_management
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github: true
  - title: "Interactive Web Terminals"
    description: "Interactive web terminals allow you to connect to a running or completed Kubernetes,
    Docker, or Shell runner job and manually run commands to better understand what's happening in the system."
    link_description: "Learn more about Interactive Web Terminals"
    link: "https://docs.gitlab.com/ee/ci/interactive_web_terminal/"
    screenshot_url: verify-webterm.png
    category:
      - continuous_integration
      - continuous_delivery
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github: false
    buildkite: false
  - title: "Instance file templates"
    description: |
      Define custom `LICENSE`, `.gitignore`, `Dockerfile` and `.gitlab-ci.yml`
      templates for your GitLab instance to make consistency easier.
    link_description: "Learn more about custom instance file templates"
    link: "https://docs.gitlab.com/ee/user/admin_area/settings/instance_template_repository.html"
    category:
       - source_code_management
       - continuous_integration
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: false
    github: false
  - title: "Group file templates"
    description: |
      Define custom `LICENSE`, `.gitignore`, `Dockerfile` and `.gitlab-ci.yml`
      templates for a Group to make consistency easier.
    link_description: "Learn more about custom group file templates"
    link: "https://docs.gitlab.com/ee/user/group/#group-file-templates-premium"
    category:
       - source_code_management
       - continuous_integration
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github: false
  - title: "Code Owners"
    description: |
      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, can be set as required and
      shown when viewing files.
    link_description: "Learn more about Code Owners"
    link: "https://docs.gitlab.com/ee/user/project/code_owners.html"
    category:
      - source_code_management
      - code_review
    gitlab_core: false
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github: true
    gerrit: true
    crucible: false
  - title: "Protected Environments"
    description: |
      Specify which person, group, or account is allowed to deploy to a given
      environment, allowing further protection and safety of sensitive environments.
    link_description: "Learn more about Protected Environments"
    link: "https://docs.gitlab.com/ee/ci/environments/protected_environments.html"
    screenshot_url: protected-environments.png
    category:
      - release_orchestration
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github: false
  - title: "Leverage virtual package repositories to simplify package management workflows."
    description: "A virtual repository is a collection of local, remote and other virtual repositories accessed through a single logical URL."
    link_description: "GitLab Epic detailing the issues required to add this functionality."
    link: https://gitlab.com/groups/gitlab-org/-/epics/2614
    category:
      - package_registry
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: false
    gitlab_com: true
    github: false
    bitbucket_org: false
    bitbucket_data_center: false
    gogs: false
    codefresh: false
    sonatype_nexus_repo: true
    jfrog_artifactory: true
    roi_case: ""
    shortand:
    hours_per_incident:
    incidents_per_year:
  - title: "Proxy remote package registries for safer, more reliable builds."
    description: |
      For many organizations, it is useful to have a caching proxy for frequently
      used upstream packages. In the case of CI/CD, the proxy is responsible
      for receiving a request and returning the upstream package from a registry,
      acting as a pull-through cache to speed up your pipelines.
    link_description: "Learn more about the Dependency Proxy"
    link: https://docs.gitlab.com/ee/user/group/dependency_proxy/
    category:
      - dependency_proxy
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: false
    gitlab_com: true
    github: false
    bitbucket_org: false
    bitbucket_data_center: false
    gogs: false
    codefresh: false
    sonatype_nexus_repo: true
    jfrog_artifactory: true
    roi_case: ""
    shortand:
    hours_per_incident:
    incidents_per_year:
  - title: "Conan (C/C++) Repository"
    description: "Conan is an open source, decentralized and multi-platform C/C++ Package Manager for developers to create and share native binaries."
    link_description: "Documentation on the Conan Repository"
    link: https://docs.gitlab.com/ee/user/packages/conan_repository/
    screenshot_url: 65-conan-repository.png
    category:
      - package_registry
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github: false
    bitbucket_org: false
    bitbucket_data_center: false
    gogs: false
    codefresh: false
    sonatype_nexus_repo: true
    jfrog_artifactory: true
    roi_case: ""
    shortand:
    hours_per_incident:
    incidents_per_year:
  - title: "Maven (Java) Repository"
    description: "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."
    link_description: "Documentation on the Maven Repository"
    link: https://docs.gitlab.com/ee/user/project/packages/maven_repository.html
    screenshot_url: 64-maven.png
    category:
      - package_registry
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github: true
    bitbucket_org: false
    bitbucket_data_center: false
    gogs: false
    codefresh: false
    sonatype_nexus_repo: true
    jfrog_artifactory: true
    roi_case: ""
    shortand:
    hours_per_incident:
    incidents_per_year:
  - title: "NPM (node) Registry"
    description: "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."
    link_description: "Documentation on the NPM Registry"
    link: https://docs.gitlab.com/ee/user/project/packages/npm_registry.html
    screenshot_url: npm_package_view.png
    category:
      - package_registry
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github: true
    bitbucket_org: false
    bitbucket_data_center: false
    gogs: false
    codefresh: false
    sonatype_nexus_repo: true
    jfrog_artifactory: true
    roi_case: ""
    shortand:
    hours_per_incident:
    incidents_per_year:
  - title: "NuGet (.NET) Repository"
    description: "GitLab's NuGet Repository allows C#/.NET developers to create, publish and share packages using the NuGet client or visual studio."
    link_description: "Documentation on the NuGet Repository"
    link: https://docs.gitlab.com/ee/user/packages/nuget_repository/
    screenshot_url: 67-nuget_repository.png
    category:
      - package_registry
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github: true
    bitbucket_org: false
    bitbucket_data_center: false
    gogs: false
    codefresh: false
    sonatype_nexus_repo: true
    jfrog_artifactory: true
    roi_case: ""
    shortand:
    hours_per_incident:
    incidents_per_year:
  - title: "PyPI (Python) Repository"
    description: "This planned feature will enable Python developers to setup GitLab as a remote PyPI repository and to build, publish and share packages using the PyPI client or GitLab CI/CD."
    link_description: "Check out the epic for additional details on implementation and timing"
    link: https://gitlab.com/groups/gitlab-org/-/epics/2554
    category:
      - package_registry
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: false
    gitlab_com: false
    github: false
    bitbucket_org: false
    bitbucket_data_center: false
    gogs: false
    codefresh: false
    sonatype_nexus_repo: true
    jfrog_artifactory: true
    roi_case: ""
    shortand:
    hours_per_incident:
    incidents_per_year:
  - title: "RPM (Linux) Repository"
    description: "This planned feature will enable Linux developers to build, publish and share RPM packages alongside their source code and pipelines."
    link_description: "Check out the issue for additional details on implementation and timing"
    link: https://gitlab.com/gitlab-org/gitlab/issues/5932
    category:
      - package_registry
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: false
    gitlab_com: false
    github: false
    bitbucket_org: false
    bitbucket_data_center: false
    gogs: false
    codefresh: false
    sonatype_nexus_repo: true
    jfrog_artifactory: true
    roi_case: ""
    shortand:
    hours_per_incident:
    incidents_per_year:
  - title: "Debian (Linux) Repository"
    description: "This planned feature will enable Linux developers to build, publish and share Debian packages alongside their source code and pipelines."
    link_description: "Check out the issue for additional details on implementation and timing"
    link: https://gitlab.com/gitlab-org/gitlab/issues/5835
    category:
      - package_registry
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: false
    gitlab_com: false
    github: false
    bitbucket_org: false
    bitbucket_data_center: false
    gogs: false
    codefresh: false
    sonatype_nexus_repo: true
    jfrog_artifactory: true
    roi_case: ""
    shortand:
    hours_per_incident:
    incidents_per_year:
  - title: "RubyGems (Ruby) Repository"
    description: "This planned feature will enable Ruby developers to setup GitLab as a remote RubyGems repository and to build, publish and share packages using the command line or GitLab CI/CD. This will also be a valuable feature for GitLab and help with [dogfooding](https://about.gitlab.com/handbook/values/#dogfooding)"
    link_description: "Check out the issue for additional details on implementation and timing"
    link: https://gitlab.com/gitlab-org/gitlab/issues/803
    category:
      - package_registry
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: false
    gitlab_com: false
    github: true
    bitbucket_org: false
    bitbucket_data_center: false
    gogs: false
    codefresh: false
    sonatype_nexus_repo: true
    jfrog_artifactory: true
    roi_case: ""
    shortand:
    hours_per_incident:
    incidents_per_year:
  - title: "Go Repository"
    description: "This planned feature will enable Go developers to build, publish and share their packages right alongside their source code and pipelines. This will also be a valuable feature for GitLab and help with [dogfooding](https://about.gitlab.com/handbook/values/#dogfooding)"
    link_description: "Check out the issue for additional details on implementation and timing"
    link: https://gitlab.com/gitlab-org/gitlab/issues/9773
    category:
      - package_registry
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: false
    gitlab_com: false
    github: true
    bitbucket_org: false
    bitbucket_data_center: false
    gogs: false
    codefresh: false
    sonatype_nexus_repo: true
    jfrog_artifactory: true
    roi_case: ""
    shortand:
    hours_per_incident:
    incidents_per_year:
  - title: "Composer (PHP) Repository"
    description: "This planned feature will enable PHP developers to build, publish and share their packages right alongside their source code and pipelines."
    link_description: "Check out the issue for additional details on implementation and timing"
    link: https://gitlab.com/gitlab-org/gitlab/issues/15886
    category:
      - package_registry
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: false
    gitlab_com: false
    github: true
    bitbucket_org: false
    bitbucket_data_center: false
    gogs: false
    codefresh: false
    sonatype_nexus_repo: true
    jfrog_artifactory: true
    roi_case: ""
    shortand:
    hours_per_incident:
    incidents_per_year:

  - title: "Use the Package Registry through REST API"
    description: "Enables support for automation and integration of the GitLab Package Registry through a REST API."
    link_description: "Documentation on API"
    link: https://docs.gitlab.com/ee/api/packages.html
    screenshot_url: 66-package-registry-api.png
    category:
      - package_registry
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github: true
    bitbucket_org: false
    bitbucket_data_center: false
    gogs: false
    codefresh: false
    sonatype_nexus_repo: true
    jfrog_artifactory: true
    roi_case: ""
    shortand:
    hours_per_incident:
    incidents_per_year:
  - title: "Package debugging with an integrated web terminal"
    description: "Easily debug your packages 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."
    link_description: "Learn more about the web terminal"
    link: 'https://docs.gitlab.com/ee/ci/environments.html#web-terminals'
    category:
        - package_registry
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: true
    gitlab_ultimate: true
    jfrog_artifactory: false
    roi_case: ""
    shortand:
    hours_per_incident:
    incidents_per_year:
  - title: "Run jobs only when there are changes to a file or path"
    description: |
      Jobs can be configured to run only when there are changes to a specific
      file or path, giving you control over execution to allow for more
      complex build pipelines optimized for the changes in each commit.
    link_description: "Learn more about Only/Except for changes"
    link: "https://docs.gitlab.com/ee/ci/yaml/#changes"
    solution: Verify
    category:
      - continuous_integration
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github_com: true
    github_enterprise: true
    buildkite: true
  - title: "Directed acylic graph mode for pipelines"
    description: |
      A directed acyclic graph can be used in the context of a CI/CD pipeline to
      build relationships between jobs such that execution is performed in the
      quickest possible manner, regardless how stages may be set up.

      For example, you may have a specific tool or separate website that is
      built as part of your main project. Using a DAG, you can specify the
      relationship between these jobs and GitLab will then execute the jobs
      as soon as possible instead of waiting for each stage to complete.
    link_description: "Learn more about the GitLab DAG"
    link: "https://docs.gitlab.com/ee/ci/directed_acyclic_graph/"
    solution: Verify
    category:
      - continuous_integration
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github_com: false
    github_enterprise: false
  - title: "Run jobs only/except in the context of a merge request"
    description: |
      Using the `merge_requests` value with `only/except` keywords allows
      you to configure jobs to run only (or except) when in the context of a merge request.
      This allows finer control over pipeline behavior, and also allows access to new
      environment variables indicating the target branch and merge request ID when
      relevant, offering opportunities for implementation of other more advanced behaviors.
    link_description: "Learn more about only/except for merge requests"
    link: "https://docs.gitlab.com/ee/ci/merge_request_pipelines/index.html"
    solution: Verify
    category:
      - continuous_integration
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github_com: false
    github_enterprise: false
  - title: "Windows Container Executor"
    description: |
        With this feature you are able to use Docker containers on Windows directly,
        in much the same was as if they were on Linux hosts. This enables more
        advanced kinds of pipeline orchestration and management for users of
        Microsoft platforms.
    link_description: "Learn more about the Windows Container Executor"
    link: "https://docs.gitlab.com/runner/executors/docker.html#using-windows-containers"
    solution: Verify
    category:
      - continuous_integration
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github_com: false
    github_enterprise: false
    gitlab_ci: true
    travis_ci: false
    jenkins: true
    circle_ci: false
    codestar: false
    buildkite: true
  - title: "Visual Reviews"
    description: |
      Visual Review allow users to give feedback on a proposed change in a Merge Request directly from the Review App itself.
      This feature enables designers, Product Managers, and other stakeholders to comment on the changes to the look and feel
      / user experience of a change just as easily and quickly as developers working in the MR.
    link_description: "Learn more about Visual Reviews"
    link: "https://docs.gitlab.com/ee/ci/review_apps/index.html#visual-reviews-starter"
    screenshot_url: visual-review-apps.png
    solution: Verify
    category:
      - usability_testing
    gitlab_core: false
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github_com: false
    github_enterprise: false
    gitlab_ci: true
    travis_ci: false
    jenkins: false
    circle_ci: false
    codestar: false
  - title: "Pipeline deletion"
    description: |
      Deleting a pipeline is possible using the API and also in the UI on the Pipeline Details page. This allows for cases where perhaps
      secrets have been leaked in a pipeline, many unneeded pipelines have been created, or
      other issues have occurred where pipelines need to be deleted.
    link_description: "Learn more about only/except for merge requests"
    link: "https://docs.gitlab.com/ee/api/pipelines.html#delete-a-pipeline"
    solution: Verify
    category:
      - continuous_integration
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github_com: false
    github_enterprise: false
    buildkite: true
  - title: "Feature Flags"
    description: |
      This feature gives you the ability to configure, audit, 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
      via the feature flag within GitLab itself. Feature Flag strategies can be set per environment . GitLab Feature Flags includes an
      API for interacting with them.
    link_description: "Learn more about Feature Flags"
    link: "https://docs.gitlab.com/ee/user/project/operations/feature_flags.html"
    screenshot_url: feature_flags.png
    solution: Release
    category:
      - feature_flags
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github_com: false
    github_enterprise: false
    launchdarkly: true
  - title: "Percentage Rollout Strategy for Feature Flags"
    description: |
      You can select "Percentage Rollout" as a rollout strategy for your feature flags. Percentage Rollout allows percentages to be set individually for each environment and each flag. When Percentage rollout is configured and the flag is enabled, the feature will be shown to the configured percentage of logged-in users. This allows you to do controlled rollouts, monitoring the behavior of the target environment to ensure the results are as expected.
    link_description: "Learn more about Percentage Rollout for Feature Flags"
    link: "https://docs.gitlab.com/ee/user/project/operations/feature_flags.html#rollout-strategy"
    screenshot_url: feature_flags_percent_rollout.png
    solution: Release
    category:
      - feature_flags
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github_com: false
    github_enterprise: false
    launchdarkly: true
  - title: "UserID Rollout Strategy for Feature Flags"
    description: |
      You can choose "User ID" as a rollout strategy for your feature flags. The User ID strategy allows you to specify a comma-separated list of User IDs and then toggle a feature flag only for the specified users. This can allow you to target testing features with specific cohorts or segments of your userbase.
    link_description: "Learn more about UserID Rollout for Feature Flags"
    link: "https://docs.gitlab.com/ee/user/project/operations/feature_flags.html#target-users"
    screenshot_url: feature_flags_user_ids.png
    solution: Release
    category:
      - feature_flags
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github_com: false
    github_enterprise: false
    launchdarkly: true
  - title: "Official GitLab container with AWS client installed"
    description: |
      An official GitLab AWS docker image that will allow users to easily run aws commands directly from their pipelines.
    link_description: "Learn more about cloud deployment"
    link: "https://docs.gitlab.com/ee/ci/cloud_deployment/index.html"
    solution: Release
    category:
      - continuous delivery
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github_com: true
    github_enterprise: true
  - title: "Allow only forward deployments"
    description: |
      Forward deployments ensure that when a pipeline runs, it is verified to be the most recent deployment and makes sure that an older pipeline doesn’t override a newer one.
    link_description: "Learn more about forward deployments"
    link: "https://docs.gitlab.com/ee/ci/pipelines/settings.html#skip-older-pending-deployment-jobs"
    solution: Release
    category:
      - continuous delivery
  - title: "Git protocol v2 support"
    description: |
      Git's wire protocol defines how clones, fetches and pushes are
      communicated between the client and server. Git protocol v2 improves
      performance of fetch commands and enables future protocol improvements.
    link_description: "Learn more about Git protocol v2"
    link: "https://docs.gitlab.com/ee/administration/git_protocol.html"
    solution: create
    category:
      - source_code_management
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github_com: false
    github_enterprise: false
    bitbucket: false
    gitea: false
    gogs: false
    gerrit: false
    tfs_vsts: false
  - title: "Merge request reviews"
    description: |
      Draft multiple comments in a merge request code review, before reviewing
      and submitting them together all at once. This allows you to review code
      in consistent, and self-contained sessions, instead of as individual
      comments.
    link_description: "Learn more about batch comments in merge requests"
    link: 'https://docs.gitlab.com/ee/user/discussions/index.html#merge-request-reviews-premium'
    screenshot_url: batch-comments.png
    solution: create
    category:
        - source_code_management
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: true
    gitlab_ultimate: true
  - title: "Define multiple pipelines per repo"
    description: "While GitLab has multi-project pipelines that give you a view across projects, each pipeline definition lives in a YAML file tied to a specific project. Today, GitLab lacks the ability to define multiple pipelines in a single YAML file."
    link_description: "Read more on the issue"
    link: https://gitlab.com/gitlab-org/gitlab-foss/issues/22972
    category:
      - continuous_integration
      - continuous_delivery
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: false
    gitlab_com: false
    codefresh: true
    buildkite: true
  - title: "Explicit support for monorepos"
    description: "The ability to execute jobs only/except when there are changes for a given path or file support monorepos where many microservices are contained in a single repo."
    link_description: "Learn more about only/except CI/CD execution"
    link: https://docs.gitlab.com/ee/ci/yaml/#only-and-except-simplified
    category:
      - continuous_integration
      - continuous_delivery
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    codefresh: true
    buildkite: true
  - title: "Global Docker registry browser"
    description: "A single UI view into images across multiple repositories."
    category:
      - container_registry
    link_description: "Read more on the issue"
    link: https://gitlab.com/gitlab-org/gitlab/issues/23315
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: false
    gitlab_com: false
    codefresh: true
  - title: "Group-level Kubernetes cluster configuration"
    description: "A single UI view into Kubernetes cluster configuration for groups."
    category:
      - kubernetes_management
    link_description: "Read more on the issue"
    link: https://gitlab.com/gitlab-org/gitlab-foss/issues/34758
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    codefresh: true
  - title: "Instance-level Kubernetes cluster configuration"
    description: "A single UI view into Kubernetes cluster configuration for a GitLab instance."
    category:
      - kubernetes_management
    link_description: "Read more on the issue"
    link: https://gitlab.com/gitlab-org/gitlab-foss/issues/39840
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: false
    codefresh: true
  - title: "First class container building"
    description: "The ability to specify that a container should be built during a CI/CD job without needing to specify the implementation details."
    category:
      - kubernetes_management
      - continuous_integration
      - continuous_delivery
    link_description: "Read more on the issue"
    link: https://gitlab.com/gitlab-org/gitlab-foss/issues/48913
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: false
    gitlab_com: false
    codefresh: true
    buildkite: true
  - title: "Code review dashboards"
    description: "Dashboards with a filterable set of code reviews (could be by project, by user, by branch, by status, or a combination of those). Dashboards includes code review status and links to get to them. This makes it easy to see what is going on with code reviews for a desired subset."
    category:
      - code_review
    link_description: "Code review with GitLab"
    link: https://about.gitlab.com/blog/2017/03/17/demo-mastering-code-review-with-gitlab/
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: false
    gitlab_com: false
    gerrit: true
    crucible: true
    gitprime: true
  - title: "Contributor agreements"
    description: "Users can be required to sign one or more contributor agreements before being able to submit a change in a project."
    category:
      - code_review
      - source_code_management
    link_description: "Read more on the issue"
    link: https://gitlab.com/gitlab-org/gitlab-foss/issues/22103
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: false
    gitlab_com: false
    gerrit: true
    crucible: false
  - title: "Robot comments"
    description: "Support for inline comments that are generated by automated third-party systems, for example robot comments can be used to represent the results of code analyzers."
    category:
      - code_review
    link_description: "GitLab merge requests store results"
    link: https://docs.gitlab.com/ee/user/project/merge_requests/
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: false
    gitlab_com: false
    gerrit: true
    crucible: false
  - title: "Works with multiple repository types"
    description: "Supports more than one repository type, such as Git, Subversion, Perforce, CVS, Mercurial."
    category:
      - code_review
    link_description: "Learn about migrating from other SCMs"
    link: https://docs.gitlab.com/ee/user/project/import/
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: false
    gitlab_com: false
    gerrit: false
    crucible: true
  - title: "Allow/deny merge based on votes"
    description: "Allow or deny a merge based on vote tally from reviewers. Provides more flexibility in determining whether to merge changes or not."
    category:
      - code_review
    link_description: "Read more on the issue"
    link: https://gitlab.com/gitlab-org/gitlab/issues/761
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: false
    gitlab_com: false
    gerrit: true
  - title: "Tracing"
    description: "Tracing provides insight into the performance and health of a deployed application, tracking each function or microservice which handles a given request. This makes it easy to understand the end-to-end flow of a request, regardless of whether you are using a monolithic or distributed system."
    solution: monitor
    category:
      - tracing
    link_description: "Learn more about Tracing"
    link: https://docs.gitlab.com/ee/user/project/operations/tracing.html
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: partially
    gitlab_com: partially
    new_relic: true
    nagios: false
    datadog: true
    microfocus_APM: partially
    ibm_apm: partially
    broadcom_apm: true
    dynatrace: true
    azuremonitor: false
  - title: "Suggest changes"
    description: |
      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.
    solution: create
    category:
      - code_review
    link_description: "Learn more about suggesting a change"
    link: https://docs.gitlab.com/ee/user/discussions/index.html#suggest-changes
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
  - title: "Smart card support"
    description: |
      Authenticate into GitLab using a smart card with a compliant X.509
      certificate.
    solution: manage
    category:
      - authentication_and_authorization
    link_description: "Learn more about smart card support"
    link: https://docs.gitlab.com/ee/administration/auth/smartcard.html
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: false
  - title: "Group-level kubernetes clusters"
    description: |
      Create group-level Kubernetes cluster that can be used for all
      projects contained within the group or sub-groups.
    link_description: "Learn more about group-level clusters"
    link: "https://docs.gitlab.com/ee/user/group/clusters/"
    screenshot_url: group-clusters.png
    category:
      - kubernetes_management
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    codefresh: true
  - title: "Serverless"
    description: |
      Easily define functions in your repository and have them served and managed by Knative.
    link_description: "Learn more about Serverless"
    link: "https://docs.gitlab.com/ee/user/project/clusters/serverless/"
    screenshot_url: serverless.png
    category:
      - serverless
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
  - title: "OpenFaas support"
    description: |
      Use any of the 6 supported languages to write your GitLab Managed Serverless functions.
    link_description: "Learn more about OpenFaas runtimes support in GitLab"
    link: "https://docs.gitlab.com/ee/user/project/clusters/serverless/"
    screenshot_url: openfaas_logo.png
    category:
      - serverless
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
  - title: "Error tracking"
    description: |
      View Sentry errors directly within GitLab.
    link_description: "Learn more about error tracking"
    link: "https://docs.gitlab.com/ee/user/project/operations/error_tracking.html"
    screenshot_url: error-tracking.png
    category:
      - error_tracking
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
  - title: "Automated solutions for vulnerabilities"
    description: |
      Download and apply a patch to fix vulnerabilities affecting your codebase.
    link_description: "Learn more about automated solutions for vulnerabilities"
    link: "https://docs.gitlab.com/ee/user/application_security/index.html#solutions-for-vulnerabilities-auto-remediation"
    screenshot_url: images/feature_page/screenshots/auto-patch.png
    category:
      - dependency_scanning
      - container_scanning
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: true
    gitlab_com: true
  - title: "Serverless Monitoring"
    description: |
      Monitor the scale and usage of your serverless functions and applications.
    link_description: "Learn more about Serverless monitoring"
    link: "https://docs.gitlab.com/ee/user/project/clusters/serverless/"
    screenshot_url: serverless-monitoring.png
    category:
      - serverless
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
  - title: "Deduplicate Git objects for forked repositories"
    description: "Reduce disk storage requirements for fork networks by pooling Git objects."
    link_description: "Read about object pools"
    link: https://docs.gitlab.com/ee/administration/repository_storage_types.html#hashed-object-pools
    category:
        - source_code_management
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    azure_devops: false
    github: true
    bitbucket_org: false
    bitbucket_data_center: true
  - title: "Dependency Proxy for Container Registry"
    description: |
      For many organizations, it is useful to have a caching proxy for frequently
      used upstream images/packages. In the case of CI/CD, the proxy is responsible
      for receiving a request and returning the upstream image from a registry,
      acting as a pull-through cache to speed up your pipelines. By keeping a copy
      of needed container layers locally, you can improve performance
      particularly for commonly used images, such as build environments.
    link_description: "Learn more about the Dependency Proxy"
    link: https://docs.gitlab.com/ee/user/group/dependency_proxy/
    solution: package
    category: dependency_proxy
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: true
    gitlab_com: true
    github_com: false
    github_enterprise: false
    bitbucket_org: false
    bitbucket_data_center: false
  - title: "Dependency Firewall"
    description: |
      For organizations that rely on many open source dependencies, it is important to
      limit their exposure to open source security vulnerabilities. This can be
      done by establishing and enforcing policies to restrict which dependencies
      may be used, by having a central location to verify the integrity of
      dependencies and how they are being utilized.
    link_description: "Learn more about Dependency Firewall"
    link: https://about.gitlab.com/direction/package/dependency_firewall/
    solution: package
    category: dependency_firewall
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: false
    gitlab_com: false
    github_com: false
    github_enterprise: false
    bitbucket_org: false
    bitbucket_data_center: false
  - title: "Pipelines for Merge Requests"
    description: |
      Specify when you want jobs to run only when they are in a pipeline associated with a Merge Request. Make         your pipelines more efficient by running only the neccessary jobs for Merge Requests.
    link_description: "Learn more about Pipelines for Merge Requests"
    link: https://docs.gitlab.com/ee/ci/merge_request_pipelines/
    solution: release
    category: merge_trains
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github_com: false
    github_enterprise: false
    bitbucket_org: false
    bitbucket_data_center: false
  - title: "Pipelines for Merged Results"
    description: |
      Keep master green. A special pipeline runs on the results of merged code before merging into master to           detect changes that may be green on a branch but will fail master when merged.
    link_description: "Learn more about Pipelines for Merged Results"
    link: https://docs.gitlab.com/ee/ci/merge_request_pipelines/#pipelines-for-merged-results-premium
    solution: release
    category: merge_trains
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github_com: false
    github_enterprise: false
    bitbucket_org: false
    bitbucket_data_center: false
  - title: "Merge Trains"
    description: |
      Ensure an orderly and efficient flow of changes in a pipeline to target branches by queueing up pipelines in parallel, each building off the merge result of the previous pipeline. Squash-and-Merge is also supported together with Merge Trains.
    link_description: "Learn more about Merge Trains"
    link: https://docs.gitlab.com/ee/ci/merge_request_pipelines/pipelines_for_merged_results/merge_trains/
    solution: release
    category: merge_trains
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github_com: false
    github_enterprise: false
    bitbucket_org: false
    bitbucket_data_center: false
  - title: "Pipeline Resource Groups"
    description: |
       Allows limiting the concurrency of running jobs to permit only one deployment per resource group at any given time.
    link_description: "Learn more about managing pipeline concurrency"
    link: https://docs.gitlab.com/ee/ci/yaml/#resource_group
    solution: release
    category: continuous_delivery
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github_com: false
    github_enterprise: false
    bitbucket_org: false
    bitbucket_data_center: false
  - title: "Environments Dashboard"
    description: |
      The GitLab Environments Dashboard provides a cross-project environment-based view that lets you see the big picture of what is going on in each environment. From a single location, you can now track the progress as changes flow from development to staging, and then to production (or through any series of custom environment flows you can set up). With an at-a-glance view of multiple projects, you can instantly see which pipelines are green and which are red, allowing you to diagnose if there is a block at a particular point, or if there’s a more systemic problem you need to investigate
    link_description: "Learn more about the Environment Dashboard"
    link: https://docs.gitlab.com/ee/ci/environments/environments_dashboard.html
    screenshot_url: environment_dashboard.png
    solution: release
    category: release_orchestration
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github_com: false
    github_enterprise: false
    bitbucket_org: false
    bitbucket_data_center: false
  - title: "Associate Releases with Milestones"
    description: |
      The way many teams use GitLab, ourselves included, is to have a milestone for the release
      that everything tracks to. Some teams may also have more than one sprint that makes up a
      release. With GitLab you can associate a milestone (or more) to a release; this will populate the
      release page with issues and merge requests included in the release(s).
    link_description: "Learn more about associating Releases with Milestones"
    link: https://docs.gitlab.com/ee/user/project/releases/#releases-associated-with-milestones
    screenshot_url: associate_milestone_to_release.png
    solution: release
    category: release_orchestration
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github_com: false
    github_enterprise: false
    bitbucket_org: false
    bitbucket_data_center: false
  - title: "Instance-level kubernetes clusters"
    description: |
      Create instance-level Kubernetes clusters that can be used for all
      groups and projects contained within the same GitLab instance.
    link_description: "Learn more about instance-level clusters"
    link: "https://docs.gitlab.com/ee/user/project/clusters/"
    solution: configure
    category:
      - kubernetes_management
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: false
    codefresh: true
    github_com: false
    github_enterprise: false
    bitbucket_org: false
    bitbucket_data_center: false
  - title: "Insights"
    description: |
      Create charts powered by labels to visualize data such as triage hygiene,
      issues created/closed per a given period, average time for merge requests to be merged and much more.
    link_description: "Learn more about Insights"
    link: "https://docs.gitlab.com/ee/user/project/insights/"
    solution: Manage
    category:
      - value_stream_management
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: true
    gitlab_com: true
  - title: "AsciiDoc"
    description: |
      AsciiDoc is a text document format for writing notes, documentation,
      articles, books, ebooks, slideshows, web pages, man pages and blogs.
      Preview AsciiDoc files directly in the repository browser.
    link_description: "Learn more about AsciiDoc"
    link: "https://docs.gitlab.com/ee/user/asciidoc.html"
    solution: Create
    category:
      - source_code_management
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
  - title: "Trigger pipeline on any event in code repository"
    description: |
      Enables pipelines/workflows to be started based on when any defined event is executed in the code repository. For example, could run a workflow to send a welcome email on adding a new member to a repository or project.
    link_description: "Docs on GitLab triggerable events"
    link: "https://help.github.com/en/articles/events-that-trigger-workflows#webhook-events"
    solution: Verify
    category:
      - continuous_integration
      - continuous_delivery
    gitlab_core: partially
    gitlab_starter: partially
    gitlab_premium: partially
    gitlab_ultimate:
       valid: partially
       details: "Supports 21 event triggers"
    gitlab_com: true
    github:
       valid: true
       details: "Supports 90 event triggers"
    buildkite:
       valid: true
       details: "Through WebHooks"
  - title: "Trigger pipeline on any event in code repository app eco-system"
    description: |
      Enables pipelines/workflows to be started based on when any defined event is executed in the code repository or in any app extension of that repository's eco-system. For example, when an event happens in the Slack integration, update a repo work item.
    link_description: ""
    link: ""
    solution: Verify
    category:
      - continuous_integration
      - continuous_delivery
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: false
    gitlab_com: false
    github: true
    buildkite:
       valid: true
       details: "Through WebHooks"
  - title: "Community powered workflows (configuration is code so are shareable)"
    description: |
      GitLab pipeline (workflows) are defined as yml in repos and can be shared just like actions.
    link_description: ""
    link: ""
    solution: Verify
    category:
      - continuous_integration
      - continuous_delivery
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github: true
    buildkite: partially
  - title: "Any platform, any language, and cloud"
    description: |
      Can run on any OS platform, for any language, and on any cloud provider
    link_description: ""
    link: ""
    solution: Verify
    category:
      - continuous_integration
      - continuous_delivery
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github: true
    buildkite: partially
  - title: "No configuration, infrastructure setup, or patching necessary"
    description: |
      As a SaaS offering, can provide software development and delivery services without the need to set up the tool itself, infrastructure to run it, and to maintain it by patching.
    link_description: ""
    link: ""
    solution: Verify
    category:
      - continuous_integration
      - continuous_delivery
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github: true
    buildkite: false
  - title: "Pipeline defined in one file kept in the repository"
    description: |
      The pipeline/workflow can be fully defined by a single file which is kept in the code repository right next to the code it is meant to execute on.
    link_description: ""
    link: ""
    solution: Verify
    category:
      - continuous_integration
      - continuous_delivery
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github: true
  - title: "Store CI configuration outside the repository"
    description: |
      Specify the path of the .gitlab-ci.yml as an arbitary URL to store CI configurations in a repository other than the one being built. This allows for processing hundreds of repos the same way by pointing all of them to the same external gitlab-ci.yml file, and gain efficiency by having only one CI configuration file to update for multiple repositories. Use cases where a service generates the configuration file dynamically would also benefit. The ability to host the .gitlab-ci.yml file in another project enables CI configurations access control in a scalable way as the owners of the project hosting the file could restrict write access to prevent changes by unauthorized users.
    link_description: "Documentation"
    link: "https://docs.gitlab.com/ee/user/project/pipelines/settings.html#custom-ci-configuration-path"
    solution: Verify
    category:
      - continuous_integration
      - continuous_delivery
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github: true
  - title: "Auto suggest pipelines to start with based on code language"
    description: |
      Through language detection, auto suggest pipeline templates to run to help users quickly get a pipeline running.
    link_description: ""
    link: ""
    solution: Verify
    category:
      - continuous_integration
      - continuous_delivery
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate:
       valid: true
       details: "Auto Devops runs a pipeline, not just suggest one"
    gitlab_com: true
    github: true
    buildkite: false
  - title: "Comes with many pre-defined pipelines"
    description: |
      Offers many pre-defined pipelines that capture best practice and make it easy for a user to get started with each project for common languages, platforms, and configurations.
    link_description: ""
    link: ""
    solution: Verify
    category:
      - continuous_integration
      - continuous_delivery
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github: true
    buildkite: partially
  - title: "Connects the diff tools & services used during the SDLC"
    description: |
      Can be used as a central glue to orchestrate, and connect data and outputs from your many different tools & services.
    link_description: ""
    link: ""
    solution: Verify
    category:
      - continuous_integration
      - continuous_delivery
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github: true
    buildkite: true
  - title: "Matrix builds"
    description: |
      Built-in ability to define and execute builds that automatically trigger a number of parallel jobs or pipelines based on a multitude of input variables. For example, building for 3 OS's at once, and for 3 different versions of libraries, would automatically be done in 9 parallel jobs. At GitLab, this is implemented using dynamic child pipelines.
    link_description: "Learn more about child/parent pipelines"
    link: "https://docs.gitlab.com/ee/ci/parent_child_pipelines.html"
    solution: Verify
    category:
      - continuous_integration
      - continuous_delivery
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: false
    gitlab_com: false
    github: true
    buildkite: true
  - title: "Run shared Linux runners"
    description: |
      Ability to run runners on a pool of shared Linux systems from the SaaS offering.
    link_description: ""
    link: ""
    solution: Verify
    category:
      - continuous_integration
      - continuous_delivery
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github: true
  - title: "Run shared Windows runners"
    description: |
      Ability to run runners on a pool of shared Windows systems from the SaaS offering.
    link_description: "in beta"
    link: "https://about.gitlab.com/releases/2020/01/22/gitlab-12-7-released/index.html#windows-shared-runners-on-gitlabcom-beta"
    solution: Verify
    category:
      - continuous_integration
      - continuous_delivery
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: false
    gitlab_com: false
    github: true
  - title: "Run shared macOS runners"
    description: |
      Ability to run runners on a pool of shared macOS systems from the SaaS offering.
    link_description: ""
    link: ""
    solution: Verify
    category:
      - continuous_integration
      - continuous_delivery
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: false
    gitlab_com: false
    github: true
  - title: "Pipeline status visible in pull/merge request"
    description: |
      Status and results of pipeline runs are viewable at least in summary from the merge/pull request that they are part of.
    link_description: ""
    link: ""
    solution: Verify
    category:
      - continuous_integration
      - continuous_delivery
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github: true
    azure_devops: false
  - title: "Live streaming of logs from running pipeline"
    description: |
      Ability to see live job logs (while the pipeline is running).
    link_description: ""
    link: ""
    solution: Verify
    category:
      - continuous_integration
      - continuous_delivery
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github: true
    buildkite: true
  - title: "Search across all job logs"
    description: |
      Search across all or more than one job log at once. Enables more efficient search for errors and other content of interest while troubleshooting or reviewing job output.
    link_description: ""
    link: ""
    solution: Verify
    category:
      - continuous_integration
      - continuous_delivery
    gitlab_core: partially
    gitlab_starter: partially
    gitlab_premium: partially
    gitlab_ultimate:
       valid: partially
       details: "browser search within the log at a time"
    gitlab_com: partially
    github: true
    buildkite: true
  - title: "Download archive of all logs"
    description: |
      Ability to download an archive of all job logs from a pipeline run in a single archive file. This is handy to enable analysis of the logs through another tool, or to send logs to someone who might not have access otherwise.
    link_description: ""
    link: ""
    solution: Verify
    category:
      - continuous_integration
      - continuous_delivery
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate:
       valid: false
       details: "can be individually downloaded"
    gitlab_com: false
    github: true
    buildkite:
       valid: true
       details: "Requires scripts to store logs"
  - title: "View raw logs in plaintext"
    description: |
      Ability to get the plain text of a log, no mark up, to be able to share it or use it externally.
    link_description: ""
    link: ""
    solution: Verify
    category:
      - continuous_integration
      - continuous_delivery
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github: true
    buildkite: true
  - title: "Multiple pipelines per repo"
    description: |
      Ability to define multiple pipelines per code repository to enable either different processes to be run at different times, and/or to enable monorepos where there are multiple applications within one repo which need to be built and handled differently per application.
    link_description: ""
    link: ""
    solution: Verify
    category:
      - continuous_integration
      - continuous_delivery
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: false
    gitlab_com: false
    github: true
    buildkite: true
  - title: "Reference actions/jobs in another repo"
    description: |
      Ability to have pipelines/workflows reference and use actions/jobs from a repo different from the one it is being run from, without needing any installation.
    link_description: ""
    link: ""
    solution: Verify
    category:
      - continuous_integration
      - continuous_delivery
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github: true
    buildkite: true
  - title: "Cross-project jobs with artifact dependencies"
    description: |
      Specify a job in your current project depends on the latest artifact produced by a job in another pipeline to easily set up cross-project pipelines that have artifact dependencies on each other.
    link_description: "Documentation"
    link: "https://docs.gitlab.com/ee/ci/yaml/#artifact-downloads-with-needs"
    solution: Verify
    category:
      - continuous_integration
      - continuous_delivery
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github: true
  - title: "Parent-child pipelines"
    description: |
      When one pipeline serves as a parent of one of more child pipelines, it removes many of the challenges of complex pipeline creation. Performance can be improved because child pipelines can run concurrently based on trigger configurations in the parent pipeline. As an added bonus, decomposing a single, complex, pipeline into a parent pipeline with multiple children simplifies pipeline visualization and ultimately improves comprehension for the entire team.

      It is also possible to dynamically generate the `.gitlab-ci.yml` for the child pipeline, making it easy to implement runtime behaviors in a clear way.
    link_description: "Documentation"
    link: "https://docs.gitlab.com/ee/ci/parent_child_pipelines.html"
    screenshot_url: parent_child_pipeline_graph.png
    solution: Verify
    category:
      - continuous_integration
      - continuous_delivery
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github: true
  - title: "Analytics Workspace"
    description: The Analytics workspace makes it possible to aggregate analytics across GitLab, so that users can view information across multiple projects and groups in one place.
    link_description: "View analytics in one place"
    link: "https://docs.gitlab.com/ee/user/analytics/index.html"
    screenshot_url: analytics_workspace.png
    solution: analytics
    category:
      - value_stream_management
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
  - title: "Productivity Analytics"
    description: Productivity Analytics provides graphs and reports to help engineering leaders understand team, project, and group productivity so they can uncover patterns and best practices to improve overall productivity.  The initial focus of Productivity Analytics is on the MR and how long it takes to merge MRs.
    link_description: "Track development velocity with Productivity Analytics"
    link: "https://docs.gitlab.com/ee/user/analytics/productivity_analytics.html"
    screenshot_url: productivity_analytics.png
    solution: analytics
    category:
      - value_stream_management
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    pricing_page: false
  - title: "Code Review Analytics"
    description: Find bottlenecks in your code review process by understanding how long open merge requests have been in review.
    link_description: "Learn more about Code Review Analytics"
    link: "https://docs.gitlab.com/ee/user/analytics/code_review_analytics.html"
    category:
      - value_stream_management
    gitlab_core: false
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
  - title: "Cluster Environments Global View"
    description: Provides an overview of all the projects that are making use of the instance or group Kubernetes cluster, including the deployments/environments that have been provisioned and the numbers of pods used by each environment.
    link_description: ""
    link: "https://docs.gitlab.com/ee/user/clusters/environments.html"
    solution: Configure
    category:
      - kubernetes_management
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    pricing_page: false
  - title: "Incidents"
    description: Open issues automatically for APM alerts and customize using issue templates. Charts visualizing the metric that triggered the alert are automatically embedded in the issue description.
    link_description: "Learn more about Incidents"
    link: https://docs.gitlab.com/ee/user/project/integrations/prometheus.html#taking-action-on-incidents-ultimate
    screenshot_url: incidents.png
    solution: Monitor
    category:
      - incident_management
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: true
    gitlab_com: true
    pricing_page: false
  - title: "Embedded Metrics"
    description: Embed Prometheus and Grafana metrics charts in issues
    link_description: "Learn more about Embedded Metrics"
    link: https://docs.gitlab.com/ee/user/project/integrations/prometheus.html#embedding-metric-charts-within-gitlab-flavored-markdown
    screenshot_url: embedded_metrics_charts.png
    solution: Monitor
    category:
      - incident_management
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: true
    gitlab_com: true
    pricing_page: false
  - title: "Partial Clone"
    description: Partial Clone is an optimization for very large repositories.
    link_description: "Learn more about Partial Clone"
    link: https://docs.gitlab.com/ee/topics/git/partial_clone.html
    solution: Create
    category:
      - source_code_management
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: false
    gitlab_com: false
    github_com: false
    github_enterprise: false
    bitbucket: false
    pricing_page: false
  - title: "Multi-line diff comments"
    description: Leave merge request comments spanning multiple lines in a diff
    solution: Create
    category:
      - code-review
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: false
    gitlab_com: false
    github_com: true
    crucible: true
    pricing_page: false
  - title: "Generic Alert Endpoint"
    description: Send alerts from any monitorting tool to GitLab's REST endpoint with the option to automatically create incidents.
    link_description: "Learn more about the Generic Alert Endpoint"
    link: https://docs.gitlab.com/ee/user/project/integrations/generic_alerts.html
    screenshot_url: 'images/feature_page/screenshots/alert_endpoint.png'
    solution: Monitor
    category:
      - incident_management
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: true
    gitlab_com: true
    pricing_page: false
  - title: "Merge Request Dependencies"
    description: |
      Coordinate the order in which merge requests are merged within the same
      project and/or across different projects.
    link_description: "Learn more about Merge Request Dependencies"
    link: https://docs.gitlab.com/ee/user/project/merge_requests/merge_request_dependencies.html
    solution: Create
    category:
      - code_review
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github_com: false
    github_enterprise: false
  - title: "Code intelligence by Sourcegraph"
    description: |
      Powerful code intelligence to help developers navigate code effectively,
      including go to definition and find references.
    link_description: "Learn more about Sourcegraph integration"
    link: https://docs.gitlab.com/ee/integration/sourcegraph.html
    solution: Create
    category:
      - code-review
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
    github_com: true
    pricing_page: true
  - title: "Web Application Firewall (WAF) Statistics Reporting"
    description: |
      Enjoy better visibility of your WAF's effectiveness with information about
      the total and blocked traffic amounts from a convenient new Threat
      Monitoring page under the **Security & Compliance** menu.
    link_description: "Learn more about WAF Statistics Reporting"
    link: https://docs.gitlab.com/ee/user/clusters/applications.html#viewing-web-application-firewall-traffic
    solution: Defend
    category:
      - web_firewall
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: true
    gitlab_com: true
  - title: "Show most affected projects in Group Security Dashboard"
    description: |
      Easily know which projects are most affected/at risk so you can go right
      to the ones that need the most immediate attention.  Projects are grouped and
      given a simple "security grade" of A through F.
    link_description: "Learn more about most affected projects in the Group Security Dashboard"
    link: https://docs.gitlab.com/ee/user/application_security/security_dashboard/#group-security-dashboard
    solution: Secure
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: true
    gitlab_com: false
  - title: "Release Evidence"
    description: |
      Snapshots of the Release's metadata at time of creation and completion in JSON format leveraged as a chain of custody to support review processes, as conducted in an
      audit.
    link_description: "Learn more about Release Evidence"
    link: https://docs.gitlab.com/ee/user/project/releases/#release-evidence
    solution: Release
    category:
      - release_evidence
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
  - title: "Release Audit Events"
    description: "Make your journey through an audit easier by automatically including events for creating or editing Releases, downloading artifacts, and associating or dissociating a milestone from within GitLab's audit logs."
    link_description: "Learn more about Audit Events"
    link: https://docs.gitlab.com/ee/administration/audit_events.html#project-events-starter
    solution: Release
    category:
      - release_evidence
    gitlab_core: false
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
  - title: "New configuration screen for Secure"
    description: |
      View which Secure scanners are enabled on a new `Configuration` option
      under the `Security and Compliance` section.
    link_description: "Learn more about Secure Configuration Screen"
    link: https://docs.gitlab.com/ee/user/application_security/
    solution: Secure
    category:
      - configuration
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: true
    gitlab_com: false
  - title: "Credentials Management"
    description: |
      GitLab administrators and group owners are responsible for the overall security of their instance and groups. Keep track of all the PAT and SSH credentials that can be used to access your environment. See when the credentials expire and manage rotation policies.
    link_description: "Learn more about Credentials Inventory"
    link: https://docs.gitlab.com/ee/user/admin_area/credentials_inventory.html
    solution: Manage
    category:
      - compliance_management
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: true
    gitlab_com: false
  - title: "Network Policies for Container Network Security"
    description: |
      Network Policies can be installed into GitLab managed Kubernetes clusters to limit communication with Kubernetes pods and the Internet.
    link_description: "Learn more about Container Network Security"
    link: https://docs.gitlab.com/ee/user/clusters/applications.html#install-cilium-using-gitlab-ci
    solution: Defend
    category:
      - container_network_security
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: true
    gitlab_com: true
    sysdig: true
    palo-alto: true
  - title: "Web Application Firewall"
    description: |
      The Web Application Firewall can be installed into GitLab managed Kubernetes clusters to detect and block web based attacks using the OWASP core ruleset.
    link_description: "Learn more about Web Appilcation Firewall"
    link: https://docs.gitlab.com/ee/topics/web_application_firewall/
    solution: Defend
    category:
      - web_firewall
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    f5: true
    imperva: true
  - title: "Vulnerability Management"
    description: |
     View, triage, trend, track, and resolve vulnerabilities detected in your applications.
    solution: Defend
    category:
      - vulnerability_management
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: true
    gitlab_com: true
  - title: "Compliance Dashboard"
    description: |
      Compliance management within GitLab is easier with an aggregate view of all project activity. View the compliance status of your group in a fast, simple way. Easily spot when projects are out of compliance and take informed actions to remediate any issues.
    link_description: "Learn more about Compliance Dashboard"
    link: https://docs.gitlab.com/ee/user/application_security/compliance_dashboard/index.html
    solution: Manage
    category:
      - compliance_management
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: true
    gitlab_com: false
  - title: "Manage access to protected environments from the API"
    description: |
      GitLab offers users the ultimate flexibility of setting up and configuring Environments via the API or UI. We also support Maintainer's control of access to Protected Environments via API.
    link: https://docs.gitlab.com/ee/api/protected_environments.html
    solution: Release
    category:
      - release_orchestration
      - release_evidence
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
  - title: "S/MIME Signed Commits"
    description: "Sign commits and prove that a commit was performed by a certain user."
    link: https://docs.gitlab.com/ee/user/project/repository/x509_signed_commits/
    link_description: "Read more about S/MIME signed commits"
    category:
      - source_code_management
    gitlab_com: true
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    bitbucket: false
    github: true
    azure_devops: false
  - title: "Web Application Firewall (WAF) Controls"
    description: |
      Web Application Firewall (WAF) controls allow users to easily turn the WAF on or off.
    link_description: "Learn more about WAF"
    link: https://docs.gitlab.com/ee/user/clusters/applications.html#web-application-firewall-modsecurity
    solution: Defend
    category:
      - web_firewall
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
  - title: "GitLab-managed App for HashiCorp Vault"
    description: |
      One-click install for HashiCorp's Vault application on a Kubernetes cluster in GitLab, easily embedding Vault's secret management capabilities within your project.
    link: https://docs.gitlab.com/ee/user/clusters/applications.html#install-vault-using-gitlab-ci
    solution: Release
    category:
      - secrets_management
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
  - title: "Select and dismiss multiple vulnerabilities"
    description: |
      "Quickly select multiple vulnerability findings and dismiss them at once."
    link_description: "Read more about dismissing multiple vulnerabilities"
    link: https://docs.gitlab.com/ee/user/application_security/#dismissing-multiple-vulnerabilities
    solution: Defend
    category:
        - vulnerability_management
    gitlab_core: false
    gitlab_starter: false
    gitlab_premium: false
    gitlab_ultimate: true
    gitlab_com: true
  - title: "Release Progress view"
    description: "The progress percent complete of issues within a release."
    link_description: "Learn more about Releases"
    link: https://docs.gitlab.com/ee/user/project/releases/
    solution: Release
    category:
      - release_orchestration
    gitlab_core: true
    gitlab_starter: true
    gitlab_premium: true
    gitlab_ultimate: true
    gitlab_com: true
