GitLab.org/GitLab: Release v12.0.0-ee

Name: GitLab

Owner: GitLab.org

Release: GitLab 12.0

Released: 2020-04-03

License: MIT

Release Assets:

![38 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=38&style=for-the-badge "New features added in this release") ![820 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=820&style=for-the-badge "Total features")

[Notifications for shared CI runner limits on GitLab.com](https://docs.gitlab.com/ee/subscriptions/#ci-pipeline-minutes) (SaaS only) > Group owners on GitLab.com will now be notified via email to let them know that > the group's CI Minutes Usage Quota has expired, with instructions on how to purchase more CI Minutes.
#### [Ultimate](https://about.gitlab.com/pricing/ultimate/) ![10 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=10&style=flat-square "New features added to this tier in this release") ![102 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=102&style=flat-square "Total features in this tier")
[Restrict access by IP address](https://docs.gitlab.com/ee/user/group/index.html#ip-access-restriction-ultimate) > Compliance-minded organizations may want to prohibit traffic from outside > IP addresses from accessing company resources. This is especially helpful > for organizations using VPNs, as you're now able to restrict traffic from > outside a specified subnet from accessing a group's resources in the GitLab UI. > > Configurable at the group level on both self-managed and GitLab.com, maintaining tight control > over your organization's most valued code just became easier than ever.
[GitLab Insights](https://docs.gitlab.com/ee/user/project/insights/index.html) > GitLab Insights introduced in GitLab Ultimate 11.9 (feature flag) is now Generally Available (GA) in GitLab Ultimate 12.0. > > Configure the Insights that matter for your projects to explore data such as triage hygiene, issues created/closed per a given period, average time for merge requests to be merged and much more.
##### [Plan](https://about.gitlab.com/stages-devops-lifecycle/plan/)
[Add ability to query epics in GraphQL](https://docs.gitlab.com/ee/api/graphql/#available-queries) > GraphQL APIs allows users to request exactly the data they need, making it > possible to get all required data in a limited number of requests. > > In this release, GitLab is now supporting the ability to query epics in the > GraphQL API.
[Enhancements for system notes for adding and removing epic relationships](https://docs.gitlab.com/ee/user/group/epics/) > Changes in epic relationships have not been recorded as system notes in the discussion feed of an epic. > > In GitLab 12.0, system notes are now recorded for when epic relationships for parent and sub-epics are added or removed.
[Add and remove child epics via quick actions](https://docs.gitlab.com/ee/user/project/quick_actions.html#quick-actions-for-epics-ultimate) > Child epics cannot currently be added or removed from parent epics via quick actions. > > In GitLab 12.0, we have added the ability to add and remove child epics > via the `/child_epic` and `/remove_child_epic` quick action commands.
##### [Create](https://about.gitlab.com/stages-devops-lifecycle/create/)
[File syncing to Web Terminal](https://docs.gitlab.com/ee/user/project/web_ide/#file-syncing-to-web-terminal) > In GitLab 12.0, changes made in the Web IDE will now be synced to the Web Terminal. User changes made > in the Web IDE can now be tested within the Web Terminal before committing them to the project. > > This feature also helps to lower the barrier to entry for new contributors as they'll be able to view, > edit, and test without installing local dependencies for a project. > > Please note that GitLab.com only supports Interactive Web Terminals through Private Runners.
##### [Application security testing](https://about.gitlab.com/stages-devops-lifecycle/application_security_testing/)
[Project dependency list](https://docs.gitlab.com/ee/user/application_security/dependency_scanning/#dependency-list) > You can now easily access a project's 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. In addition to being > able to view the report, you can also export the report to JSON.
[Vulnerability database available for viewing and accepting contributions](https://docs.gitlab.com/ee/user/application_security/dependency_scanning/#contributing-to-the-vulnerability-database) > Our vulnerability database project can now be viewed [here](https://gitlab.com/gitlab-org/security-products/gemnasium-db). > You can view the entries and verify the vulnerabilities you are most interested are a part of our checks. > > In addition, [here are guidelines](https://docs.gitlab.com/ee/user/application_security/dependency_scanning/#contributing-to-the-vulnerability-database) > on how you can contribute to help make the vulnerability database more robust.
[Add a reason when dismissing vulnerabilities](https://docs.gitlab.com/ee/user/application_security/#adding-a-dismissal-reason) > When dismissing a vulnerability identified by our scanners, there is now a > field available to add a reason detailing why this vulnerability was dismissed. > > This will allow security teams and developers to be able to review the > history and understand why items were not remediated.
[No longer require Docker in Docker for DAST](https://docs.gitlab.com/ee/user/application_security/dast/) > Dynamic Application Security Testing (DAST) no longer requires the use of Docker in Docker to run. > As a result, the DAST Docker image (3GB) will now be cached on Runners. > > Note that the image is updated weekly, so the cache will be invalidated every Monday. > {: .alert .alert-info}
#### [Premium](https://about.gitlab.com/pricing/premium/) ![6 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=6&style=flat-square "New features added to this tier in this release") ![149 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=149&style=flat-square "Total features in this tier")
[Sequential merge trains](https://docs.gitlab.com/ee/ci/merge_request_pipelines/#merge-trains-premium) > With the 12.0 release we're introducing a new way to keep your `master` or > release branches green: merge trains. Merge trains build on our > [pipelines for merge requests/results](https://docs.gitlab.com/ee/ci/merge_request_pipelines/#pipelines-for-merged-results) > feature by allowing you to queue up pipelines in sequence. > > For this first iteration, it's important to note that merge train pipelines > run in sequence (one at a time) so, depending on the frequency and duration > of your pipelines, it may or may not be appropriate to enable this feature yet for your team. > {: .alert .alert-info} > > In the future we plan to enable it by default, but we want to have > [parallelization support](https://gitlab.com/gitlab-org/gitlab-ee/issues/11222) in > place first to make it more accessible to more teams.
[Lock all memberships to LDAP](https://docs.gitlab.com/ee/administration/auth/ldap/index.html#global-group-memberships-lock) (self-managed only) > Organizations leaning on LDAP typically [synchronize](https://docs.gitlab.com/ee/administration/auth/ldap/index.html#group-sync) > it with GitLab for permissions management. > > In GitLab 12.0, instances can now prevent permissions changes outside of LDAP by > non-admins with an instance-level setting. With this approach, compliance-minded organizations can use this option to ensure > that the permissions in LDAP are reflected on the instance - and aren't modifiable by users who aren't instance admins.
[Prevent non-admins from deleting projects](https://docs.gitlab.com/ee/administration/settings/visibility_and_access_controls) (self-managed only) > Compliance-minded organizations may wish to ensure that projects - which may include important code in a repository - can only be > archived, rather than deleted and permanently lost. > > With an instance-level setting to prevent project deletion by non-admins, > instance administrators can feel more secure knowing that projects are being > [archived](https://docs.gitlab.com/ee/user/project/settings/#archiving-a-project) > and retained.
##### [Verify](https://about.gitlab.com/stages-devops-lifecycle/verify/)
[Visual Reviews](https://docs.gitlab.com/ee/ci/review_apps/index.html#visual-reviews-starter) > GitLab gives users the ability to automatically create [review > apps](https://docs.gitlab.com/ee/ci/review_apps/) for each merge request. > This allows anyone to see how the design or UX has been changed. > > In GitLab 12.0, we are expanding the ability to discuss those changes by > bringing the ability to insert > [visual review tools](https://gitlab.com/gitlab-org/gitlab-ee/issues/10761) > directly into the Review App itself. With a small code snippet, users can enable > designers, product managers, and other stakeholders to quickly provide > feedback on a merge request without leaving the app.
##### [Package](https://about.gitlab.com/stages-devops-lifecycle/package/)
[Dependency proxy is enabled per-group by default](https://docs.gitlab.com/ee/user/packages/dependency_proxy/index.html) (self-managed only) > In GitLab 11.11, we launched the MVC of the [dependency proxy](https://docs.gitlab.com/ee/user/packages/dependency_proxy/index.html), > which allows users to download and cache Docker images for faster, more reliable downloads. > > In GitLab 12.0, we have enabled the feature by default at the group level.
[Maven template now automatically pushes to the Maven Repository](https://docs.gitlab.com/ee/user/packages/maven_repository/index.html) > Java developers need an easy way to build and manage their dependencies with GitLab's CI/CD pipelines. > > In GitLab 12.0, we have modified the bundled `Maven.gitlab-ci.yml` template to > easily allow users to upload and manage their Java dependencies to the GitLab Maven Repository from their CI/CD pipelines.
#### Core ![21 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=21&style=flat-square "New features added to this tier in this release") ![562 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=562&style=flat-square "Total features in this tier")
[Git integration for JupyterHub](https://docs.gitlab.com/ee/user/clusters/applications.html#jupyter-git-integration) > Deploying JupyterHub via GitLab's Kubernetes integration provides an easy way to get started with > Jupyter notebooks, which can be used to create and share documents that contain live code, visualizations, and even runbooks. > > Starting with GitLab 12.0, JupyterLab’s Git extension is automatically provisioned and configured when installing JupyterHub > onto your Kubernetes cluster. This integration enables full version control of your notebooks as well as issuance of Git > commands within Jupyter. Git commands can be issued via the Git tab on the left panel or via Jupyter’s command line prompt.
[Validate Kubernetes credentials provided at cluster creation](https://docs.gitlab.com/ee/user/project/clusters/#adding-an-existing-kubernetes-cluster) > Adding a Kubernetes cluster manually requires entering multiple data points and can be error prone. In order to effectively surface > access and permission issues when adding a cluster manually, the kubernetes > integration will now validate the reachability of the API URL as well as the validity of both then cluster token and CA certificate. > > Relevant alerts will be presented when an issue is encountered.
[Use GitLab Serverless with existing Knative installations](https://docs.gitlab.com/ee/user/project/clusters/serverless/#using-an-existing-installation-of-knative) > Prior to this release, GitLab Serverless features could only be used when installing Knative via GitLab. > With GitLab 12.0, existing installations of Knative can now take advantage of GitLab Serverless. Simply [add the existing > cluster manually](https://docs.gitlab.com/ee/user/project/clusters/#adding-an-existing-kubernetes-cluster), > add the relevant Serverless templates to your project, and GitLab will do the rest. > > This means you can now use GitLab Serverless with hosted Knative offerings, such > as Google's [Cloud Run on GKE](https://cloud.google.com/run/) or IBM's > [hosted Knative service](https://cloud.ibm.com/docs/containers?topic=containers-serverless-apps-knative).
[GitLab Runner 12.0](https://docs.gitlab.com/runner) > We're also releasing GitLab Runner 12.0 today! GitLab Runner is the open source project > that is used to run your CI/CD jobs and send the results back to GitLab. > > ##### Most interesting changes: > > - [Docker Credentials helper support](https://gitlab.com/gitlab-org/gitlab-runner/merge_requests/1386) > - [Add configuration of access_level for runners on registration](https://gitlab.com/gitlab-org/gitlab-runner/merge_requests/1323) > - [Allow configuration of Pod Security Context by Kubernetes Executor](https://gitlab.com/gitlab-org/gitlab-runner/merge_requests/1036) > - [Make PowerShell default for new registered Windows shell executors](https://gitlab.com/gitlab-org/gitlab-runner/merge_requests/1406) > - [Support windows docker volumes configuration](https://gitlab.com/gitlab-org/gitlab-runner/merge_requests/1269) > > As mentioned in previous posts, with version GitLab Runner 12.0, we're also removing a few previously deprecated things: > > - [Remove deprecated clone/fetch command](https://gitlab.com/gitlab-org/gitlab-runner/merge_requests/1372) > - [Remove deprecated git clean strategy](https://gitlab.com/gitlab-org/gitlab-runner/merge_requests/1370) > - [Remove support for deprecated metrics_server setting](https://gitlab.com/gitlab-org/gitlab-runner/merge_requests/1368) > - [Remove support for deprecated entrypoint configuration for K8S](https://gitlab.com/gitlab-org/gitlab-runner/merge_requests/1369) > - [Remove support for deprecated S3 cache configuration](https://gitlab.com/gitlab-org/gitlab-runner/merge_requests/1367) > - [Remove support for deprecated distributions](https://gitlab.com/gitlab-org/gitlab-runner/merge_requests/1130) > - [Remove old docker helper image commands](https://gitlab.com/gitlab-org/gitlab-runner/merge_requests/1373) > > A list of all changes can be found in GitLab Runner's [CHANGELOG](https://gitlab.com/gitlab-org/gitlab-runner/blob/v12.0.0/CHANGELOG.md).
[Omnibus improvements](https://docs.gitlab.com/omnibus/) (self-managed only) > We continue to improve the GitLab Omnibus with every release. > > Some of the improvements in GitLab 12.0 are: > > - GitLab 12.0 includes [Mattermost 5.11](https://mattermost.com/blog/mattermost-5-11/), > an [open source Slack-alternative](https://mattermost.com/) whose newest release includes a new remote CLI tool, plus much more. > This version also includes [security updates](https://mattermost.com/security-updates/) and upgrading from earlier versions is recommended. > - [Enabling JSON logging by default](https://gitlab.com/gitlab-org/omnibus-gitlab/issues/4102). > - Grafana service is now enabled by default in omnibus-gitlab packages. Also, [OAuth authentication](https://docs.gitlab.com/omnibus/settings/grafana.html#using-gitlab-as-an-oauth-provider) > is now automatically enabled between Grafana and GitLab. > - [Improved GitLab metrics with directly instrumented ruby metrics](https://gitlab.com/gitlab-org/gitlab-ce/issues/60303)
[Performance improvements](https://gitlab.com/groups/gitlab-org/merge_requests?scope=all&utf8=%E2%9C%93&state=merged&label_name%5B%5D=performance&milestone_title=12.0) > We continue to improve the performance of GitLab with every release > for GitLab instances of every size. > > Some of the improvements in GitLab 12.0 are: > > - [Make epics list page more efficient](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/13904) > - [Avoid hitting the database for Elasticsearch results](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/12691) > - [Avoid hitting Elasticsearch twice for search results](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/13120) > - [Submit documents to ElasticSearch index in bulk](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/13917) > - [Cache rendered Markdown in commit messages to improve performance of listing commits](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/29054) > - [Improve performance of repository size limit check on each push](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/13460) > - [Improve performance when loading an issue or merge request with a long description](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/28597) > - [Improve performance of merge requests with suggested changes](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/29027) > - [Improve performance and reduce CPU usage of clones by using delta islands when repacking Git repositories](https://gitlab.com/gitlab-org/gitaly/merge_requests/1267) > - [Improve peformance of monitoring charts](https://gitlab.com/gitlab-org/gitlab-ce/issues/58516) > - [Fix Git N + 1 on ListLastCommit RPC](https://gitlab.com/gitlab-org/gitaly/merge_requests/1253) > - [Improve Git code search performance by using `--perl-regexp`](https://gitlab.com/gitlab-org/gitaly/merge_requests/1241) > - [Improve performance of `JobsController` by fixing Git N + 1](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/28093)
##### [Plan](https://about.gitlab.com/stages-devops-lifecycle/plan/)
[Group-specific notification email addresses](https://docs.gitlab.com/ee/user/profile/notifications.html) > In 12.0, we have added the ability to select a separate email address for group notifications. > This now allows users to separate group notifications to different email addresses. For example, a work email address > for a work group and a personal email address for personal groups.
[Issue API now responds with task completion statistics](https://docs.gitlab.com/ee/api/issues.html) > Users are able to define tasks in issues and this information is surfaced in various places throughout the application. > > In GitLab 12.0, users will now have the ability to return task progress information through the API.
[New threaded discussion design](https://docs.gitlab.com/ee/user/discussions/) > Our existing design for discussions for merge requests and issues involved many boxes and borders, often times > making it difficult to follow the conversation. > > In GitLab 12.0, we introduced a redesign to enhance the user experience of discussions.
[Additional issue stats from the issues API](https://docs.gitlab.com/ee/api/issues_statistics.html) > Users have been unable to get detailed issue statistics from the issues API. > > In GitLab 12.0, we are adding the ability to return counts of issues for all, closed, and opened states.
##### [Create](https://about.gitlab.com/stages-devops-lifecycle/create/)
[Git object deduplication (Beta)](https://docs.gitlab.com/ee/administration/repository_storage_types.html#hashed-object-pools) > Forking workflows make it easy to contribute to any project by > creating a copy of the upstream project to work on before opening a > merge request to merge your changes into the upstream project. For > popular projects, the server side storage requirements needed for > thousands of copies accumulate quickly and increase hosting costs. > > In GitLab 12.0, object deduplication can be enabled by instance > administrators using the `object_pools` feature flag. When enabled, > creating a fork of a public will also create an object pool and use > [`objects/info/alternates`](https://git-scm.com/docs/gitrepository-layout#Documentation/gitrepository-layout.txt-objectsinfoalternates) > to reduce the storage requirements of forks. > > Object deduplication requires hashed storage to be enabled, and for > the parent project to be using hashed storage. Existing forks are not > currently migrated to object pools automatically – for updates follow > [gitaly#1560](https://gitlab.com/gitlab-org/gitaly/issues/1560). > > In an upcoming release, we will also implement > [fast forking](https://gitlab.com/groups/gitlab-org/-/epics/607) > by directly creating the fork in a deduplicated state. Currently the > fork is first created, then deduplicated. > > Object deduplication has been enabled on GitLab.com since 30 May 2019, > but it remains off by default for self-managed instances because of a > [duplicate bitmap warning](https://gitlab.com/gitlab-org/gitaly/issues/1728) > shown when fetching. This issue is fixed in 12.0 but the feature flag > could not be removed in time for this release. > {: .alert .alert-info}
[Enabled Git bitmap hash cache to speedup repacking](https://git-scm.com/docs/git-config/2.21.0#Documentation/git-config.txt-packwriteBitmapHashCache) > In GitLab 12.0, when repacking Git repositories, a bitmap hash cache will be > saved in the bitmap index. The cache improves repack performance, > particularly when using delta islands. > > Note that versions of JGit prior to 3.5.0 are incompatible with the bitmap > hash cache. > {: .alert .alert-info}
[Support for AsciiDoc include directive](https://docs.gitlab.com/ee/user/asciidoc.html#includes) > The AsciiDoc markup format supports declaratively including content > from other files, allowing unnecessary duplication to be removed from > documents. The AsciiDoctor implementation presumes a local file system, > not a Git repository, preventing includes from being rendered when > viewing an AsciiDoc file inside GitLab. > > In GitLab 12.0, the include directive (`include::example.adoc[]`) is > now supported, allowing text files in the same branch or tag to be > included when viewed in GitLab. > > Thanks [Guillaume Grossetie](https://gitlab.com/g.grossetie) for your > [contribution](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/28417)!
##### [Verify](https://about.gitlab.com/stages-devops-lifecycle/verify/)
[Multiple extends support in .gitlab-ci.yml](https://docs.gitlab.com/ee/ci/yaml/#extends) > The `extends` keyword allows users to keep their GitLab CI/CD code [dry](https://dev.to/michalbryxi/how-to-dry-your-gitlab-ciyml-16pc). > Using extends to condense common sections of code is a frequently used feature for advanced users of GitLab CI/CD, > and is used by our own teams to [build GitLab](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/.gitlab/ci/rails.gitlab-ci.yml) > as well as our [Auto DevOps](https://docs.gitlab.com/ee/topics/autodevops/) features. > > In GitLab 12.0, we're very happy to welcome a contribution from [Lumi Akimova](https://gitlab.com/qwolphin) to improve this feature > by allowing users to include multiple `extends` snippets in a single job and, > with multiple `extends`, you can now achieve streamlined and dry CI configuration. > > Thanks Lumi!
[Collapsible job logs](https://docs.gitlab.com/ee/ci/pipelines/index.html#expand-and-collapse-job-log-sections) > In GitLab 12.0, we're adding the ability to expand and collapse the log output from GitLab CI/CD jobs. > This will allow users to more easily debug certain steps in the job, and provide a great overview of the steps when desired - > or a detailed view if you want to see the entire output. > > This originally started as a community contribution from [Matthias van de Meent](https://gitlab.com/matthias.vandemeent). > Thank you Matthias for your contribution!
[Email notifications for broken master builds](https://docs.gitlab.com/ee/api/services#pipeline-emails) > The GitLab [Pipeline Emails](https://gitlab.com/gitlab-org/gitlab-ce/issues/61721) service integration allows users to create > email alerts on build completion and failure to a list of recipients. > Previously, users could only subscribe to all build failures. > > In GitLab 12.0, we have added the option to only > send the failure notification on the default branch for the project (e.g. `master`). > > Thank you to [Peter Marko](https://gitlab.com/petermarko) for this contribution!
[Improved support for passing variables to downstream pipelines](https://docs.gitlab.com/ee/ci/multi_project_pipelines.html#passing-variables-to-a-downstream-pipeline) > In GitLab 11.8, we introduced the ability to [trigger](https://docs.gitlab.com/ee/ci/multi_project_pipelines.html#triggering-a-downstream-pipeline-using-a-bridge-job) > a downstream pipeline from an upstream bridge job. > We also introduced basic support for passing variables to the downstream pipeline. > > With GitLab 12.0, we support passing current environmental variables to the downstream pipeline as well. > This allows users to provide context to the downstream pipeline as well as to the commit, > merge request, or other details from the pipeline that triggered it.
[Faster shallow clones by default for all new projects in GitLab CI/CD](https://docs.gitlab.com/ee/user/project/pipelines/settings#git-shallow-clone) > Since GitLab 8.9, GitLab CI/CD has supported shallow [git clones](https://git-scm.com/docs/git-clone#Documentation/git-clone.txt---depthltdepthgt) > by specifying the `GIT_DEPTH` variable in your job definition. > > In GitLab 12.0, we've added the ability to set this depth at the project level - enabling project maintainers to default to > a shallow clone if desired. Shallow Git clones are faster than cloning the entire Git repository every time, > and if your CI/CD jobs are set up to build the latest, often a shallow clone is sufficient. > > Also in GitLab 12.0, new projects created in GitLab will, by default, have a `GIT_DEPTH` setting of `50` when they are created. > This sensible default will help users have faster clone and build times with GitLab CI/CD, > while still allowing advanced users to change this setting if required for different types of CI/CD use cases.
##### [Package](https://about.gitlab.com/stages-devops-lifecycle/package/)
[Developers now can delete tags from the Container Registry via API](https://docs.gitlab.com/ee/api/container_registry.html#delete-a-repository-tag) > The Container Registry API allows GitLab users to easily manage their registry programmatically. > > With GitLab 12.0, we have updated the [permissions model](https://docs.gitlab.com/ee/user/permissions.html#project-members-permissions) > to allow Developers to delete a tag.
##### [Monitor](https://about.gitlab.com/stages-devops-lifecycle/monitor/)
[Link and access a Zoom meeting from an issue](https://docs.gitlab.com/ee/user/project/issues/associate_zoom_meeting.html) > In GitLab 12.0, we have made it easy to collaborate with teammates on an issue via a Zoom conference call. > Paste a Zoom meeting link in the description of an issue. > GitLab will detect the link and display a "Join Zoom meeting" button at the top underneath the title surfacing it to all collaborators.
[Link to external dashboards from environment dashboards](https://docs.gitlab.com/ee/operations/metrics/dashboards/settings.html) > Operations teams often use more complex metrics dashboards for visualizing the state of their environments. > > Starting in GitLab 12.0, you can now supply and easily access your external dashboards directly from within GitLab's environment dashboards.

To top