Decouple SAML authentication from the default Omniauth logic
Fixes gitlab-org/gitlab-ee#178
With this merge request SAML gets its own login logic and its own `User` class under `lib/gitlab/saml/` This is needed to give SAML more versatility over how the authorization process works and to pave the way for the development of a SAML group sync as outlined here: gitlab-org/gitlab-ee#118
See merge request !2782
Use SCAN during 'rake cache:clear'
This allows 'rake cache:clear' to delete millions of keys without
choking. It requires Redis 2.8.0 or newer but we needed that already
anyway.
See merge request !2872
Only set autocrlf when creating/updating files
Related issue: gitlab-org/gitlab-ce#13457
Details: 5619a6de1dd6fc1dfd4053810c7b11c677b7a495
See merge request !2859
Uses cross browser niceScroll to do scrolling on sidebar.
Fixes: #13544
Firefox does not support `-webkit-scrollbar` and there is no alternative for FF. So for example Gmail falls back to no fancy scrollbar. Stuck with jQuery, which is a good solution, since we already use it.
This also leaves the default scrollbar as is.

Also fixes horz scroll issue:

cc @creamzy @dzaporozhets
See merge request !2873
Fix CI builds scheduler when first build in stage is allowed to fail
This fixes an edge case in CI builds scheduler when first build in stage was marked as allowed to fail.
Closes#3192
See merge request !2869
If path_with_namespace is nil Repository#raw_repository will also return
nil. Apparently code out there creates a Repository instance without a
namespace path. Right.
Now that Repository#raw_repository no longer sets the autocrlf option it
will also no longer raise any NoRepository errors since it doesn't
access Rugged any more. This also means that Repository#exists? can't
simply return the raw repository as this is no indication of whether or
not the repository actually exists (besides returning a non boolean is
weird in the first place).
To solve this problem Repository#exists? now properly checks if the
repository exists and returns true/false instead of a
Gitlab::Git::Repository or nil object.
Before this fix when there was only one relevant, previous build and it
failed, but was allowed to fail, entire build had been marked as
skipped.
Closes#3192
Setting the "autocrlf" Git option is an overkill since it's rarely
actually needed. More importantly, it has quite the impact on
performance (see gitlab-org/gitlab-ce#13457 for more information).
By setting "autocrlf" when creating or updating files we guarantee the
option is always set properly when we actually need it _without_
introducing overhead for requests that have nothing to do with this
option.
Fixesgitlab-org/gitlab-ce#13457
Re-add section about NGINX config and init script updates in 8.4->8.5 update doc
These sections were removed by !2766 but:
- even if the NGINX config wasn't modified, it might
be in future updates so it's better to always have
it instead of having to remember to add it depending
on the changes
- the init script update section must be there since
it's a safe command line that should be run on every update
This fixes https://github.com/gitlabhq/gitlabhq/issues/10031.
/cc @rspeicher @yorickpeterse
See merge request !2815
Reduce code complexity on GitPushService#execute
Code complexity for gitlab-ce after this has been refactored:
```
27.3: GitPushService#execute
```
This still needs to be merged into `gitlab-ee` presumably with conflicts... Perhaps we should create another issue for doing that?
I left the code sort of similar to what it was... If I could, I would have refactored most of the code into separate classes, etc. as it breaks probably all SOLID principles.
Fixes https://gitlab.com/gitlab-org/gitlab-ce/issues/13327
See merge request !2784
Add ability to see and sort on vote count from Issues and MR lists
Fixes#3763
* Sort options

* Most popular

* Least popular

See merge request !2781