What better way to kick off a new year than with the 50th release of GitLab, 8.4!

No matter how you use GitLab, you're going to like this release. Your diffs will look better than ever, you can browse through your build artifacts in CI and search has been super powered with Elasticsearch in EE!

We're extremely happy to receive some amazing contributions this release. Kyungchul Shin contributed a fuzzy file finder to GitLab this release, a much requested and truly MVP-worthy contribution.

Thanks Kyungchul Shin and congratulations on being this month's MVP!

Super-powered Search with Elasticsearch (EE only)

If you have a lot of data, searching through everything in GitLab can require a lot of number crunching, which can take a while. Search is the last thing you want to wait for, which is why GitLab can now leverage Elasticsearch to speed up those searches!

Elasticsearch is a flexible, scalable and powerful search service that lives on its own server(s). Connecting it to GitLab is easy as pie.

Just like good-old search, Elasticsearch will search through your issues, merge requests, milestones, comments, projects, repositories, snippets and wikis.

Artifacts browser

Since GitLab 8.2, you've been able to have CI output artifacts, which you could then download as a single compressed file containing all artifacts of a build.

With GitLab 8.4, you can now browse all your artifacts directly in GitLab's interface and download files individually. GitLab does not extract the entire compressed file when viewing and when downloading, it'll only extract the requested file. This can save you a lot of storage space and makes it much easier to work with large files or large volumes of artifacts, as you don't need to download everything to get a single file.

Improved GitHub Importer

Want to move your projects from GitHub? GitLab now imports your repositories, wikis, issues and pull requests from GitHub!

On the new project page /projects/new , simply click on the GitHub link and click to import any or all projects. GitLab will automatically take care of the rest.

Fuzzy File Finder

The new Fuzzy File Finder lets you quickly navigate to a file by name in the current repository without having to reach for the mouse!

You can quickly access the Fuzzy File Finder by pressing t anywhere in a project.

For more shortcuts, press ? anywhere in GitLab!

Code highlighting in Diffs

Diffs in GitLab now have highlighted syntax!

If you're getting notifications from issues or merge requests you're no longer interested in, there is now a quick link in every email to unsubscribe from that thread.

The link doesn't require you to sign in, so you can easily use it from your phone, watch, or VR headset.

When pasting a GitLab link in Slack, Twitter or Facebook, it now automagically becomes a little bit prettier and informative by making use of the Open Graph standard.

For instance, if you post a GitLab link in Slack, you now get some extra information about the issue or merge request:

We're looking forward to seeing pretty GitLab links all over the internet!

CAS Support

GitLab user tduehr contributed CAS support for GitLab, allowing you to use your CAS single sign-on server to sign into GitLab. Thanks, tduehr!

Performance Monitoring

We've said in multiple places that improving performance of GitLab.com is a big priority for us. To give us more insights into this, we've built performance monitoring into GitLab.

GitLab can now send performance data to an InfluxDB database, which in turn can be connected to graphing software such as Grafana (shown below).

Data gathered by Performance Monitoring includes:

The time it took to complete a transaction (a web request or Sidekiq job).

The time spent in running SQL queries and rendering HAML views.

The time spent executing Ruby methods.

Ruby objects that have not yet been released by the garbage collector.

System statistics such as the process' memory usage and open file descriptors.

Ruby garbage collection statistics.

Right now Performance Monitoring still requires some setup to be useful, but we're planning to bundle all the required software with our EE Omnibus packages in the coming releases.

Filter Commit Messages

Want to quickly find a specific commit in the list of commits? You can now quickly filter them by commit message, using the input on top!

Find the commit filter on the commits page of any of your projects.

Emoji Picker Improvements

Now you can quickly search all available emoji!

The new Emoji picker also stores your favorite Emoji and is available in any issue and merge request.

Upgrading the looks and usability of GitLab is very important to us. GitLab 8.4 introduces several design changes that will be built upon in future releases.

Groups now look cleaner:

And issues are also easier on the eyes, especially if you're using a smaller window:

We're working hard to improve the design of GitLab and put more emphasis on content, while making everything easier to use. We'd love to get your feedback on the latest changes.

New CI features in API

The build artifacts browser is not the only enhancement in GitLab CI. With GitLab 8.4 we are introducing new CI features in our API:

builds - list, cancel or retry any build in your project

build triggers - manage your project's triggers

build variables - manage your project's variables

Other changes

Some other notable changes include:

Do some housekeeping and use git gc on your projects right from your browser

on your projects right from your browser Enforce Two-factor authentication for all users on your GitLab instance

Sign-in using your Microsoft Azure account

This release has many more improvements. Please check out the Changelog to see the all named changes.

Upgrade barometer

Downtime required

This upgrade requires downtime as it brings a couple of migrations that are updating a large set of records.

Most notably, the update iterates through all services, updating default values. For instances that have LDAP enabled, it iterates through the whole user base to update LDAP email settings.

On GitLab.com these migrations took around 5 minutes to complete. Do note that GitLab.com doesn't have LDAP enabled so on instances that do have it enabled, migration will take longer.

Upgrading from 7.x or prior?

Note If you are upgrading from a GitLab version prior to 8.0 and you have CI enabled, you have to upgrade to GitLab 8.0 first.

Default upgrade behavior

Please be aware that by default the Omnibus packages will stop, run migrations, and start again, no matter how “big” or “small” the upgrade is. This behavior can be changed by adding a /etc/gitlab/skip-auto-migrations file.

Installation

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

Updating

Check out our update page.

Enterprise Edition

The mentioned EE only features and things like LDAP group support can be found in GitLab Enterprise Edition. For a complete overview please have a look at the feature list of GitLab EE.

Access to GitLab Enterprise Edition is included with a subscription. No time to upgrade GitLab yourself? A subscription also entitles you to our upgrade and installation services.

Join us for a live Q & A

If you'd like to find out more about GitLab 8.4, sign up to the webcast. We'll give a live walk-through for this release and talk about what's coming up next for GitLab. It's on Thursday, January 28, 5pm (17:00) UTC; 12pm EST; 9am PST.