<commit_before>---
layout: post
title: "GitLab 7.3 released with performance improvements"
date: 2014-09-22 12:50:22 +0200
comments: true
categories:
author: <NAME>
---

GitLab is open source software to collaborate on code.
Today we announce the release of a new version of GitLab Community Edition (CE) and GitLab Enterprise Edition (EE), with new features, usability and performance improvements, and bug fixes.
The biggest new feature in Community Edition is the improved performance with large pushes.
Other changes include the ability to edit a file in fullscreen (zen) mode, 'comment and close' button, wiki and snippets search and several API improvements.

In addition to the updates from Community Edition, GitLab Enterprise Edition allows assigning multiple LDAP groups to a single GitLab group.

This month's Most Valuable Person (MVP) is <NAME> for contributing zen mode, keyboard shortcuts and helping out on the issue tracker.
Thanks Robert!

<!--more-->

## Improved performance on large pushes

Previously on a push that contained 1 thousand branches GitLab would create 1 thousand workers.

That would take some time to process during which other background tasks would be queued.

With the changes introduced in GitLab 7.3, a single push will only create a single worker which will handle all branches.

This allows other workers to be ready for new jobs and any long running workers can
easily be stopped if necessary and making it less likely that GitLab slows down due to large pushes.


## Keyboard shortcuts

Thanks to the contribution by <NAME>, keyboard shortcuts have been further improved with multiple shortcuts added. Navigation in GitLab just got easier!

[![screenshot](/images/7_3/keyboard.png)](/images/7_3/keyboard.png)


## Comment and close button

When commenting in an issue or merge request you can now easily close an issue while leaving the comment.

[![screenshot](/images/7_3/comment_and_close.gif)](/images/7_3/comment_and_close.png)

## Zen (fullscreen) mode

Thanks to the contribution by <NAME>, you can now switch into a fullscreen mode to have more room to edit your issue, merge request or a comment.

[![screenshot](/images/7_3/zen.gif)](/images/7_3/zen.gif)


## New commits linked in Merge Request

When new commits are pushed to the existing Merge Request, they will be shown in the Merge Request timeline.

[![screenshot](/images/7_3/linked_commits.png)](/images/7_3/linked_commits.png)

## New API features

Users can now filter issues by state and labels when interacting with the API.

Thanks to sponsoring by O'Reilly Media it is now possible to sort merge requests in ascending or descending order for updated_at and created_at fields.

In addition you can also get more detailed information about merge requests and comments.
You can read more about the GitLab API at [doc.gitlab.com/ce/api](http://doc.gitlab.com/ce/api/README.html).


## Assigning multiple LDAP groups to a GitLab group (EE only feature)

Synchronizing with more than one LDAP group is now possible with GitLab 7.3 EE.
You can link multiple LDAP groups to a single GitLab group and give them different permissions.

This makes our LDAP integration much more powerful and flexible.

Check the [documentation](http://doc.gitlab.com/ee/integration/ldap.html#synchronizing-with-more-than-one-ldap-group-gitlab-ee-7.3-and-newer) for more information.

[![screenshot](/images/7_3/multiple_ldap_groups.png)](/images/7_3/multiple_ldap_groups.png)

## Security: connect to Redis via sockets

Redis is an in-memory database used by GitLab for asynchronous inter-process communication, cache storage and session storage.
A standard Redis installation trusts all local TCP connections.
This means that who can create a TCP connection originating on the GitLab server could in theory modify or read user session data.
As a security measure against this risk we are changing the default settings for GitLab to connect to Redis via Unix domain sockets.
This allows system administrators to limit Redis access to the `git` user using file/directory permissions.

What do you need to do to switch to Redis via sockets?

- Omnibus-gitlab users switch to sockets automatically when they upgrade to 7.3.
Tip: if you changed your Redis port in gitlab.rb with `redis['port'] = xxxx` to avoid port conflicts, you can remove that line now.
- The required configuration changes for manual installations are [described in the 7.3 upgrade guide](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/update/7.2-to-7.3.md).
- Instructions for cookbook-gitlab are still a [work in progress](https://gitlab.com/gitlab-org/cookbook-gitlab/issues/68).

Unix domain sockets only work for connections between local processes.
If your Redis instance is running on another machine consider adding the firewall rules below.
Alternatively, you could create an encrypted connection between the GitLab server and the Redis server using [spiped](http://www.tarsnap.com/spiped.html).
<commit_msg>Add missing subject<commit_after>---
layout: post
title: "GitLab 7.3 released with performance improvements"
date: 2014-09-22 12:50:22 +0200
comments: true
categories:
author: <NAME>
---

GitLab is open source software to collaborate on code.
Today we announce the release of a new version of GitLab Community Edition (CE) and GitLab Enterprise Edition (EE), with new features, usability and performance improvements, and bug fixes.
The biggest new feature in Community Edition is the improved performance with large pushes.
Other changes include the ability to edit a file in fullscreen (zen) mode, 'comment and close' button, wiki and snippets search and several API improvements.

In addition to the updates from Community Edition, GitLab Enterprise Edition allows assigning multiple LDAP groups to a single GitLab group.

This month's Most Valuable Person (MVP) is <NAME> for contributing zen mode, keyboard shortcuts and helping out on the issue tracker.
Thanks Robert!

<!--more-->

## Improved performance on large pushes

Previously on a push that contained 1 thousand branches GitLab would create 1 thousand workers.

That would take some time to process during which other background tasks would be queued.

With the changes introduced in GitLab 7.3, a single push will only create a single worker which will handle all branches.

This allows other workers to be ready for new jobs and any long running workers can
easily be stopped if necessary and making it less likely that GitLab slows down due to large pushes.


## Keyboard shortcuts

Thanks to the contribution by <NAME>, keyboard shortcuts have been further improved with multiple shortcuts added. Navigation in GitLab just got easier!

[![screenshot](/images/7_3/keyboard.png)](/images/7_3/keyboard.png)


## Comment and close button

When commenting in an issue or merge request you can now easily close an issue while leaving the comment.

[![screenshot](/images/7_3/comment_and_close.gif)](/images/7_3/comment_and_close.png)

## Zen (fullscreen) mode

Thanks to the contribution by <NAME>, you can now switch into a fullscreen mode to have more room to edit your issue, merge request or a comment.

[![screenshot](/images/7_3/zen.gif)](/images/7_3/zen.gif)


## New commits linked in Merge Request

When new commits are pushed to the existing Merge Request, they will be shown in the Merge Request timeline.

[![screenshot](/images/7_3/linked_commits.png)](/images/7_3/linked_commits.png)

## New API features

Users can now filter issues by state and labels when interacting with the API.

Thanks to sponsoring by O'Reilly Media it is now possible to sort merge requests in ascending or descending order for updated_at and created_at fields.

In addition you can also get more detailed information about merge requests and comments.
You can read more about the GitLab API at [doc.gitlab.com/ce/api](http://doc.gitlab.com/ce/api/README.html).


## Assigning multiple LDAP groups to a GitLab group (EE only feature)

Synchronizing with more than one LDAP group is now possible with GitLab 7.3 EE.
You can link multiple LDAP groups to a single GitLab group and give them different permissions.

This makes our LDAP integration much more powerful and flexible.

Check the [documentation](http://doc.gitlab.com/ee/integration/ldap.html#synchronizing-with-more-than-one-ldap-group-gitlab-ee-7.3-and-newer) for more information.

[![screenshot](/images/7_3/multiple_ldap_groups.png)](/images/7_3/multiple_ldap_groups.png)

## Security: connect to Redis via sockets

Redis is an in-memory database used by GitLab for asynchronous inter-process communication, cache storage and session storage.
A standard Redis installation trusts all local TCP connections.
This means that an attacker who can create a TCP connection originating on the GitLab server could be able to modify or read user session data.
As a security measure against this risk we are changing the default settings for GitLab to connect to Redis via Unix domain sockets.
This allows system administrators to limit Redis access to the `git` user using file/directory permissions.

What do you need to do to switch to Redis via sockets?

- Omnibus-gitlab users switch to sockets automatically when they upgrade to 7.3.
Tip: if you changed your Redis port in gitlab.rb with `redis['port'] = xxxx` to avoid port conflicts, you can remove that line now.
- The required configuration changes for manual installations are [described in the 7.3 upgrade guide](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/update/7.2-to-7.3.md).
- Instructions for cookbook-gitlab are still a [work in progress](https://gitlab.com/gitlab-org/cookbook-gitlab/issues/68).

Unix domain sockets only work for connections between local processes.
If your Redis instance is running on another machine consider adding the firewall rules below.
Alternatively, you could create an encrypted connection between the GitLab server and the Redis server using [spiped](http://www.tarsnap.com/spiped.html).

{'fraction_non_alphanumeric': 0.06424497148003602, 'fraction_numerical': 0.011608125687981587, 'mean_word_length': 4.665532879818594, 'pattern_counts': {'":': 0, '<': 13, '<?xml version=': 0, '>': 13, 'https://': 4, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1923228', 'n_tokens_mistral': 2779, 'n_tokens_neox': 2589, 'n_words': 1331}