Fix concurrent request when updating build log in browser
If you have a slow internet connection the trace will not be updated correctly. We need to check if our request is the latest one.
Fixes: https://gitlab.com/gitlab-org/gitlab-ce/issues/17535
See merge request !4183
Changed the Slack build message to use the singular duration if necessary
## What does this MR do?
Previously, the Slack build notification would say "second(s)" even when the duration was only 1 second. This MR fixes that. This is my first time writing Ruby code and my first MR on Gitlab, so feedback is very much appreciated!
See merge request !4253
Update health_check.md - Fix spelling of admin/health_check path. [ci skip]
## What does this MR do?
Fix the spelling of admin/heath_check to admin/health_check in health_check documentation
## Are there points in the code the reviewer needs to double check?
No
## Why was this MR needed?
Fix a spelling error that may mislead a user on the proper URL/Path to check the GitLab health.
## What are the relevant issue numbers?
## Screenshots (if relevant)
See merge request !4282
Clicking changes tab scrolls the window to show the content
When you click on the changes tab in a merge request, it will now scroll the window down to the content.

Closes#15133
See merge request !4192
Update Google integration API workflow
## What does this MR do?
Updates the Google API workflow.
## Are there points in the code the reviewer needs to double check?
No
## Why was this MR needed?
Reported by a user
https://gitlab.zendesk.com/agent/tickets/24402
## Screenshots (if relevant)

See merge request !4260
Project navigation redesign
Based on !3980. Part of #14838. This MR targets on desktop version. Mobile version improvements will be in separate merge request.
Part of #17522
cc @jschatz1
See merge request !4053
Enable multiple Rubocop cops that can be enabled
See https://gitlab.com/gitlab-org/gitlab-ce/issues/17406
This enabled following cops:
```text
Lint/CircularArgumentReference:
Description: Default values in optional keyword arguments and optional ordinal arguments
----------------
Lint/ConditionPosition:
Description: Checks for condition placed in a confusing position relative to the keyword.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#same-line-condition
----------------
Lint/Debugger:
Description: Check for debugger calls.
----------------
Lint/DefEndAlignment:
Description: Align ends corresponding to defs correctly.
----------------
Lint/DuplicateMethods:
Description: Check for duplicate method definitions.
----------------
Lint/DuplicatedKey:
Description: Check for duplicate keys in hash literals.
----------------
Lint/EachWithObjectArgument:
Description: Check for immutable argument given to each_with_object.
----------------
Lint/ElseLayout:
Description: Check for odd code arrangement in an else block.
----------------
Lint/EmptyEnsure:
Description: Checks for empty ensure block.
----------------
Lint/EmptyInterpolation:
Description: Checks for empty string interpolation.
----------------
Lint/EndAlignment:
Description: Align ends correctly.
----------------
Lint/EndInMethod:
Description: END blocks should not be placed inside method definitions.
----------------
Lint/EnsureReturn:
Description: Do not use return in an ensure block.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-return-ensure
----------------
Lint/Eval:
Description: The use of eval represents a serious security risk.
----------------
Lint/FloatOutOfRange:
Description: Catches floating-point literals too large or small for Ruby to represent.
----------------
Lint/FormatParameterMismatch:
Description: The number of parameters to format/sprint must match the fields.
----------------
Lint/ImplicitStringConcatenation:
Description: Checks for adjacent string literals on the same line, which could better
be represented as a single string literal.
----------------
Lint/InvalidCharacterLiteral:
Description: Checks for invalid character literals with a non-escaped whitespace character.
----------------
Lint/LiteralInInterpolation:
Description: Checks for literals used in interpolation.
----------------
Lint/NestedMethodDefinition:
Description: Do not use nested method definitions.
StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-nested-methods
----------------
Lint/NextWithoutAccumulator:
Description: Do not omit the accumulator when calling `next` in a `reduce`/`inject`
block.
----------------
Lint/RandOne:
Description: Checks for `rand(1)` calls. Such calls always return `0` and most likely
a mistake.
----------------
Lint/RequireParentheses:
Description: Use parentheses in the method call to avoid confusion about precedence.
----------------
Lint/UnreachableCode:
Description: Unreachable code.
----------------
Lint/UselessComparison:
Description: Checks for comparison of something with itself.
----------------
Lint/UselessElseWithoutRescue:
Description: Checks for useless `else` in `begin..end` without `rescue`.
----------------
Lint/UselessSetterCall:
Description: Checks for useless setter call to a local variable.
----------------
Lint/Void:
Description: Possible use of operator/literal/variable in void context.
----------------
Performance/DoubleStartEndWith:
Description: Use `str.{start,end}_with?(x, ..., y, ...)` instead of `str.{start,end}_with?(x,
...) || str.{start,end}_with?(y, ...)`.
----------------
Performance/RedundantSortBy:
Description: Use `sort` instead of `sort_by { |x| x }`.
----------------
Rails/FindBy:
Description: Prefer find_by over where.first.
Include:
- app/models/**/*.rb
----------------
Rails/FindEach:
Description: Prefer all.find_each over all.find.
Include:
- app/models/**/*.rb
----------------
Rails/PluralizationGrammar:
Description: Checks for incorrect grammar when using methods like `3.day.ago`.
----------------
Rails/ScopeArgs:
Description: Checks the arguments of ActiveRecord scopes.
Include:
- app/models/**/*.rb
```
See merge request !4261