In #37955,we see that the profile had a number of N+1 queries from repeated
access to `cross_reference_not_visible_for?`. This was optimized in previous
versions of GitLab by rendering all notes at once, counting the number of
visible references, and then using that number to check whether a system note
should be fully redacted.
There was also another N+1 query calling `ProjectTeam#member?`, which did not
take advantage of an optimization in prepare_notes_for_rendering that would
preload the maximum access level per project.
Closes#37955
When a user selected 'Instance default' as value for the auto devops
settings, this was interpreted as a true value. Now we post an empty
string in this case, meaning we want to set `NULL` in the database.
Fixes https://gitlab.com/gitlab-org/gitlab-ce/issues/37893#note_40541294
* upstream/master: (62 commits)
Update gitlab.po: Missing 'r' in "Fouché" that comes from "Fourcher" verb.
Docs: update user docs index
Fix minor typos in views
Fix Layout/SpaceBeforeBlockBraces violation in bin/changelog_spec
Merge branch 'rs-alphanumeric-ssh-params' into 'security-9-4'
Merge branch 'import-symlinks-9-3' into 'security-9-3'
Fix wrong method call on prometheus histogram
Document new all-in-one Helm chart - docs
Fix 404 on link path
Fix line numbers not matching up to code in code viewer.
Hide overflow-x on collapsed sidebar
removed global use of breakpoint checker
Increase performance of the breakpoint size checker
Filter sensitive query string parameters from NGINX access logs
Added a template for database changes
Render new issue link in failed job as a regular link instead of a UJS one
Include RE2 in the upgrade docs
Remove affix plugin from issuable sidebar with new navigation
Fix linter error
alternative route for download archive
...
* master: (177 commits)
Add changelog
Bump gitlab-shell version to 5.8.0 to fix Git for Windows 2.14
Make contextual sidebar collapsible
Fixed sidebar context header hover colors
Use correct `Environment`-class within `Gitlab` namespace
Remove gl.Activities from Commits page
Move `let` calls inside the `describe` block using them
Add `/assign me` alias support for assigning issuables to oneself
GRPC::Unavailable (< GRPC::BadStatus) is wrapped in a CommandError
Use `broken_storage` in the fs_shards_spec.
Eager load project creators for project dashboards
Memoize a user's personal projects count
Remove redundant query from User#recent_push
Improve checking if projects would be returned
Change spelling of gitlab-shell
Remove unused #tree-holder
Add custom linter for inline JavaScript to haml_lint
Rename user_can_admin? because it's more accurate
Synchronous zanata community contribution translation
Add Korean translation to i18n
...
This shared example would take an object's database ID and create a
number of objects based on it. If for some reason the ID were a high
number, like 20, this would create `20 + 21 + 22` objects.
Not only was this dangerous from a performance perspective, it was
entirely unnecessary, as the behavior it was testing is already
well-tested in the unit test for the underlying object. For a controller
test, which is what's including this shared example, all we need to do
is verify that the assigned object contains the correct `id => object`
Hash, which is what we now test for.
A commit comment shows in the MR, but if the MR is from a fork, it will have a
different project ID to the MR's target project. In that case, add an
note_project_id param so that we can pick the correct project for the note.