Added cache:key to .gitlab-ci.yml allowing to fine tune the caching
The `cache:key` allows you to define the affinity mask of caching, allowing to have single cache for all jobs, or cache per-job, or per-branch, or any other way you would need:
1. Cache per-build for all branches:
```
cache:
key: "$CI_BUILD_NAME"
untracked: true
```
2. Cache per-branch for all jobs:
```
cache:
key: "$CI_BUILD_REF"
untracked: true
```
/cc @DouweM @grzesiek @axil
See merge request !2436
Creator should be added as a master of the project on creation
Fixes#4222
This also enable a project creator to add themselves as a master of the
project for existing repositories that were created in the meanwhile
that they don't appear as members.
See merge request !2520
Added documentation for GitLab Metrics
This adds documentation for the metrics code I recently added.
Two notes:
* I'm referring to this feature as "GitLab Metrics" everywhere simply
because the code resides in the `Gitlab::Metrics` namespace. A
different name is fine, though I think just "Metrics" might be a bit
too abstract.
* Grafana isn't covered since it's fairly straight-forward to setup
(there's nothing really special we can cover). I think we _should_
cover it once we start shipping it with Omnibus.
I assigned @axil since he's our technical writer/documentation guru,
feel free to re-assign if needed.
cc @sytses @axil @dzaporozhets @JobV
See merge request !2484
Add sentry integration
Sentry is an event logging platform primarily focused on capturing and
aggregating exceptions. With this MR it will be possible to log and
track exceptions from GitLab to Sentry.
https://gitlab.com/gitlab-com/operations/issues/39
See merge request !2485
Fixes tooltip doesn't duplicate the "me" name.
Checks that "me" is not in the array of names in tooltip

Closes https://gitlab.com/gitlab-org/gitlab-ce/issues/7978
See merge request !2454
Added X-GitLab-... headers to emails from CI and Email On Push services
Fixes#2098
This adds the 'X-GitLab-Project', 'X-GitLab-Project-Id' and
'X-GitLab-Project-Path' headers to emails from CI and Email On Push in a way
that it is done currently for merge requests and issues emails.
Additionally, CI emails will have 'X-GitLab-Build-Status' header with either
'fail' or 'success'.
Emails from Email On Push will include 'X-Gitlab-Author' header containing the
username of user who did the push.
See merge request !2159
Starring project only increases star count
This is instead of increasing star & fork count
Fixes#11396

cc. @jschatz1
See merge request !2504
Fix double request issue in artifacts browser
This fixed problem with double propagation when clicking a link that lies inside tr with clicked event attached.
See merge request !2496
Greatly improve external_issue_tracker performance
See 3d41133d48f6522b8755bb91b804864e8e520871 for all the details. As an aside, this commit contains a set of migrations that will introduce downtime as they add a column with a default value which in turn locks the entire table (at least on PostgreSQL).
See merge request !2498
Fix positioning issues with browse files button
Issue is that in Firefox clipboard is blocking the browse files
from moving all the way to the right.
Move clipboard up 1px into -1px to unblock "browse files"
SS from firefox:

Fixes https://gitlab.com/gitlab-org/gitlab-ce/issues/10849
See merge request !2489
Reduce margin to fit dropdowns

Fixes#10747
See merge request !2492
Improve UX in build artifacts browser
This improves UX in build artifacts browser, and makes it more consistent with repository tree browser we already have.
---
Before:

---
After:

---
It is easier to click on a file/directory entry now, because we don't need to click on a entry's basename (that can be really short, like `..` parent directory). We also show `Compressed to` size that indicates how much storage does this entry really consume.
Row for an entry is also highlighted on hover and we do not have Download button (clicking on a file row / file basename is enough to download a file).
Closes#10242
See merge request !2477
Move entry `Fix: As an admin, cannot add oneself as a member to a
group/project`
The CHANGELOG entry said it was fixed in 8.2.3. However, I found
https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/1942 that
suggests it wasn't fixed until 8.3.0. A customer experienced this
issue on 8.2.3, still. This ultimately led to me investigating this
further.
[ci skip]
See merge request !2488
Ensure Gravatar host looks like an actual host
Solves #10243.
I've chosen to simplify the method that extracts the host: since we
only need the host, let's get rid of the path and thus get rid of the
escaping problems!
Unit tests should ensure that most of the cases are covered.
See merge request !2482