Skip to content

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:

  1. 🐰 Stage::ImportRepositoryWorker
  2. 🐰 Stage::ImportBaseDataWorker
  3. 🐰 Stage::ImportPullRequestsWorker
  4. 🐰 Stage::ImportCollaboratorsWorker
  5. 🐢 Stage::ImportPullRequestsMergedByWorker
  6. 🐢 Stage::ImportPullRequestsReviewRequestsWorker
  7. 🐢 Stage::ImportPullRequestsReviewsWorker
  8. 🐢 Stage::ImportIssuesAndDiffNotesWorker
  9. 🐢 Stage::ImportIssueEventsWorker <--- This stage uses the timeline API
  10. 🐢 Stage::ImportNotesWorker
  11. 🐰 Stage::ImportAttachmentsWorker
  12. 🐰 Stage::ImportProtectedBranchesWorker
  13. 🐰 Stage::ImportLfsObjectsWorker
Edited by Rodrigo Tomonari