GitLab.org/GitLab: Release v10.3.0-ee

Name: GitLab

Owner: GitLab.org

Release: GitLab 10.3

Released: 2020-04-03

License: MIT

Release Assets:

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

[Static Application Security Testing (SAST)](https://docs.gitlab.com/ee/user/application_security/sast/) > Running secure application code in production is critical; > vulnerabilities can lead to everything from denial of service to leaked > user information. Running security checks on a regular basis helps > protect you from known vulnerabilities, even if they are affecting > libraries you import in your projects. > > With GitLab 10.3, Static Application Security Testing (SAST) scans the > code (also known as static analysis) for known security issues that > could be exploited by malicious users, like unpatched external > dependencies or cross-site scripting vulnerabilities. It automatically > recognizes the most common languages (Ruby, JavaScript, and Python are > currently supported), and a summary shows up directly in Merge Requests > so your team is aware of potential problems before merging code into > master and deploying it to production. Static Application Security > Testing is also now [part of Auto > DevOps](https://docs.gitlab.com/ee/topics/autodevops/#auto-sast) to > provide security by default.
[Navigate to epic from issue](https://docs.gitlab.com/ee/user/group/epics/) > Since issues can only belong to one epic, when looking at an issue it's useful to know if > it already belongs to an epic. The containing epic of an issue now appears in the issue > sidebar as a link, allowing you to quickly navigate to it.
[Attach images to epics](https://docs.gitlab.com/ee/user/group/epics/) > You can now attach images (or any file) to an epic, via the epic > description, just like in an issue description (and other Markdown > boxes in GitLab). This allows you to be even more descriptive in > documenting epics, such as by including inline wireframes and mockups.
[Render links to epics in GitLab Flavored Markdown (GFM)](https://docs.gitlab.com/ee/user/markdown.html#special-gitlab-references) > Links to epics in GitLab Flavored Markdown (GFM) textboxes will now be > rendered similar to issues, merge requests, and other objects in GitLab. > The group path is shown followed by `&`, and then the epic ID. A helpful > tooltip shows the epic title. This allows you to paste a link to an epic > in a textbox, and GitLab will render it more compactly and in a more readable fashion. > You can also directly enter the shorthand for the epic reference in the GFM field, such as > `gitlab-org&23`, and GitLab will turn that into link.
#### [Premium](https://about.gitlab.com/pricing/premium/) ![9 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=9&style=flat-square "New features added to this tier in this release") ![46 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=46&style=flat-square "Total features in this tier")
[Browser Performance Testing](https://docs.gitlab.com/ee/user/project/merge_requests/browser_performance_testing.html) > GitLab offers a great way to monitor the performance of your production > application, but it's also critical to ensure that new code doesn't > introduce performance regressions. For example, a developer may > incorporate a new image from design, but forget to compress it; or a new > JavaScript library may be added to ``, slowing down page load. > Catching these regressions with only a manual review can be challenging. > > To help address this, we are introducing an easy way to analyze the > performance impact of a merge request for web apps. Browser Performance > Testing runs a headless browser to simulate visiting one or more pages > of your application and analyzes them. A summary of performance changes > is provided on the merge request so you're aware of the performance impact > *before* merging into `master`.
[Multiple Kubernetes clusters per project (Beta)](https://docs.gitlab.com/ee/user/project/clusters/#multiple-kubernetes-clusters) > GitLab can easily deploy your application to different environments > within a Kubernetes cluster. We commonly see Development, Staging, and > Production, and Review Apps all published in the same way. Up until now, > they all lived in the same cluster, but you may have the need to keep > data and access separated, for example if regulations require you to > store production data in a different physical location. > > With GitLab 10.3, you can configure multiple clusters for each project, > each linked to a specific environment, so the right cluster is > automatically used by CI/CD pipelines to publish your application.
[Only mirror protected branches](https://docs.gitlab.com/ee/user/project/repository/repository_mirroring.html#push-only-protected-branches) > Pull and push mirroring, when enabled for a repository, will > automatically mirror to and from the configured target Git repository. > But this fails if any pushes contain altered Git history, such as by > rebasing. It's normally not a good idea to rebase certain key branches, > like `master`, but it's more common for feature branches. > > To prevent rewritten history from a feature branch causing mirroring to > fail, mirroring can now be limited to only protected branches.
[Trigger pull mirroring via API](https://docs.gitlab.com/ee/user/project/repository/repository_mirroring.html#trigger-update-using-api) > Pull mirroring, when enabled for a repository, automatically mirrors > changes from the configured upstream Git repository to your repository. > Changes are mirrored regularly when they are detected by polling. > > A new API has been added to trigger changes to be pulled immediately. > When used with a push event webhook from the upstream repository, pull > mirroring can happen within seconds.
[Immediate push mirroring](https://docs.gitlab.com/ee/user/project/repository/repository_mirroring.html#pushing-to-a-remote-repository) > Push mirroring, when enabled for a repository, will automatically > push changes to the configured downstream Git repository. > > The rate limit has been updated to push changes immediately, but is > limited to one push every five minutes. If mirroring is limited to > protected branches, the rate limit is decreased to one push every > minute.
[Restrict Repository Mirroring to admins](https://docs.gitlab.com/ee/user/project/repository/repository_mirroring.html) (self-managed only) > Push and pull mirroring, when enabled for a repository, will > automatically mirror to or from the configured target Git repository. > > In GitLab 10.3 push mirroring can be restricted to admins. Now admins > can limit access to push and pull mirroring to only admin users, to > prevent repositories being replicated to or from a GitLab instance.
[Improved Geo nodes dashboard](https://docs.gitlab.com/ee/administration/geo/replication/configuration.html#step-6-verify-proper-functioning-of-the-secondary-node) (self-managed only) > Managing and monitoring of Geo nodes is improved by separating the > monitoring interface from the process of adding and editing a Geo node.
[Simplified PostgreSQL HA configuration](https://docs.gitlab.com/omnibus/roles/#postgres-roles) (self-managed only) > In GitLab 10.2 [Postgres HA became generally available](https://about.gitlab.com/releases/2017/11/22/gitlab-10-2-released/#postgres-ha-is-now-generally-available), making it easy to set up a production Postgres database cluster using our Omnibus package. > > Now we are making it even easier with the introduction of [new Postgres roles](https://docs.gitlab.com/omnibus/roles/#postgres-roles). These roles significantly reduce the configuration required to set up standalone database nodes, by automatically turning off all other features and components.
[Handling oudated replicas with database load balancing](https://docs.gitlab.com/ee/administration/database_load_balancing.html) (self-managed only) > The database load balancer included in GitLab Enterprise Edition has > been improved so it can handle replicas that are lagging behind too > much. This has been combined with adjustments to the replica status > checks to reduce the number of queries necessary to check if a replica > is available. > > These changes allow the database load balancer to stop sending read-only > queries to replicas when those replicas are lagging behind with > replicating data from a primary. > > For more information check the merge request on > [how we handled outdated replicas in the DB load balancer](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/3526).
#### 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") ![169 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=169&style=flat-square "Total features in this tier")
[Merge Request Commit Discussions](https://docs.gitlab.com/ee/user/discussions/#commit-discussions-in-the-context-of-a-merge-request) > GitLab works great for workflows where teams collaborate and comment on > each new version of a merge request. > > But some teams work at the individual commit level; they want to have > conversations about every single commit, even within a push containing > multiple commits. This was not possible previously. > > Today, we are shipping commit-based workflows in merge requests. Simply > navigate to the commits tab of a merge request and click on a commit to > bring you to the changes tab, with a new interface that allows you to > have a resolvable discussion about a particular commit. That discussion > is also shown in the discussion tab itself, along with other > conversations. This feature works alongside the existing workflow, > giving your team flexibility to select whichever flow works best. View [a > short demo](https://about.gitlab.com/blog/2018/01/04/comment-on-commits-feature-tutorial/) > of the new workflow.
[Customize branch name when creating merge request from issue](https://docs.gitlab.com/ee/user/project/issues/issues_functionalities.html#18-new-merge-request) > You can create a merge request, along with an underlying branch, right > from an issue in one click. Clicking the create merge request button > automatically creates a branch name based on the title of your issue. > But in some cases you don't really want this, especially if your issue > title is very wordy and you want the branch name to be more succinct. With > this release, you can now customize the branch name before creation. > This also works when creating a branch from an issue without an > associated merge request. > > Thank you [blackst0ne](https://gitlab.com/blackst0ne) for the > contribution!
[Flow charts, sequence diagrams, and Gantt diagrams in GitLab Flavored Markdown (GFM) with Mermaid](https://docs.gitlab.com/ee/user/markdown.html#mermaid) > You can now create beautiful flow charts, sequence diagrams, and Gantt diagrams in issue / merge requests > descriptions and comments using GitLab Flavored Markdown (GFM) > Just follow the simple Mermaid syntax, now supported in GFM. > > Thank you [blackst0ne](https://gitlab.com/blackst0ne) for the contribution!
[Automatically run first pipeline when enabling Auto DevOps](https://docs.gitlab.com/ee/topics/autodevops/#enabling-auto-devops) > Previously in GitLab if you enabled Auto DevOps you still had to wait until > you pushed a commit before your pipelines would populate. > This was a confusing experience that didn't follow expected behavior. > > With GitLab 10.3, a pipeline for your project will be run as soon as you > enable Auto DevOps in Settings, so you can immediately see results without > needing to push another commit to your code.
[Strict check on artifacts dependencies](https://docs.gitlab.com/ee/ci/yaml/#when-a-dependent-job-will-fail) > When dealing with CI/CD pipelines, it is quite common that artifacts are > created in one job and then used later by another job. Using the > `dependencies` keyword, you can explicitly list which artifacts from > previous stages you need. But when jobs are retried some time later, > those artifacts may no longer exist, for example if they have expired or > have been manually erased. This could lead to inconsistent states where > code is expecting to find resources that are not available, creating > errors that are hard to spot and debug. > > In GitLab 10.3, we introduce strict checking on these dependencies. Since > jobs will fail if their dependencies cannot be found, you'll always be aware > if something required is missing. This allows you to take proper actions > to solve the problem, for example running a brand new pipeline from scratch.
[Restricted deletion of CI/CD job logs](https://docs.gitlab.com/ee/user/permissions.html#gitlab-ci-cd-permissions) > When running a job as part of a CI/CD pipeline, the job log is stored in > GitLab and is available for further analysis to users that have access > to the project. It can be also erased in order to avoid information > leaks or to free up space. > > With GitLab 10.3, only Masters and the user that triggered the job are > authorized to erase the job logs; enforcing a more consistent permission > model.
[Improved integration with existing clusters (Beta)](https://docs.gitlab.com/ee/user/project/clusters/) > Until now, configuring a project to use an existing Kubernetes cluster > (as opposed to creating a new cluster) relied on the service integration > page in the project settings. This made the flow inconsistent with the > first-class support for Clusters introduced in GitLab 10.1. > > GitLab 10.3 adds the ability to add existing Kubernetes clusters to a > project, directly from the Clusters page, and deprecates the old service > integration page.
[Git push and pull on project redirects](https://docs.gitlab.com/ee/user/project/repository/#redirects-when-changing-repository-paths) > Renaming and moving projects happens all the time. GitLab's web user > interface has always redirected people from the old location to the new > location, but the same has not been true for Git actions. > > From GitLab 10.3, Git actions will now redirect too! This means that any > build scripts, automation, or Git clients will continue to work after a > user or group rename, making any transition a lot smoother. > > Please note, to avoid pulling from or pushing to an entirely incorrect > repository, the old path will be reserved.
[Show project member role on list of projects](https://docs.gitlab.com/ee/user/permissions.html) > When working with multiple projects, sometimes it's difficult to remember what > permissions you have for each project. This can lead to frustrating situations and > not knowing why certain features aren't available. > > Having a quick reference that tells you what permission level you have helps you understand > your limitations and lets you act within them or request escalated privileges when appropriate. > > Now you can see your permission level on the GitLab Project Dashboard next > to the project name. You no longer have to click into each project and > dig into the users page to find this info.
[Customize "New Project" page](https://docs.gitlab.com/ee/administration/appearance.html) (self-managed only) > With thanks to our community contributor, [Markus > Koller](https://gitlab.com/toupeira), it is now possible for GitLab > administrators to add your own help text on the "New Project" page. > > This is a great way to provide additional instruction to users on how > projects should be created. As this text supports Markdown, you can link > to any further pages or documentation to provide additional help.
[User and group additions to Protected Branch API](https://docs.gitlab.com/ee/api/protected_branches.html) > [Protected > branches](https://docs.gitlab.com/ee/user/project/repository/branches/protected.html) > allow you to lock down push or merge access to your repository's > branches, preventing inadvertent changes entering your code or enforcing > particular workflows. > > One great feature of protected branches is to specify users or groups > that do have permission to push or merge changes. This is now available > in the API.
[Update issue weight from Issue Board sidebar](https://docs.gitlab.com/ee/user/project/issue_board.html) > You are now able to update an issue's weight right from an issue board's > sidebar, exactly the same as in the issue page itself. This allows you to > quickly and more fully manage issues when doing planning and tracking > from within a board.
[Sort milestones on group milestone list](https://docs.gitlab.com/ee/user/project/milestones/#creating-a-group-milestone) > You are now able to sort milestones on the group milestone list page, > similar to the project milestones list page. We introduced group > milestones a few releases ago and are working to bring features from > project milestones to group milestones. > > Thank you [George Andrinopoulos](https://gitlab.com/geoandri) for the contribution!
[Redesigned merge request diff file navigation](https://docs.gitlab.com/ee/user/project/merge_requests/#merge-request-diff-file-navigation) > The merge request diff file navigation has been redesigned to more > clearly show the file name in its own line. The file path is also now > truncated at the start if it is too long.
[Smarter autocomplete for label quick action](https://docs.gitlab.com/ee/user/project/quick_actions.html) > When using quick actions to add or remove labels to an issue or merge > request, the autocomplete dropdown is extremely helpful to quickly find > what you are looking for. With the latest change, autocomplete is even > smarter so that when adding a label, the dropdown _doesn't_ show labels > that are already added. And when removing a label, the dropdown _only_ > shows labels that are already added. > > Thank you [blackst0ne](https://gitlab.com/blackst0ne) for the > contribution!
[Create merge request through email](https://docs.gitlab.com/ee/user/project/merge_requests/#create-new-merge-requests-by-email) > Some people prefer doing development as much as possible using their desktop > tools, reserving their use of the GitLab web interface for tasks which are > absolutely necessary there. > > With today's release, you can now create merge requests through email, expanding > the breadth of developer-focused features you can use with your existing tools. > Send an email to GitLab, specifying the source branch name in the email subject > line, and GitLab will automatically create the merge request for you. Find the > special (and unique-to-you) email address for a given project by clicking the link > at the bottom of the project merge requests page. It doesn't change (unless you refresh it). > So you can safely save it in your email client. > > For developers who do development, Git, and email all inside a terminal, you can now > do everything up to creating a merge request all without leaving that terminal.
[Total issue time spent in milestone](https://docs.gitlab.com/ee/user/project/milestones/#milestone-sidebar) > Many teams track how much time is spent working individually on issues. > With this latest change, you can now see how much time is spent on all > of the issues in a single milestone, summed up together, in the sidebar > of the milestone page. > > Thank you [George Andrinopoulos](https://gitlab.com/geoandri) for the > contribution!
[GitLab Mattermost 4.4.5](https://docs.gitlab.com/omnibus/gitlab-mattermost/) (self-managed only) > GitLab 10.3 includes [Mattermost 4.4.5](https://about.mattermost.com/blog/mattermost-4-4/), an [open source Slack alternative](https://about.mattermost.com/), whose newest release includes the beta release of plugin support, plus much more.
[GitLab Runner 10.3](https://docs.gitlab.com/runner/) > We're also releasing GitLab Runner 10.3 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: > > * [Add Kubernetes executor connection with service account, bearer token can also be overwritten](https://gitlab.com/gitlab-org/gitlab-runner/merge_requests/744) – thank you [David Schile](https://gitlab.com/bajacondor) from Nordstorm's CI team for the contribution! > * [Stop Docker Machine before removing it](https://gitlab.com/gitlab-org/gitlab-runner/merge_requests/718) > * [Add `--checkout --force` options to `git submodule update --init`](https://gitlab.com/gitlab-org/gitlab-runner/merge_requests/704) > * [Fix trailing `` in syslog logging](https://gitlab.com/gitlab-org/gitlab-runner/merge_requests/734) > * [Fix Kubernetes executor job overwritten variables behavior](https://gitlab.com/gitlab-org/gitlab-runner/merge_requests/739) > * [Add zip archive for windows release files](https://gitlab.com/gitlab-org/gitlab-runner/merge_requests/760) > > List of all changes can be found in [GitLab Runner's CHANGELOG](https://gitlab.com/gitlab-org/gitlab-runner/blob/v10.3.0/CHANGELOG.md).
[Omnibus improvements](https://docs.gitlab.com/omnibus/README.html) (self-managed only) > * Additional warnings have been added for deprecated settings, and they now appear in red. > * gpgme 2.1.15 is now packaged with Omnibus GitLab, making it easier to use [signed commits](https://docs.gitlab.com/ee/user/project/repository/signed_commits/gpg.html). > * Git has been updated to 2.14.3 > * Docker Registry has been updated to 2.6.2 > * Redis has been updated to 3.2.11
[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=10.3) > We are continuing to make great strides in improving > the performance of GitLab in every release. > [We're committed](/handbook/product/gitlab-the-product/#performance) to not only > making individual instances of GitLab even faster, > but also to greatly improving the performance of GitLab.com, > an instance that has over one million users! > > In GitLab 10.3 we are shipping 24 performance improvements for merge > requests, CI/CD, Prometheus, frontend, and a lot more! Some of the > noteworthy improvements include: > > * [Performance of loading large / many Wiki pages has been improved](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15276) > * [Search performance has been improved by adjusting search behaviour based on the number of characters of the search query](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15592) > * [The number of timestamp updates for issues and merge requests has been reduced](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15682) > * [Redundant import status checks have been removed](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15752) > * [Object allocation tracking has been removed to remove the negative impact this had on performance](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15834) > * [Stop sending milestone and labels for Projects::MergeRequestsController#show.json requests](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15847)

To top