Fetch frecent groups and projects via the GraphQL API
What does this MR do and why?
Fetch frecent groups and projects via the GraphQL API
Implements the frontend bits necessary to fetch frecent items through the GraphQL API and render them in the global search modal. This drops the localStorage-based frecency tracking. Users might see slightly different namespaces being suggested as we switch to a smarter scoring algorithm. Due to the tracking being done server-side, frecent items now persist across browsers. Namespaces that have been removed or that the user can't access (when SAML is required for example) are now properly excluded from the displayed list.
These changes are behind the disabled-by-default
frecent_namespaces_suggestions
feature flag.
Screenshots or screen recordings
How to set up and validate locally
- Enable the
:frecent_namespaces_suggestions
feature flag:echo "Feature.enable(:frecent_namespaces_suggestions)" | rails c
- In any page, open the global search modal (/ keyboard shortcut).
- Notice that the
Frequently visited projects
andFrequently visited groups
load items. - When the query resolves, you should see a list of namespaces you have frequently/recently (frecently) interacted with.
- There should be more or less the same items as with the
:frecent_namespaces_suggestions
feature flag disabled, but you might notice some differences as the scoring algorithm boosts most recent visits. - If, for some reason1 you loose access to any namespace in the list, it should not show up anymore the next time frecent items are loaded.
- You cannot manually remove a project from the list. The ability to remove a project was previously introduced as a workaround to some namespaces remaining in the list even though they had become unavailable (see previous point). This is now all handled server-side.
- Note that your frecent items persist across browsers/devices since visits are now tracked server-side instead of client-side in the local storage.
- Notice that the
1: You are removed from a private project's members, the project gets deleted, the project requires SAML sign-in, etc.
MR acceptance checklist
This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.
-
I have evaluated the MR acceptance checklist for this MR.
Related to #431045 (closed)
Merge request reports
Activity
changed milestone to %16.7
assigned to @pgascouvaillancourt
1 Warning featureaddition and featureenhancement merge requests normally have a documentation change. Consider adding a documentation update or confirming the documentation plan with the Technical Writer counterpart.
For more information, see:
- The Handbook page on merge request types.
- The definition of done documentation.
1 Message CHANGELOG missing: If this merge request needs a changelog entry, add the
Changelog
trailer to the commit message you want to add to the changelog.If this merge request doesn't need a CHANGELOG entry, feel free to ignore this message.
Reviewer roulette
Changes that require review have been detected!
Please refer to the table below for assigning reviewers and maintainers suggested by Danger in the specified category:
Category Reviewer Maintainer backend @ddieulivol
(UTC+1, 6 hours ahead of author)
@eurie
(UTC-5, same timezone as author)
frontend @dzubova
(UTC+1, 6 hours ahead of author)
@ntepluhina
(UTC+1, 6 hours ahead of author)
Please check reviewer's status!
Feel free to override these selections if you think someone else would be better-suited or use the GitLab Review Workload Dashboard to find other available reviewers.
To read more on how to use the reviewer roulette, please take a look at the Engineering workflow and code review guidelines. Please consider assigning a reviewer or maintainer who is a domain expert in the area of the merge request.
Once you've decided who will review this merge request, assign them as a reviewer! Danger does not automatically notify them for you.
If needed, you can retry the
danger-review
job that generated this comment.Generated by
Dangeradded 173 commits
-
f44dc6e8...2cb9ba3d - 172 commits from branch
master
- 16d1ac61 - Fetch frecent groups and projects via the GraphQL API
-
f44dc6e8...2cb9ba3d - 172 commits from branch
added sectioncore platform label and removed sectiondev label
- A deleted user
added backend label
Bundle size analysis [beta]
This compares changes in bundle size for entry points between the commits 20ca0d87 and 143e7250
Special assetsEntrypoint / Name Size before Size after Diff Diff in percent average 4.11 MB 4.11 MB - 0.0 % mainChunk 3.07 MB 3.07 MB - 0.0 %
Note: We do not have exact data for 20ca0d87. So we have used data from: 9affe870.
The intended commit has no webpack pipeline, so we chose the last commit with one before it.Please look at the full report for more details
Read more about how this report works.
Generated by
Danger Generated bygitlab_quality-test_tooling
. Please share your feedback and suggestions.
Slow tests detected in this merge request, might be related with changed RSpec files.Job File Name Duration Expected duration #5510848568 ee/spec/features/search/elastic/global_search_spec.rb#L25
Global elastic search I search through the issues and I see pagination has a pagination 56.02 s < 50.13 s #5510848568 ee/spec/features/search/elastic/global_search_spec.rb#L183
Global elastic search redactions when block_anonymous_global_searches is disabled behaves like a redacted search results page behaves like redacted search results page assertions when logged in redacts private features the user does not have access to 50.94 s < 50.13 s #5511104466 ee/spec/features/search/elastic/global_search_spec.rb#L25
Global elastic search I search through the issues and I see pagination has a pagination 66.03 s < 50.13 s #5520835296 ee/spec/features/search/elastic/global_search_spec.rb#L25
Global elastic search I search through the issues and I see pagination has a pagination 60.79 s < 50.13 s #5520835151 spec/features/dashboard/projects_spec.rb#L244
Dashboard Projects avoids an N+1 query in dashboard index 125.67 s < 50.13 s #5520835151 spec/features/dashboard/projects_spec.rb#L39
Dashboard Projects when user has access to the project when role changes displays the right role 62.48 s < 50.13 s #5520835151 spec/features/dashboard/projects_spec.rb#L94
Dashboard Projects when on Your projects tab shows personal projects on personal projects tab 64.11 s < 50.13 s #5525448425 ee/spec/features/search/elastic/global_search_spec.rb#L25
Global elastic search I search through the issues and I see pagination has a pagination 60.18 s < 50.13 s #5527097412 ee/spec/features/search/elastic/global_search_spec.rb#L25
Global elastic search I search through the issues and I see pagination has a pagination 51.04 s < 50.13 s - A deleted user
added rspec:slow test detected label
added 1 commit
- 18a4338d - Fetch frecent groups and projects via the GraphQL API
Allure report
allure-report-publisher
generated test report!e2e-test-on-gdk:
test report for 143e7250expand test summary
+-----------------------------------------------------------------------+ | suites summary | +------------------+--------+--------+---------+-------+-------+--------+ | | passed | failed | skipped | flaky | total | result | +------------------+--------+--------+---------+-------+-------+--------+ | Create | 40 | 0 | 7 | 0 | 47 | ✅ | | Plan | 55 | 0 | 0 | 0 | 55 | ✅ | | Govern | 48 | 0 | 0 | 0 | 48 | ✅ | | Data Stores | 22 | 0 | 0 | 0 | 22 | ✅ | | Verify | 32 | 0 | 0 | 0 | 32 | ✅ | | Framework sanity | 0 | 0 | 1 | 0 | 1 | ➖ | | Package | 0 | 0 | 1 | 0 | 1 | ➖ | | Monitor | 4 | 0 | 0 | 0 | 4 | ✅ | | Manage | 0 | 0 | 1 | 0 | 1 | ➖ | +------------------+--------+--------+---------+-------+-------+--------+ | Total | 201 | 0 | 10 | 0 | 211 | ✅ | +------------------+--------+--------+---------+-------+-------+--------+
e2e-review-qa:
test report for 143e7250expand test summary
+-----------------------------------------------------------------------+ | suites summary | +------------------+--------+--------+---------+-------+-------+--------+ | | passed | failed | skipped | flaky | total | result | +------------------+--------+--------+---------+-------+-------+--------+ | Manage | 0 | 0 | 1 | 0 | 1 | ➖ | | Create | 8 | 0 | 2 | 0 | 10 | ✅ | | Package | 0 | 0 | 1 | 0 | 1 | ➖ | | Plan | 3 | 0 | 1 | 0 | 4 | ✅ | | Data Stores | 2 | 0 | 0 | 0 | 2 | ✅ | | Govern | 3 | 0 | 0 | 0 | 3 | ✅ | | Framework sanity | 0 | 0 | 1 | 0 | 1 | ➖ | | Monitor | 4 | 0 | 0 | 0 | 4 | ✅ | +------------------+--------+--------+---------+-------+-------+--------+ | Total | 20 | 0 | 6 | 0 | 26 | ✅ | +------------------+--------+--------+---------+-------+-------+--------+
e2e-package-and-test:
test report for 143e7250expand test summary
+-------------------------------------------------------------+ | suites summary | +--------+--------+--------+---------+-------+-------+--------+ | | passed | failed | skipped | flaky | total | result | +--------+--------+--------+---------+-------+-------+--------+ | Manage | 40 | 1 | 9 | 14 | 50 | ❌ | | Create | 130 | 0 | 36 | 0 | 166 | ✅ | +--------+--------+--------+---------+-------+-------+--------+ | Total | 170 | 1 | 45 | 14 | 216 | ❌ | +--------+--------+--------+---------+-------+-------+--------+
marked the checklist item I have evaluated the MR acceptance checklist for this MR. as completed
- Resolved by Paul Gascou-Vaillancourt
- Resolved by Paul Gascou-Vaillancourt
- Resolved by Paul Gascou-Vaillancourt
- Resolved by Paul Gascou-Vaillancourt
- Resolved by John Mason
assigned to @rkadam3
- Resolved by Paul Gascou-Vaillancourt
requested review from @aalakkad
requested review from @rkadam3
unassigned @rkadam3
added feature flagexists label
mentioned in issue #428362 (closed)
- Resolved by Paul Gascou-Vaillancourt
- Resolved by Paul Gascou-Vaillancourt
- Resolved by Paul Gascou-Vaillancourt
removed review request for @aalakkad
- Resolved by Paul Gascou-Vaillancourt
@aalakkad
, thanks for approving this merge request.This is the first time the merge request has been approved. To ensure we don't only run predictive pipelines, and we don't break
master
, a new pipeline will be started shortly.Please wait for the pipeline to start before resolving this discussion and set auto-merge for the new pipeline. See merging a merge request for more details.
added pipeline:mr-approved label
added 2 commits
requested review from @ntepluhina
removed review request for @ntepluhina
requested review from @johnmason and removed review request for @rkadam3
enabled an automatic merge when the pipeline for f5f3bd85 succeeds
mentioned in commit df85ae35
added workflowstaging-canary label and removed workflowblocked label
added workflowcanary label and removed workflowstaging-canary label
added workflowstaging label and removed workflowcanary label
added workflowproduction label and removed workflowstaging label
mentioned in issue #425018 (closed)
added workflowpost-deploy-db-production label and removed workflowproduction label