GitLab.org/GitLab: Release v9.5.0-ee

Name: GitLab

Owner: GitLab.org

Release: GitLab 9.5

Released: 2020-04-03

License: MIT

Release Assets:

![26 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=26&style=for-the-badge "New features added in this release") ![108 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=108&style=for-the-badge "Total features") #### [Premium](https://about.gitlab.com/pricing/premium/) ![5 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=5&style=flat-square "New features added to this tier in this release") ![18 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=18&style=flat-square "Total features in this tier")

[Postgres HA Automatic Failover (Beta)](https://docs.gitlab.com/ee/administration/postgresql/index.html) (self-managed only) > For organizations with a large number of developers, or simply because GitLab is an > integral part of the software engineering process, it is important to ensure the > scalability, performance, and reliability of the GitLab service. > > In GitLab 9.4 we released > [Postgres High Availability with manual failover](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/2329) > in beta, reducing the impact and time to recover from a database outage. In 9.5, > we have continued to improve our support and now provide > [automatic failover](https://docs.gitlab.com/ee/administration/postgresql/index.html) > of a database node. This means GitLab can transparently and without intervention recover > from a database server outage without impacting a company's SDLC process, reducing wake > up calls and disruption to developers. We will continue to innovate on our high > availability feature set in future releases.
[CI_JOB_TOKEN Variable for Artifacts API](https://docs.gitlab.com/ee/ci/triggers/#when-a-pipeline-depends-on-the-artifacts-of-another-pipeline) > With GitLab 9.3, we released features that allowed different projects to be connected through > [Multi-Project Pipelines](https://about.gitlab.com/releases/2017/06/22/gitlab-9-3-released/#multi-project-pipeline-graphs). > The introduction of these dependencies raised the need to access artifacts created by another related project in an easy way. > > Now with GitLab 9.5 this can be done using the `$CI_JOB_TOKEN` variable, automatically available to any job, > using the following syntax in `.gitlab-ci.yml`: > > curl --header "JOB-TOKEN: $CI_JOB_TOKEN" "https://gitlab.example.com/api/v4/projects/1/jobs/artifacts/master/download?job=test" > {:.language-shell}
[Variables support for Pipelines triggered with CI_JOB_TOKEN](https://docs.gitlab.com/ee/ci/triggers/#ci-job-token) > [Multi-Project Pipelines](https://about.gitlab.com/releases/2017/06/22/gitlab-9-3-released/#multi-project-pipeline-graphs), > introduced in GitLab 9.3, leverage the `$CI_JOB_TOKEN` variable to trigger pipelines in related projects, > but passing variables to those triggers, as you can do with regular triggers, was not supported. > GitLab 9.5 fills this gap and adds support for variables to pipeline triggers even if they're invoked using `$CI_JOB_TOKEN`.
[Pull Mirrored Repository over SSH](https://docs.gitlab.com/ee/user/project/repository/repository_mirroring.html#ssh-authentication) > [Repository mirroring](https://docs.gitlab.com/ee/user/project/repository/repository_mirroring.html) > is a great way to update all code, branches, tags and commits from an upstream repository. > > In GitLab 9.5, you can now pull changes into your repositories using SSH, > allowing Deploy Keys to be used with repository mirroring. > > This addition to mirroring makes for a more secure way to connect your repositories > and is great for automation as you won’t have any pesky issues if a password > gets changed.
[GitLab Geo Improvements](https://docs.gitlab.com/ee/administration/geo/) (self-managed only) > Notable changes: > > - GitLab Geo now supports a [first iteration](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/2533) > of [selective replication](https://docs.gitlab.com/ee/administration/geo/replication/configuration.html#selective-synchronization), > which allows admins to choose which repositories should be cloned by secondary nodes. > - Project deletions are now supported via the Geo Log Cursor. > - [Structured JSON debug logs](https://docs.gitlab.com/ee/administration/geo/#log-files) > have been added to aid monitoring and debugging. > - In 10.0, system hooks [will be officially removed](https://gitlab.com/gitlab-org/gitlab-ee/issues/3110). Be > sure to [switch to SSH key lookups via the database](https://docs.gitlab.com/ee/administration/geo/replication/updating_the_geo_nodes.html).
#### 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") ![90 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=90&style=flat-square "Total features in this tier")
[GPG Commit Verification](https://docs.gitlab.com/ee/user/project/repository/signed_commits/gpg.html) > When you commit a change in Git, you tell Git who the author is. This is not verified, meaning > a bad actor could create a commit that looks like it was made by the original author. > > GPG signed commits solves this problem by allowing you to sign your commits, proving that you're > the original author (because only you have the private key that matches the public key). > > GitLab 9.5 now supports GPG signed commits. In your user **Settings > GPG Keys** you can upload your > GPG public key. Signed commits will now show up as verified in GitLab (or unverified). > > Thank you [Alexis Reigel](https://gitlab.com/koffeinfrei) for this amazing contribution!
[New Navigation Improvements](https://about.gitlab.com/blog/2017/07/17/redesigning-gitlabs-navigation/) > In GitLab 9.4 we introduced a preview of our [new navigation](https://about.gitlab.com/releases/2017/07/22/gitlab-9-4-released/#new-navigation) > to make GitLab easier to navigate. > > We'd love to thank our community for the great [feedback](https://gitlab.com/gitlab-org/gitlab-ce/issues/34917) > and in GitLab 9.5 we've introduced a [number of improvements](https://gitlab.com/groups/gitlab-org/issues?label_name%5B%5D=navigation&milestone_title=9.5&state=closed) > as a result of what we heard. > > It's now possible to collapse the left menu, freeing up more screen space. We've also added a new hovering sub-menu > to improve navigation between menus, minimize clicks, and reduce page loads. > > If you haven't tried out the new navigation, click on your profile image in the > top right corner and choose **Turn on new navigation**. > > We still have a number of new improvements to make before switching over to the > new navigation next month, in GitLab 10.0, and would love to [hear more feedback](https://gitlab.com/gitlab-org/gitlab-ce/issues/34917) to help us > create a navigation experience that works for everyone.
[Project Templates](https://docs.gitlab.com/ee/user/project/working_with_projects.html#project-templates) > Getting started with GitLab can be daunting. Learning all that GitLab has > to offer is even more so. > For these reasons, we added Project Templates to help you quickly create a new project > from a template that already has some working example code and pre-configured CI. > > In GitLab 9.5 we're supporting some of the most common environments: > Ruby on Rails, Node Express, and Java Spring.
[Automatic Retry for Failed CI Jobs](https://docs.gitlab.com/ee/ci/yaml/#retry) > Sometimes pipelines fail because one job encountered unexpected transient problems that are not directly related to the code, > and often running the job again is enough to make it succeed after a few retries. > > In order to automate this process, in GitLab 9.5 you can specify a `retry` keyword in your `.gitlab-ci.yml` file to make > [GitLab CI/CD](https://about.gitlab.com/features/continuous-integration/) retry a job for a specific number of times before marking it as failed.
[Automatically Monitor Auto Deployed Apps](https://docs.gitlab.com/ee/topics/autodevops/stages.html#auto-monitoring) > As part of GitLab 9.4 we > [introduced Web Application Monitoring](/releases/2017/07/22/gitlab-9-4-released/#web-application-monitoring), > enabling users to monitor their apps within GitLab for critical response metrics: > throughput, latency, and error rate. > > With the launch of GitLab 9.5, we have made it even easier to keep an eye > on these important metrics for [Auto Deployed](https://docs.gitlab.com/ee/topics/autodevops/stages.html) > apps. If you have deployed GitLab using our > [GitLab-Omnibus](https://docs.gitlab.com/charts/) > Helm chart, no configuration is required at all! For other installation methods, simply ensure > [NGINX ingress is monitored by Prometheus](https://docs.gitlab.com/ee/topics/autodevops/stages.html#configuring-auto-monitoring).
[Merge Request Diff File Navigation](https://docs.gitlab.com/ee/user/project/merge_requests/#merge-request-diff-file-navigation) > We've made it easier to navigate between different sections of the code diff quickly. In GitLab 9.5, we added a > helpful dropdown that you can use to easily jump to different files in a merge request. > This is especially useful for merge requests with a lot of files and a large > number of changes.
[Group-level Secret Variables API](https://docs.gitlab.com/ee/api/group_level_variables.html) > In GitLab 9.4, we introduced [Group-level Secret Variables](https://about.gitlab.com/releases/2017/07/22/gitlab-9-4-released/#group-level-secret-variables), > so you can define variables that apply to multiple projects in the same group. > GitLab 9.5 adds management of these variables using API calls, allowing easy access and integration with third-party tools and scripts: > with this feature you can list, show, create, update and remove group-level variables using a REST interface.
[Confidential Issue Toggle](https://docs.gitlab.com/ee/user/project/issues/confidential_issues.html) > Toggling confidentiality on and off for issues now happens in the sidebar. > In the next release, we also plan to [push the "move issue" functionality](https://gitlab.com/gitlab-org/gitlab-ce/issues/34261) > to the sidebar as well. Together, this will free up the main area on the issue > page to focus on editing the title and description.
[Enhanced Security Checks for Pipelines on Protected Branches](https://docs.gitlab.com/ee/user/project/new_ci_build_permissions_model.html) > In order to allow only authorized people to modify what is released to the public, all of the interactions with pipelines > run on protected branches (triggering pipelines manually, retry existing jobs, perform any manual action, etc) > are now limited to users that have permissions to modify those branches.
[Search Bar for Group Issues Page](https://docs.gitlab.com/ee/user/search/#issues-and-merge-requests-per-group) > We've taken the new filter search bar UI design for project issues and merge > requests, and applied it to the group issues page. Now you can use the > same powerful UI for finding and managing issues across multiple projects > in a group.
[MR Widget Links to Repository](https://docs.gitlab.com/ee/user/project/merge_requests/) > Previously, the merge request (MR) source branch in the widget linked to the commits > page. Now it links to the file repository page (of that branch). This small > tweak is much more useful. You can now immediately explore the changes in > the branch thus far, and make further commits from the file explorer UI itself. > You can still easily access the commits of the source branch in the Commits > tab of the merge request itself.
[Group Milestones Quick Action](https://docs.gitlab.com/ee/user/project/quick_actions.html) > In [GitLab 9.4](/releases/2017/07/22/gitlab-9-4-released/#group-milestones) we released > [Group Milestones](https://docs.gitlab.com/ee/user/project/milestones/#creating-a-group-milestone), > giving you a truly native way to manage issues together in a milestone > that stretches across all projects in a single group. In this release > we include the ability to assign a group milestone using a [quick action](https://docs.gitlab.com/ee/user/project/quick_actions.html) > and also include a system note to the thread when a group milestone is assigned or removed. > This is the same behavior as that of project milestones.
[Group Milestones API](https://docs.gitlab.com/ee/api/group_milestones.html) > In this release, we've also added an API for Group Milestones. It allows you > to create and edit milestones, as well as get all issues and merge requests > associated with a milestone. This is similar to our existing > [project milestones API](https://docs.gitlab.com/ee/api/milestones.html).
[New Issue Based on Pre-selected Project](https://docs.gitlab.com/ee/user/project/issues/create_issues.html#from-a-group) > Previously, you could create a new issue from the group issues page. But > GitLab made you select a project as part of that flow. With this new change, > GitLab remembers the previous project you selected, so you can skip that step the next time. > This feature continues to make GitLab a team-based tool that focuses on [groups](https://docs.gitlab.com/ee/user/group/index.html). > Sometimes you don't care where an issue comes from. You just want to create > an issue scoped to a group. Now you can do so quickly on the group issues page. > And if you ever want to change your mind, you can always [move an issue to > another project](/blog/2016/04/20/feature-highlight-move-issues/) > after the fact.
[Streamline JIRA Integration](https://docs.gitlab.com/ee/integration/jira/) > Previously, the JIRA integration configuration required you to enter a JIRA > project key. This was unnecessarily confusing, since it implied that the > integration was one GitLab project to one JIRA project. Instead, the integration > has always been one GitLab project to one JIRA instance (and thus, all JIRA > projects in that instance). We have removed the JIRA project key from the > settings page to streamline this integration.
["Remove Source Branch" Disabled by Default](https://docs.gitlab.com/ee/user/project/merge_requests/) > Many users follow a Git workflow whereby they remove the source > branch after a merge request has been merged. We have a useful feature to > automate this process with a simple checkbox setting in the merge request > widget. We've received overwhelming feedback that this setting should be > disabled by default, since it is a destructive action. With this release, > it is now disabled when you create a merge request. If you indeed do want > to enable it, simply check the checkbox at any time before merging.
[GitLab Mattermost 4.1](https://docs.gitlab.com/omnibus/gitlab-mattermost/) (self-managed only) > GitLab 9.5 includes [Mattermost 4.1](https://about.mattermost.com/mattermost-4-1/), > an [open source Slack-alternative](https://about.mattermost.com/) whose newest > release simplifies the securing of integrations with personal access tokens, > and much more. > > This version includes > [security updates](http://about.mattermost.com/security-updates/) > and an upgrade is recommended.
[Return Resource URIs in API](https://docs.gitlab.com/ee/api/projects.html) > In GitLab 9.5 we’re taking a step towards improving our V4 API navigability. > > We’re now returning related resources URIs as an addition to the requested resource data. > It means that, instead of requiring you to build the URI to a related resource on the client-side, > we provide these URIs directly in the API responses. > > For now, [projects](https://docs.gitlab.com/ee/api/projects.html) and > [issues](https://docs.gitlab.com/ee/api/issues.html) endpoints received > the update, but we’re looking forward to introduce this information in > other endpoints in the next releases.
[GitLab Runner 9.5](https://docs.gitlab.com/runner) > We're also releasing GitLab Runner 9.5 today! > > ##### Most interesting changes: > > * Add support for credentials store ([merge request](https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/merge_requests/501)) > * Add support for Docker sysctl option for Docker executor ([merge request](https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/merge_requests/541)) > * Reduce binary size with removing debugging symbols ([merge request](https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/merge_requests/643)) > * Fix read error from upload artifacts execution ([merge request](https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/merge_requests/645)) > > List of all changes can be found in GitLab Runner's [CHANGELOG](https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/blob/v9.5.0/CHANGELOG.md).
[Omnibus Improvements](https://docs.gitlab.com/omnibus/) (self-managed only) > * Omnibus GitLab packages are now [GPG signed](https://gitlab.com/gitlab-org/omnibus-gitlab/issues/2537)! > Information on [signed packages](https://docs.gitlab.com/omnibus/package-information/signed_packages.html) and activating [signature verification](https://docs.gitlab.com/omnibus/update/package_signatures.html) can be found in the documentation. > * Git has been [updated to 2.13.5](https://gitlab.com/gitlab-org/omnibus-gitlab/merge_requests/1847). > * OpenSSL has been [updated to 1.0.2l](https://gitlab.com/gitlab-org/omnibus-gitlab/merge_requests/1776). > * UDP log shipping is [now part of CE](https://gitlab.com/gitlab-org/omnibus-gitlab/merge_requests/1829).
[Technical Articles](https://docs.gitlab.com/ee/topics/index.html) > To make GitLab easier to onboard, use, and discover, we are constantly > improving our documentation and publishing new technical articles with > tutorials, guides, and technical overviews. > > This month, we're glad to announce two new great tutorials: > > - [How to deploy Maven projects to Artifactory with GitLab CI/CD](https://docs.gitlab.com/ee/ci/examples/README.md#contributed-examples), by our Senior Product Manager [Fabio Busatto](/company/team/#bikebilly). > - [Numerous _undo_ possibilities in Git](https://docs.gitlab.com/ee/topics/git/undo.html), by the Community Writer [Crt Mori](https://gitlab.com/Letme).

To top