Import pull request and issues nested resources via timeline events - GitHub Import
On GitHub Import, we can replace the stages 6. Stage::ImportPullRequestsMergedByWorker
, 7. Stage::ImportPullRequestsReviewRequestsWorker
, 8. Stage::ImportPullRequestsReviewsWorker
, 11 Stage::ImportNotesWorker
by getting the information via the timeline events API on stage 10.Stage::ImportIssueEventsWorker
For context, the 10.Stage::ImportIssueEventsWorker
already reads the timeline events API, but the events merge by
, commented
, requested review
, and reviewed
is ignored. So, if we stop ignoring such events, we can remove the stages mentioned above, which would reduce the number of requests required to migrate a project.
On a project with 100K pull requests, we would reduce the migration time by 3.3 days.
After this change, the GitHub Import stages should look like:
-
🐰 Stage::ImportRepositoryWorker -
🐰 Stage::ImportBaseDataWorker -
🐰 Stage::ImportPullRequestsWorker -
🐰 Stage::ImportCollaboratorsWorker 🐢 Stage::ImportPullRequestsMergedByWorker🐢 Stage::ImportPullRequestsReviewRequestsWorker🐢 Stage::ImportPullRequestsReviewsWorker-
🐢 Stage::ImportIssuesAndDiffNotesWorker -
🐢 Stage::ImportIssueEventsWorker <--- This stage uses thetimeline
API 🐢 Stage::ImportNotesWorker-
🐰 Stage::ImportAttachmentsWorker -
🐰 Stage::ImportProtectedBranchesWorker -
🐰 Stage::ImportLfsObjectsWorker