This removes the need for Sidekiq and any overhead/problems introduced
by TCP. There are a few things to take into account:
1. When writing data to InfluxDB you may still get an error if the
server becomes unavailable during the write. Because of this we're
catching all exceptions and just ignore them (for now).
2. Writing via UDP apparently requires the timestamp to be in
nanoseconds. Without this data either isn't written properly.
3. Due to the restrictions on UDP buffer sizes we're writing metrics one
by one, instead of writing all of them at once.
Storing of application metrics in InfluxDB
This adds support for tracking metrics in InfluxDB, which in turn can be visualized using Grafana. For more information see #2936.
See merge request !2042
Fix identity and user retrieval when special characters are used
Fixes#4023
I also added tests to make sure the user with special characters in his name is returned correctly.
@rspeicher this probably should be added to 8.3 as a patch.
See merge request !2176
Automatically fork a project when not allowed to edit a file.
Fixes#3215.
To do:
- [ ] Add tests
-----
## "Edit" button on file in a project the user does NOT have write access to

## Clicking will automatically create a fork

## When the fork has been created, the user is returned to the edit page on the original project with a notice

## The user cannot change the target branch and is informed that editing will start an MR

## Hitting "Commit changes" will commit and start an MR from my fork to the origin project

-----
## "Create file, "Upload file" and "New directory" buttons in a project the user does NOT have write access to

## Clicking any of these options will automatically create a fork

## When the fork has been created, the user is returned to the tree page on the original project with a notice

## Clicking "New directory" again will show the modal. The user cannot change the target branch and is informed that editing will start an MR

## Hitting "Create directory" will commit and start an MR from my fork to the origin project

cc @dzaporozhets @skyruler
See merge request !2145
Add project permissions to all project API endpoints
This standardizes all the project API formats. Also needed to support Huboard.
See merge request !2090
Fix method that ensures authentication token
Until now, `ensure_#{token_filed_name}!` method didn't persist new token in database.
This closes#4235.
See merge request !2185