Move feature specs for shortcuts to valid directory
This MR moves tests to valid directory that matches our namespace we use in code.
See merge request !4433
Clicking search pill focuses field
When clicking the pill in the search field, it now focus the field. Previously you would have to make sure you click in the field.
Fixed an issue where clicking out of the field wouldn't remove the focus
outline
Also reduced some of the HTML to remove what isn't needed
See merge request !4279
Fix serious performance bug with rendering Markdown with InlineDiffFilter
Nokogiri's `node.replace` was being unnecessarily called for every text node in
the document due to a comparison bug. The code previously was comparing the
HTML representation of the full document against the text node, which would
always fail. Fix the comparison to just compare the modified text.
Closes#18011
See merge request !4392
Fix link to blank group icon
When the group is the default blank icon, this needs to use the
`image_path` helper; otherwise, the link won't work if assets are
precompiled. This still works fine for uploaded icons in either case.
Closes#14446.
See merge request !4375
Fix wiki project clone address error
_Note: Originally opened at !4407 by @chujinjin._
---
fix wiki project clone address error in Wiki Git Access View, show as below:

Fixes#17643.
See merge request !4429
When the group is the default blank icon, this needs to use the
`image_path` helper; otherwise, the link won't work if assets are
precompiled. This still works fine for uploaded icons in either case.
Minor doc updates
## What does this MR do?
Adds to and clarifies some documentation. Specifically, when using `gdb` to debug you need to detach and exit when done. Next, this clarifies the type of file locking that we require.
Thanks to @northrup for the details about mandatory vs. advisory file locking.
Note: These were two really small changes so I combined in to one merge request. However, I left the commits separate for clarity.
See merge request !4421
Nokogiri's `node.replace` was being unnecessarily called for every text node in
the document due to a comparison bug. The code previously was comparing the
HTML representation of the full document against the text node, which would
always fail. Fix the comparison to just compare the modified text.
Closes#18011
Load d3 only when necessary
Now d3 is only loaded on the users' show page and the graphs pages, where it's necessary.
Redo of !3993.
This decreases page size from 4.6MB to 4.3MB for a given Activity page (before compression), or a savings of 300KB. This is essentially a proof of concept for removing larger dependencies such as the Ace Editor, Chart.js, and Raphael, which will likely provide another 1MB of savings on most pages (again, before compression).
See merge request !4394
Remove Coveralls and Semaphore badges. [ci skip]
Remove Coveralls and Semaphore badges from the README. They're outdated,
unused, and not GitLab CI :)
[ci skip]
See merge request !4334
Upgrade devise, devise-two-factor, and attr_encrypted
Devise 4 includes support for Rails 5, working towards #14286. devise-async doesn't support Devise 4.0 and in 4.1 the bug that was blocking using Devise's built-in ActiveJob integration was fixed. So devise-async is removed. devise-two-factor 3.0.0 is required for Devise 4 support.
attr_encrypted and encryptor are optional but recommended upgrades for devise-two-factor 3.0.0. The mode and algorithm will need to be changed in order to update to attr_encrypted 4.x in the future.
See merge request !4216
Use downcased path to container repository as this is expected path by Docker
## What does this MR do?
Docker Engine requires path to be lowercase. This makes all container registry paths to be show and used downcased instead of mixed case.
Fixes https://gitlab.com/gitlab-org/gitlab-ce/issues/17959
See merge request !4420
Implement new row hover style
## What does this MR do?
Implement new row hover style
## What are the relevant issue numbers?
Closes#17187
## Screenshots (if relevant)

cc @dzaporozhets
See merge request !4422
MR widget mobile styling
## What does this MR do?
Corrects MR widget styling for mobile viewing.
## Are there points in the code the reviewer needs to double check?
I have tested all MR states.
## Why was this MR needed?
UX.
## What are the relevant issue numbers?
Closes#17676.
## Screenshots (if relevant)

See merge request !4386
Add Edge to supported browsers list.
Add Microsoft's Edge browser to the list of supported browsers. We support the latest stable version.
See merge request !4416
Enable Style/For rubocop cop
> Do not use `for`, unless you know exactly why. Most of the time iterators should be used instead. `for` is implemented in terms of `each` (so you're adding a level of indirection), but with a twist - `for` doesn't introduce a new scope (unlike `each`) and variables defined in its block will be visible outside it.
See #17478
See merge request !4397
Merge Builds and Pipelines tab into one
Based on https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/4053#note_12064642. Main idea is to keep all CI-related pages under one tab. So we can keep top navigation clean.
First I tried `CI/CD` naming but it looked weird so I just used Pipelines as tab name. I did not change project settings naming.
cc @ayufan @markpundsack @jschatz1
See merge request !4340
Separate reference gathering from rendering
This is a required step to allow batch processing when gathering references. This in turn would allow grabbing (for example) all mentioned users of an issue/merge request using a single query.
cc @rspeicher @DouweM
See merge request !3969
There are several changes to this module:
1. The use of an explicit stack in Participable#participants
2. Proc behaviour has been changed
3. Batch permissions checking
== Explicit Stack
Participable#participants no longer uses recursion to process "self" and
all child objects, instead it uses an Array and processes objects in
breadth-first order. This allows us to for example create a single
Gitlab::ReferenceExtractor instance and pass this to any Procs. Re-using
a ReferenceExtractor removes the need for running potentially many SQL
queries every time a Proc is called on a new object.
== Proc Behaviour Changed
Previously a Proc in Participable was expected to return an Array of
User instances. This has been changed and instead it's now expected that
a Proc modifies the Gitlab::ReferenceExtractor passed to it. The return
value of the Proc is ignored.
== Permissions Checking
The method Participable#participants uses
Ability.users_that_can_read_project to check if the returned users have
access to the project of "self" _without_ running multiple SQL queries
for every user.
Fix cancelability and retriablity of pipeline with generic statuses
Currently it's not possible to cancel or retry generic status since this is external thing to GitLab.
This fixes shown actions of pipelines containing only these actions.
See merge request !4380
Use project that belongs to pipeline in view
## What does this MR do?
This MR makes project in pipelines view match the one that pipeline has been created for.
Closes#17943
See merge request !4376