Implement Required Endpoints for Conan v2 Revision Support
As part of our effort to fully support Conan v2, we have identified the required endpoints still necessary to enable revision support. The listed endpoints are required to implement basic v2 functionalities such as authentication, upload, download, search, and delete.
Missing Endpoints
Authentication Endpoint
-
Authenticate user:
GET /api/conan/conan2/v2/users/authenticate!187977 (merged)This endpoint can be reused from v1.
Recipe File Endpoints
-
Retrieve a specific file of a recipe revision: !176600 (merged)
GET /api/v4/projects/:id/packages/conan/v2/conans/:package_name/:package_version/:package_username/:package_channel/revisions/:recipe_revision/files/:file_name -
Upload a specific file of a recipe revision: !181393 (merged)
PUT /api/v4/projects/:id/packages/conan/v2/conans/:package_name/:package_version/:package_username/:package_channel/revisions/:recipe_revision/files/:file_name -
List all files of a recipe revision: !182379 (merged)
GET /api/v4/projects/:id/packages/conan/v2/conans/:package_name/:package_version/:package_username/:package_channel/revisions/:recipe_revision/files -
Retrieve the latest revision of a recipe: !183335 (merged)
GET /api/v4/projects/:id/packages/conan/v2/conans/:package_name/:package_version/:package_username/:package_channel/latest -
List all revisions of a recipe: !186111 (merged)
GET /api/v4/projects/:id/packages/conan/v2/conans/:package_name/:package_version/:package_username/:package_channel/revisions -
Delete a specific recipe revision: !186073 (merged)
DELETE /api/v4/projects/:id/packages/conan/v2/conans/:package_name/:package_version/:package_username/:package_channel/revisions/:recipe_revision
Package File Endpoints
-
Retrieve a specific file of a package revision: !187107 (merged)
GET /api/v4/projects/:id/packages/conan/v2/conans/:package_name/:package_version/:package_username/:package_channel/revisions/:recipe_revision/packages/:package_reference/revisions/:package_revision/files/:file_name -
List all files of a package revision: !187850 (merged)
GET /api/v4/projects/:id/packages/conan/v2/conans/:package_name/:package_version/:package_username/:package_channel/revisions/:recipe_revision/packages/:package_reference/revisions/:package_revision/files -
Upload a specific file of a package revision: !185065 (merged)
PUT /api/v4/projects/:id/packages/conan/v2/conans/:package_name/:package_version/:package_username/:package_channel/revisions/:recipe_revision/packages/:package_reference/revisions/:package_revision/files/:file_name -
Retrieve the latest revision of a package: !187678 (merged)
GET /api/v4/projects/:id/packages/conan/v2/conans/:package_name/:package_version/:package_username/:package_channel/revisions/:recipe_revision/packages/:package_reference/latest -
List all revisions of a package: !189380 (merged)
GET /api/v4/projects/:id/packages/conan/v2/conans/:package_name/:package_version/:package_username/:package_channel/revisions/:recipe_revision/packages/:package_reference/revisions -
Delete a specific package revision: !191910 (merged)
DELETE /api/v4/projects/:id/packages/conan/v2/conans/:package_name/:package_version/:package_username/:package_channel/revisions/:recipe_revision/packages/:package_reference/revisions/:package_revision
Additional Required Tasks
In addition to the required endpoints, the following tasks need to be implemented to ensure full functionality:
- In package file metadata model, get the package reference from the new database !181084 (merged)
- Refactor code to also support instance level v2 endpoint, instead of only project level v2 endpoint
-
Adapt registry auto clean-up to support revisionswill not be done. Requires a lot work and decision on how to handle it.
Expected Impact
Once these endpoints are implemented, we will have full support for the following functionalities in Conan v2:
- Authentication
- Uploading a package
- Searching for a package
- Installing a package
All the endpoints (except authentication) are also required for Conan v1 with revision support.
Not Included in MVP
The following functionalities are not part of this initial implementation:
- Metadata extraction and support, backend done, not UI !178728 (merged)
-
Conan downloadand full support ofConan search!186068 (merged) -
Conan listcommand !191296 (merged) - Updating GitLab API to support revisions
- UI changes
These features should be considered in future iterations.