Resolve "GitHub import does not show all available namespaces"
What does this MR do?
Related issue: #322459 (closed)
This MR fixes issues when inifinite scrolling pagination stucks, if all repositories on "page" were imported The root cause of the problem is that we can't distinguish between "hey, last page we've loaded returned 0 available repositories because provider (i.e. GitHub) returned 0 and "we've returned 0 available repositories because all were imported"
To fix this we use pretty straightforward approach - move "duplicates removal" from backend to frontend part
Screenshots or Screencasts (strongly suggested)
(recorded with PAGE_LENGTH = 2
, see below)
New_Project___GitLab__4_
How to setup and validate locally (strongly suggested)
- Enable new github importer (this is easiest to test changes)
Feature.enable(:remove_legacy_github_client)
- Create github personal access token
- Change
PAGE_LENGTH = 25
ingithub_controller.rb
toPAGE_LENGTH = 2
(this is required so you won't need to import first 25 repositories for test - Import first 2 repositories (initiating import is sufficient, no need to wait while it completes)
- Refresh page, page should continue load remaining repositories via infinite scrolling
-->
Does this MR meet the acceptance criteria?
Conformity
-
I have included changelog trailers, or none are needed. (Does this MR need a changelog?) -
I have added/updated documentation, or it's not needed. (Is documentation required?) -
I have properly separated EE content from FOSS, or this MR is FOSS only. (Where should EE code go?) -
I have added information for database reviewers in the MR description, or it's not needed. (Does this MR have database related changes?) -
I have self-reviewed this MR per code review guidelines. -
This MR does not harm performance, or I have asked a reviewer to help assess the performance impact. (Merge request performance guidelines) -
I have followed the style guides. -
This change is backwards compatible across updates, or this does not apply.
Availability and Testing
-
I have added/updated tests following the Testing Guide, or it's not needed. (Consider all test levels. See the Test Planning Process.) -
I have tested this MR in all supported browsers, or it's not needed. -
I have informed the Infrastructure department of a default or new setting change per definition of done, or it's not needed.
Edited by Illya Klymov