Package migration only transfers one version per package name
Overview
"Post-migration" issue.
If a project has multiple packages with the same name but different versions, Congregate is only migrating one version. We saw the bug with NPM but it might apply to other package types.
Side notes:
- The REST API endpoint for packages for a project only returns one version of each package name. The version it returns seems arbitrary, and aligns with the ones that we saw transferred by Congregate.
- The get a project packages API endpoint returns all the versions, as does GraphQL.
- Theory: Congregate is using the "packages for a project" to determine which packages to transfer, and would work correctly if it went through them all with "get a project packages" or uses graphql.
- LabCrawler uses graphql to retrieve the full list of package names and versions, so we know graphql works.
- Packages importer handles only packages whose names and versions are explicitly provided, and unpacks/repacks packages completely, sometimes requiring additional system-level dependencies.
Tasks
-
Update docs if needed (workflow, runbooks, README, migration metrics, etc.)
Acceptance Criteria
-
Existing UTs pass locally -
100% code coverage on new code
@gitlab-org/professional-services-automation/tools/migration
Edited by Francis Potter (GitLab)