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
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
Now that we autoscale runner, we don't need to optimize for their usage
anymore. Abusing of "ci skip", for instance for view changes can lead to
broken specs, so let's just not use it!
Signed-off-by: Rémy Coutable <remy@rymai.me>
Make EmailsOnPushWorker use Sidekiq mailers queue
A customer was having issues with EmailsOnPushWorker clogging the Sidekiq queues and merge requests not being handled quickly. While researching whether it would possible to spin up a separate Sidekiq task just to handle merge requests and other key functions, I found that this worker was using the default Sidekiq queue. Moving to the `mailers` queue makes it possible to de-prioritize this worker and give more weight to the others.
See merge request !4390
Use `Snippet#to_reference` directly
## What does this MR do?
Instead of hard coding snippet reference, we could just use the existing method for that.
## Why was this MR needed?
To address https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/4338#note_12166325 from @DouweM
/cc @jschatz1
See merge request !4379
Pass the "Remember me" value to the 2FA token form
Prior, if a user had 2FA enabled and checked the "Remember me" field,
the setting was ignored because the OTP input was on a new form and the
value was never passed.
Closes#18000
See merge request !4369