Improve performance of user profiles, finding groups, and finding projects
This MR improves the following:
* Rendering of profile pages and Atom feeds
* Finding groups (using GroupsFinder & friends)
* Finding projects (using ProjectsFinder & friends)
Initially this MR was intended to only improve rendering of Atom feeds, but over time other fixes were introduced as well as the same code was the cause of all these problems.
See merge request !1790
Award Emoji
This it first iteration of award emoji feature.
We have plan to extend emoji picker by the next release.
For now, you can add award by clicking to the emoji picker or posting a regular comment with emoji like "👍" and any other. You can post not only emoji that listed in the emoji picker.
See merge request !1825
Commits without .gitlab-ci.yml are marked as skipped
- Commits without .gitlab-ci.yml are marked as skipped
- Save detailed error when YAML syntax
This also fixes: #3521#3546
/cc @jacobvosmaer
See merge request !1827
Prevent the last owner of a group from being able to delete themselves
by 'adding' themselves as a master
Replaces !1708.
Fixes#1111.
See merge request !1815
Ensure variable in mail is evalled
I received this snippet in the mail:
```
Content-Type: text/plain;
charset=UTF-8
Content-Transfer-Encoding: 7bit
Project #{@old_path_with_namespace} was moved to another location
The project is now located under
```
This MR fixes it.
Notes:
* I did a quick grep on other 'text.erb' files, but this was the only one with this type of error
* I made no changes to the specs. The only [spec](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/spec/mailers/notify_spec.rb#L412) I could find passes because (I assume) the correct value is in the html-part
See merge request !1706
Rewrite HTTP links to force TLS, where possible
I got annoyed at the fact that the links on the profile page don't force the use of TLS, so I grepped through the entire source tree, tested all the links I found, and replaced them if possible.
See merge request !1806
Create milestones in the group
When you work with groups its quite often you want to create same milestone in multiple projects. This MR allows you to do so
For #3488
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
See merge request !1797
Show specific runners from projects where user is master or owner
This fix for permission escalation when handling specific runners.
The users were allowed to assign runners from projects where they were guests.
See merge request !1809
* Group attachments are not supported so I removed attach file link
* Added changelog item
* Add markdown hint to project milestone form
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
refactor login as to be impersonation with better login/logout
Modifies the existing "login as" feature to be called impersonation.
This also adds:
* Application keep track of who is impersonating the user so they can revert back to the original user without having to log out.
* Stores the user profile via `HTTP_REFERER` so you get redirected back to the person you have impersonated once you stop.
## Screenshots:


See merge request !1702
Expose builds feature
Expose builds feature in project settings (as feature).
Enable it by default for a new projects.
I deliberately named it builds instead of CI, because we actualy allow to run tests using infrastructure built-in GitLab. I'm free to change it.

If we are ok, I'll add feature tests for it.
/cc @sytses @dzaporozhets
See merge request !1767
Refactor complex methods
Make flog part of CI check which is not allowed to fail. I used high score (70) and refactored most complex method. In future releases we should lower acceptable score to something like 40..50
Part of #3444
See merge request !1794