Cargo Registry MVC: Package Creation Services
What does this MR do and why?
This MR is a part of the discussion here. This MR deals with the package creation services for Cargo Registry MVC.
How to Verify Locally?
project = Project.first
user = User.first
name = 'my-crate'
version = '1.2.3'
sha256 = 'a' * 64
md5 = '567'
index_content = { name: name, vers: version, deps: [], cksum: "abcde123456" }
# The file named 'bananas.txt' should exist
content = UploadedFile.new('bananas.txt', filename: 'bananas.txt')
params = { name: name, version: version, index_content: index_content, content: content, file_sha25
6: sha256, file_md5: md5 }.with_indifferent_access
Packages::Cargo::CreatePackageService.new(project, user, params).execute
💾 Database Review
SQL Query
TRANSACTION (0.2ms)
BEGIN
Packages::Cargo::Metadatum EXISTS ? (1.0ms
)
SELECT
1 AS one
FROM
"packages_cargo_metadata"
WHERE
"packages_cargo_metadata"."project_id" = 1
AND "packages_cargo_metadata"."normalized_name" = 'test-crate-2'
AND "packages_cargo_metadata"."normalized_version" = '1.0.0'
LIMIT 1
/*application:console,db_config_database:gitlabhq_development,db_config_name:main,console_hostname:gdk.local,console_username:gdk,line:(pry):5:in `__pry__'*/
Packages::Cargo::Metadatum CREATE (
0.9ms)
INSERT INTO "packages_cargo_metadata" (
"package_id", "index_content", "project_id", "normalized_name", "normalized_version", "created_at", "updated_at")
VALUES (
29, '{"name":"test-crate-2","vers":"1.0.0","deps":[],"cksum":"abc123"}', 1, 'test-crate-2', '1.0.0', '2025-11-03 10:55:47.919856', '2025-11-03 10:55:47.919856')
RETURNING
"package_id"
/*application:console,db_config_database:gitlabhq_development,db_config_name:main,console_hostname:gdk.local,console_username:gdk,line:(pry):5:in `__pry__'*/
TRANSACTION (
0.2ms)
COMMIT
https://console.postgres.ai/gitlab/gitlab-production-main/sessions/45063/commands/138290 (internal)
Edited by Chandra Kiran G