Oct 22, 2017 - Achilleas Pipinellis  

GitLab 10.1 released with Image Discussions and Rejection of Unsigned Commits

GitLab 10.1 Released with LDAP Group Sync Filters, GPG Subkeys Support, and a Moderation Lock of Issues and Merge Requests.

Καλημέρα! (Good morning!) This month we're coming to you live from GitLab all hands in Heraklion, Greece, to release GitLab 10.1. 🚀

Since GitLab's inception, we envisioned a world where everyone can contribute, and with each release we're one step closer. With GitLab 10.1, we bring more tools for better collaboration, enhanced security and authentication, as well as improved performance and UX.

For far too long a group of folks have been left out of the discussion and we think it's time that got fixed. With GitLab 10.1 we're changing how you should think about version control and discussion. Commenting on lines of code works great when the discussion centers around text, but what about images? After all, if the code being written has an app UI, web page, or generates a printed asset then it makes sense that you'd want to be able to talk about text and images in the same way. With Image Discussions we're opening up a whole new way to collaborate. Extending on collaboration, you can now create merge requests across forks of a canonical repository.

Being able to work under a secure environment is very important, and with each release we are constantly improving the security and authentication mechanisms. This time, we have added LDAP group sync filters, as well as the ability to reject unsigned commits. The admin audit log has been improved to also include more metrics and GPG subkeys support has been added.

An open source project can attract a lot of visitors and contributors. Although one would expect civilized discussions to take place, that's not always the case. With GitLab 10.1, a moderation tool is in place and you are able to lock discussions on issues and merge requests to avoid unnecessary friction among your community.

Going strong with our DevOps vision, we've made it really easy to create clusters on Google Kubernetes Engine from within GitLab. The online view of HTML artifacts is also another great addition that will make it even easier to view your test reports right from your web browser.

Dedicated to our open source stewardship, the fast-forward option in merge requests previously on Enterprise Edition Starter is now brought to Community Edition.

In the UX side of things, GitLab now comes with an improved new project page so that it's easier to decide the kind of project you want to create. Whether you want to start from scratch, use a template or import from another provider, you can now achieve it easier than before.

We're dedicated to making GitLab perform better and faster under heavy load, and GitLab 10.1 is no exception. This release comes with many performance improvements including faster viewing of merge requests and general initial page load improvements.

GitLab MVP badge

This month's Most Valuable Person (MVP) is Vitaliy Klachkov

With an amazing 23 contributions for GitLab 10.1, Vitaliy Klachkov is the MVP for this release! He’s been contributing to GitLab for quite some time now and is a member of the core team. From API and UI additions to improving our test suite (18 merge requests!), Vitaliy has rightfully earned a place to the monthly MVP stand.

Thank you Vitaliy for your contributions!

Key improvements released in GitLab 10.1

Image Discussions

Everyone can contribute to GitLab, and with this release, we are helping interaction designers, visual designers, digital designers, graphic artists, frontend developers, or just anyone who works with images collaborate better.

With discussions, you can now click a specific location of an image (within a commit or a merge request), and start a discussion with respect to that place in the image. You can even have multiple discussions specifying different areas of an image.

Resolvability in the merge request diff view works the same as before, so once a discussion is settled, simply resolve it!

Image discussions

Lock Discussions

In this release, we are introducing a moderation feature to lock down continued discussion in an issue or merge request. This is useful when there is abuse or spam or you simply want to direct users to a different place in GitLab (another issue, for example) for continued feedback and collaboration. A project member with master access (or higher) has permissions to lock and unlock them. When an issue or merge request is locked, only project members can create new comments or edit existing ones.

Lock Discussions

Merge Requests Across Forks

Forks and merge requests are a great alternative to branch-based workflows as they enable any developer to create an alternative copy of the repository rather than committing changes directly against the primary codebase.

However, this means that it can make it harder for multiple people to work on the same code at the same time as the forks are isolated.

With GitLab 10.1, you can now create merge requests between forks of a canonical repository.

This makes working together on forks now much simpler, allowing multiple developers to easily review and merge across forks, bringing the code together before sending a merge request back to the canonical repository.

Merge Requests Across Forks

LDAP Group Sync Filters

As part of our growing Enterprise authentication capabilities, GitLab 10.1 supports the ability to synchronize LDAP groups to GitLab based on filters, including user attributes.

For larger and more complex LDAP implementations there may be additional metadata in LDAP to infer permissions, roles, or types of users. By leveraging group filters, GitLab makes it easier to perform more user management capabilities directly from LDAP.

GitLab EES already allows basic synchronization of LDAP groups to GitLab groups. This is great functionality for basic LDAP integration, but means that your LDAP structure needs to effectively mirror GitLab’s group structure.

The introduction of LDAP Group Sync Filters in GitLab EEP means that your existing LDAP structures and attributes can be utilized in a more powerful way to manage your GitLab permissions.

LDAP Group Sync Filters

Reject Unsigned Commits

Controlling and verifying identities are a key component to GitLab’s Enterprise authentication features. GitLab 10.1 introduces two new mechanisms to enforce user identity management whilst committing code.

Authors may be verified through GPG integration introduced in GitLab 9.5. With GitLab Enterprise Edition Premium it is now possible to enforce verification and reject any commits that are unsigned using push rules.

Reject Unsigned Commits

Easily Create Kubernetes Clusters on GKE (Beta)

Every application needs a home and in case of web apps or microservices, it can be a Kubernetes cluster that can also deploy Review Apps during the development cycle. But setting up a cluster properly is not an easy task, and developers should focus on writing the code, rather than setting up the infrastructure.

That’s why, in GitLab 10.1, we add the ability to connect your Google Account to your projects and to create a brand new Kubernetes cluster on Google Container Engine (GKE) just by enabling the services for your account and specifying a few parameters. The cluster is immediately ready to use and can be leveraged, among others, by Auto DevOps to have your apps live.

Easily Create Kubernetes Clusters on GKE (Beta)

Online View of HTML Artifacts

As many projects rely on GitLab for automated testing, developers also need to access the test results in order to fully benefit of the feedback. This is just an example of how important it is to render HTML reports and make them accessible in an easy way.

With GitLab 10.1, we introduce the online visualization of HTML files created by pipelines for public projects, just one click away from the artifacts browser view. Your test reports, code quality and coverage information are now very simple to access directly from your browser, with no need to download them locally.

Online View of HTML Artifacts

Other improvements in GitLab 10.1

Signing Commits with GPG Subkeys

GPG integration was introduced in GitLab 9.5. allowing you to sign commits to verify your identity. Many people use verified subkeys to sign commits, and this is now supported and displayed as verified in GitLab 10.1.

Manage Milestones with Developer Permissions

The developer role can now create, edit, and delete both project milestones and group milestones. Managing milestones is a software delivery team activity, so we wanted to extend that flexibility and responsibility to the users with Developer access in GitLab.

Improved Admin Audit Log

Knowing what happens inside your GitLab instance is an important aspect of many auditing requirements.

GitLab EES (Enterprise Edition Starter) has basic Audit Event capability where each group or repository has a simple log of events that have taken place.

The Admin Audit Log was introduced in GitLab 9.3, allowing administrators to access a centralized log of events from Groups, Projects, and user actions. New user actions have been added to the central audit log in GitLab 10.1:

  • Add or remove email addresses
  • Password change and forgotten password
  • Login failure
  • Adding SSH keys and granting oAuth access

Name of GitLab Users in Slack Notifications

Prior to GitLab 10.1, Slack notifications included only the GitLab username. In this release, the full name is displayed as well. The new format is First Last (username).

Secondary Email Confirmation

For improved security, GitLab is able to enforce email confirmation on sign up.

This functionality is now extended to additional emails that are added to the user account, ensuring that all email addresses added to user profiles are confirmed.

GitLab Mattermost 4.2

GitLab 10.1 includes Mattermost 4.2, an open source Slack-alternative whose 4.2 release includes interactive message buttons to simplify complex workflows, plus much more. This version includes security updates and an upgrade is recommended.

Mattermost 4.2 was also included in GitLab 10.0. Anyone on GitLab 10.0 or later should have the patch already.

Performance Improvements

Performance is an important part of GitLab, allowing GitLab to scale to hundreds of thousands of users.

GitLab 10.1 includes 20 performance improvements, including faster viewing of merge requests, faster importing from GitHub and general initial page load improvements. The Container Registry page is now paginated, making it much faster. Project search from the toolbar has been optimized as has viewing projects and issues. The Rebase button is now also significantly faster.

Improved New Project Page

Creating a project is the first step when getting started with GitLab, and we’ve improved the New Project page to make this simpler. Now it’s easier to take advantage of Project Templates (introduced in GitLab 9.5) to create a project with a working example code and pre-configured CI, create a blank project, or import an existing project from elsewhere.

Improved New Project Page

Improved Internationalization

As part of our ongoing effort to internationalize GitLab, we have now externalised strings in the Branches, Group and Wiki pages allowing our translation community to add more languages and strings to GitLab.

If you are interested in contributing to GitLab’s Internationalization efforts, we welcome you to join our translation community.

Semi-linear History and Fast-forward Merge Requests in CE

While engaging with the GitLab community, lots of folks have told us that even in small teams, they want flexibility when choosing a merge method. With this release, we are taking semi-linear history and fast-forward merge requests from GitLab Enterprise Editions into GitLab Community Edition (CE), so that all users can enjoy them.

New keyword for Automatically Closing Issues

You can now use a new keyword, implements (and its variants), in a commit message or merge request description to signal automatically closing an issue. This joins the existing keywords such as closes, fixes, and resolves (and their variants).

Omnibus Improvements

  • Postgres has been updated to 9.6.5.
  • Prometheus has been updated to 1.7.2, along with Postgres exporter 0.2.3 and Redis exporter 0.12.2.
  • Additional Postgres settings are now configurable within gitlab.rb: effective_io_concurrency, max_worker_processes, max_parallel_workers_per_gather, log_lock_waits, track_io_timing, and deadlock_timeout.
  • Roles have been added to streamline configuration of GitLab in highly available installations.

GitLab Geo Improvements

Notable changes shipped with GitLab 10.1:

  • Improved repository sync performance supports larger GitLab instances (#3453)
  • Improved handling of repository sync failures to prevent the queue from becoming clogged with permanently failing tasks (#3259)
  • Added migration path to hash-based storage format introduced in GitLab 10.0 (#3118)
  • Attachments on personal snippets are now synced (#3644)
  • After upgrading to 10.1, attachments will be re-synced due to a bug

See the full list of changes.

GitLab Runner 10.1

We’re also releasing GitLab Runner 10.1 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:

List of all changes can be found in GitLab Runner’s CHANGELOG.


The gitlab Helm chart

The gitlab Helm chart is deprecated, and will be replaced by the new cloud native GitLab chart. We are planning for an initial beta release of this new chart in 10.3.

A migration will be required to move from the current deprecated chart, to the new cloud native GitLab chart.

Planned removal date: Dec 22nd, 2017.

Mattermost Configuration Changes

With the release of GitLab 11.0, the number of Mattermost configuration options supported within gitlab.rb will be reduced. We will continue to support the core configuration settings necessary to run Mattermost, and set up the integration with GitLab. Going forward, other configuration settings should be set directly within the Mattermost console, or passed as environment variables.

Presently with two applications attempting to write to the same config file, changes can be lost.

Planned removal date: GitLab 11.0

Removals and breaking changes

The complete list of all removed features can be viewed in the GitLab documentation.

Upgrade barometer

To upgrade to GitLab 10.1 from the latest 10.0 version, no downtime is required.

To upgrade without downtime, please consult the documentation on downtimeless upgrades.

You can check the status of background migrations by running this command from the Rails console: Sidekiq::Queue.new('background_migration').size.


Please check out the changelog to see all the named changes:


If you are setting up a new GitLab installation please see the download GitLab page.


Check out our update page.


We'd love to hear your thoughts! Visit the GitLab Forum GitLab Forum and let us know if you have questions about the release.

GitLab Subscription Plans
  • Free: Free-forever features for individual users
  • Premium: Enhance team productivity and coordination
  • Ultimate: Organization wide security, compliance, and planning

Try all GitLab features - free for 30 days

Cover image licensed under Unsplash free license

Try all GitLab features - free for 30 days

GitLab is more than just source code management or CI/CD. It is a full software development lifecycle & DevOps tool in a single application.

Try GitLab Free
Open in Web IDE View source