From 3dcd21628a192a7f2977c93d079cc9391ed45ce5 Mon Sep 17 00:00:00 2001 From: Tobias Bieniek Date: Fri, 14 Jun 2024 18:35:11 +0200 Subject: [PATCH] Expose `has_lib` and `bin_names` version fields on the API --- .../all__krate__publish__manifest__boolean_readme-2.snap | 4 +++- .../crates/snapshots/all__routes__crates__read__show.snap | 6 ++++++ ...ase_versions_not_included_in_reverse_dependencies.snap | 2 ++ ...rates__reverse_dependencies__reverse_dependencies.snap | 2 ++ ...endencies_includes_published_by_user_when_present.snap | 4 ++++ ...endencies_query_supports_u64_version_number_parts.snap | 2 ++ ...ncies_when_old_version_doesnt_depend_but_new_does.snap | 2 ++ ...ked_versions_not_included_in_reverse_dependencies.snap | 2 ++ .../all__routes__crates__versions__list__versions.snap | 6 ++++++ ...ad__show_by_crate_name_and_semver_no_published_by.snap | 2 ++ ...s__versions__read__show_by_crate_name_and_version.snap | 2 ++ src/views.rs | 8 ++++++++ 12 files changed, 41 insertions(+), 1 deletion(-) diff --git a/src/tests/krate/publish/snapshots/all__krate__publish__manifest__boolean_readme-2.snap b/src/tests/krate/publish/snapshots/all__krate__publish__manifest__boolean_readme-2.snap index ccedee05453..b38d2a603da 100644 --- a/src/tests/krate/publish/snapshots/all__krate__publish__manifest__boolean_readme-2.snap +++ b/src/tests/krate/publish/snapshots/all__krate__publish__manifest__boolean_readme-2.snap @@ -1,6 +1,6 @@ --- source: src/tests/krate/publish/manifest.rs -expression: response.into_json() +expression: response.json() --- { "version": { @@ -17,6 +17,7 @@ expression: response.into_json() } } ], + "bin_names": [], "checksum": "418c24c55cbcde274a5b1815d2c844203c7116e7f712008f4727d38bc7c82d8d", "crate": "foo", "crate_size": 170, @@ -24,6 +25,7 @@ expression: response.into_json() "dl_path": "/api/v1/crates/foo/1.0.0/download", "downloads": 0, "features": {}, + "has_lib": false, "id": "[id]", "license": "MIT", "links": { diff --git a/src/tests/routes/crates/snapshots/all__routes__crates__read__show.snap b/src/tests/routes/crates/snapshots/all__routes__crates__read__show.snap index a6f2c952f97..f5c2786e9de 100644 --- a/src/tests/routes/crates/snapshots/all__routes__crates__read__show.snap +++ b/src/tests/routes/crates/snapshots/all__routes__crates__read__show.snap @@ -49,6 +49,7 @@ expression: response.json() "versions": [ { "audit_actions": [], + "bin_names": null, "checksum": " ", "crate": "foo_show", "crate_size": 0, @@ -56,6 +57,7 @@ expression: response.json() "dl_path": "/api/v1/crates/foo_show/1.0.0/download", "downloads": 0, "features": {}, + "has_lib": null, "id": 1, "license": null, "links": { @@ -72,6 +74,7 @@ expression: response.json() }, { "audit_actions": [], + "bin_names": null, "checksum": " ", "crate": "foo_show", "crate_size": 0, @@ -79,6 +82,7 @@ expression: response.json() "dl_path": "/api/v1/crates/foo_show/0.5.1/download", "downloads": 0, "features": {}, + "has_lib": null, "id": 3, "license": null, "links": { @@ -101,6 +105,7 @@ expression: response.json() }, { "audit_actions": [], + "bin_names": null, "checksum": " ", "crate": "foo_show", "crate_size": 0, @@ -108,6 +113,7 @@ expression: response.json() "dl_path": "/api/v1/crates/foo_show/0.5.0/download", "downloads": 0, "features": {}, + "has_lib": null, "id": 2, "license": null, "links": { diff --git a/src/tests/routes/crates/snapshots/all__routes__crates__reverse_dependencies__prerelease_versions_not_included_in_reverse_dependencies.snap b/src/tests/routes/crates/snapshots/all__routes__crates__reverse_dependencies__prerelease_versions_not_included_in_reverse_dependencies.snap index bdc9db09a8e..8ce82f69894 100644 --- a/src/tests/routes/crates/snapshots/all__routes__crates__reverse_dependencies__prerelease_versions_not_included_in_reverse_dependencies.snap +++ b/src/tests/routes/crates/snapshots/all__routes__crates__reverse_dependencies__prerelease_versions_not_included_in_reverse_dependencies.snap @@ -23,6 +23,7 @@ expression: response.json() "versions": [ { "audit_actions": [], + "bin_names": null, "checksum": " ", "crate": "c3", "crate_size": 0, @@ -30,6 +31,7 @@ expression: response.json() "dl_path": "/api/v1/crates/c3/1.0.0/download", "downloads": 0, "features": {}, + "has_lib": null, "id": 3, "license": null, "links": { diff --git a/src/tests/routes/crates/snapshots/all__routes__crates__reverse_dependencies__reverse_dependencies.snap b/src/tests/routes/crates/snapshots/all__routes__crates__reverse_dependencies__reverse_dependencies.snap index 84f94ca3bf7..623af625ddf 100644 --- a/src/tests/routes/crates/snapshots/all__routes__crates__reverse_dependencies__reverse_dependencies.snap +++ b/src/tests/routes/crates/snapshots/all__routes__crates__reverse_dependencies__reverse_dependencies.snap @@ -23,6 +23,7 @@ expression: response.json() "versions": [ { "audit_actions": [], + "bin_names": null, "checksum": " ", "crate": "c2", "crate_size": 0, @@ -30,6 +31,7 @@ expression: response.json() "dl_path": "/api/v1/crates/c2/1.1.0/download", "downloads": 0, "features": {}, + "has_lib": null, "id": 3, "license": null, "links": { diff --git a/src/tests/routes/crates/snapshots/all__routes__crates__reverse_dependencies__reverse_dependencies_includes_published_by_user_when_present.snap b/src/tests/routes/crates/snapshots/all__routes__crates__reverse_dependencies__reverse_dependencies_includes_published_by_user_when_present.snap index bb44102c8f6..9969bfa1bfd 100644 --- a/src/tests/routes/crates/snapshots/all__routes__crates__reverse_dependencies__reverse_dependencies_includes_published_by_user_when_present.snap +++ b/src/tests/routes/crates/snapshots/all__routes__crates__reverse_dependencies__reverse_dependencies_includes_published_by_user_when_present.snap @@ -35,6 +35,7 @@ expression: response.json() "versions": [ { "audit_actions": [], + "bin_names": null, "checksum": " ", "crate": "c3", "crate_size": 0, @@ -42,6 +43,7 @@ expression: response.json() "dl_path": "/api/v1/crates/c3/3.0.0/download", "downloads": 0, "features": {}, + "has_lib": null, "id": 3, "license": null, "links": { @@ -64,6 +66,7 @@ expression: response.json() }, { "audit_actions": [], + "bin_names": null, "checksum": " ", "crate": "c2", "crate_size": 0, @@ -71,6 +74,7 @@ expression: response.json() "dl_path": "/api/v1/crates/c2/2.0.0/download", "downloads": 0, "features": {}, + "has_lib": null, "id": 2, "license": null, "links": { diff --git a/src/tests/routes/crates/snapshots/all__routes__crates__reverse_dependencies__reverse_dependencies_query_supports_u64_version_number_parts.snap b/src/tests/routes/crates/snapshots/all__routes__crates__reverse_dependencies__reverse_dependencies_query_supports_u64_version_number_parts.snap index 72775df00d0..b9a9d4ebba7 100644 --- a/src/tests/routes/crates/snapshots/all__routes__crates__reverse_dependencies__reverse_dependencies_query_supports_u64_version_number_parts.snap +++ b/src/tests/routes/crates/snapshots/all__routes__crates__reverse_dependencies__reverse_dependencies_query_supports_u64_version_number_parts.snap @@ -23,6 +23,7 @@ expression: response.json() "versions": [ { "audit_actions": [], + "bin_names": null, "checksum": " ", "crate": "c2", "crate_size": 0, @@ -30,6 +31,7 @@ expression: response.json() "dl_path": "/api/v1/crates/c2/1.0.18446744073709551615/download", "downloads": 0, "features": {}, + "has_lib": null, "id": 2, "license": null, "links": { diff --git a/src/tests/routes/crates/snapshots/all__routes__crates__reverse_dependencies__reverse_dependencies_when_old_version_doesnt_depend_but_new_does.snap b/src/tests/routes/crates/snapshots/all__routes__crates__reverse_dependencies__reverse_dependencies_when_old_version_doesnt_depend_but_new_does.snap index 0779dadd6b1..5a07ce53e19 100644 --- a/src/tests/routes/crates/snapshots/all__routes__crates__reverse_dependencies__reverse_dependencies_when_old_version_doesnt_depend_but_new_does.snap +++ b/src/tests/routes/crates/snapshots/all__routes__crates__reverse_dependencies__reverse_dependencies_when_old_version_doesnt_depend_but_new_does.snap @@ -23,6 +23,7 @@ expression: response.json() "versions": [ { "audit_actions": [], + "bin_names": null, "checksum": " ", "crate": "c2", "crate_size": 0, @@ -30,6 +31,7 @@ expression: response.json() "dl_path": "/api/v1/crates/c2/2.0.0/download", "downloads": 0, "features": {}, + "has_lib": null, "id": 3, "license": null, "links": { diff --git a/src/tests/routes/crates/snapshots/all__routes__crates__reverse_dependencies__yanked_versions_not_included_in_reverse_dependencies.snap b/src/tests/routes/crates/snapshots/all__routes__crates__reverse_dependencies__yanked_versions_not_included_in_reverse_dependencies.snap index 0779dadd6b1..5a07ce53e19 100644 --- a/src/tests/routes/crates/snapshots/all__routes__crates__reverse_dependencies__yanked_versions_not_included_in_reverse_dependencies.snap +++ b/src/tests/routes/crates/snapshots/all__routes__crates__reverse_dependencies__yanked_versions_not_included_in_reverse_dependencies.snap @@ -23,6 +23,7 @@ expression: response.json() "versions": [ { "audit_actions": [], + "bin_names": null, "checksum": " ", "crate": "c2", "crate_size": 0, @@ -30,6 +31,7 @@ expression: response.json() "dl_path": "/api/v1/crates/c2/2.0.0/download", "downloads": 0, "features": {}, + "has_lib": null, "id": 3, "license": null, "links": { diff --git a/src/tests/routes/crates/versions/snapshots/all__routes__crates__versions__list__versions.snap b/src/tests/routes/crates/versions/snapshots/all__routes__crates__versions__list__versions.snap index 42a80d599f0..8ba0762a505 100644 --- a/src/tests/routes/crates/versions/snapshots/all__routes__crates__versions__list__versions.snap +++ b/src/tests/routes/crates/versions/snapshots/all__routes__crates__versions__list__versions.snap @@ -6,6 +6,7 @@ expression: response.json() "versions": [ { "audit_actions": [], + "bin_names": null, "checksum": " ", "crate": "foo_versions", "crate_size": 0, @@ -13,6 +14,7 @@ expression: response.json() "dl_path": "/api/v1/crates/foo_versions/1.0.0/download", "downloads": 0, "features": {}, + "has_lib": null, "id": 2, "license": null, "links": { @@ -29,6 +31,7 @@ expression: response.json() }, { "audit_actions": [], + "bin_names": null, "checksum": " ", "crate": "foo_versions", "crate_size": 0, @@ -36,6 +39,7 @@ expression: response.json() "dl_path": "/api/v1/crates/foo_versions/0.5.1/download", "downloads": 0, "features": {}, + "has_lib": null, "id": 1, "license": null, "links": { @@ -58,6 +62,7 @@ expression: response.json() }, { "audit_actions": [], + "bin_names": null, "checksum": " ", "crate": "foo_versions", "crate_size": 0, @@ -65,6 +70,7 @@ expression: response.json() "dl_path": "/api/v1/crates/foo_versions/0.5.0/download", "downloads": 0, "features": {}, + "has_lib": null, "id": 3, "license": null, "links": { diff --git a/src/tests/routes/crates/versions/snapshots/all__routes__crates__versions__read__show_by_crate_name_and_semver_no_published_by.snap b/src/tests/routes/crates/versions/snapshots/all__routes__crates__versions__read__show_by_crate_name_and_semver_no_published_by.snap index 2b1a7a1fd3c..b9746ac6eaa 100644 --- a/src/tests/routes/crates/versions/snapshots/all__routes__crates__versions__read__show_by_crate_name_and_semver_no_published_by.snap +++ b/src/tests/routes/crates/versions/snapshots/all__routes__crates__versions__read__show_by_crate_name_and_semver_no_published_by.snap @@ -5,6 +5,7 @@ expression: json { "version": { "audit_actions": [], + "bin_names": null, "checksum": " ", "crate": "foo_vers_show_no_pb", "crate_size": 0, @@ -12,6 +13,7 @@ expression: json "dl_path": "/api/v1/crates/foo_vers_show_no_pb/1.0.0/download", "downloads": 0, "features": {}, + "has_lib": null, "id": "[id]", "license": null, "links": { diff --git a/src/tests/routes/crates/versions/snapshots/all__routes__crates__versions__read__show_by_crate_name_and_version.snap b/src/tests/routes/crates/versions/snapshots/all__routes__crates__versions__read__show_by_crate_name_and_version.snap index 5793187ccd5..e2972c043bd 100644 --- a/src/tests/routes/crates/versions/snapshots/all__routes__crates__versions__read__show_by_crate_name_and_version.snap +++ b/src/tests/routes/crates/versions/snapshots/all__routes__crates__versions__read__show_by_crate_name_and_version.snap @@ -5,6 +5,7 @@ expression: json { "version": { "audit_actions": [], + "bin_names": null, "checksum": "c241cd77c3723ccf1aa453f169ee60c0a888344da504bee0142adb859092acb4", "crate": "foo_vers_show", "crate_size": 1234, @@ -12,6 +13,7 @@ expression: json "dl_path": "/api/v1/crates/foo_vers_show/2.0.0/download", "downloads": 0, "features": {}, + "has_lib": null, "id": "[id]", "license": null, "links": { diff --git a/src/views.rs b/src/views.rs index 0495cc03da8..a9bcefdcc2c 100644 --- a/src/views.rs +++ b/src/views.rs @@ -566,6 +566,8 @@ pub struct EncodableVersion { pub audit_actions: Vec, pub checksum: String, pub rust_version: Option, + pub has_lib: Option, + pub bin_names: Option>>, } impl EncodableVersion { @@ -587,6 +589,8 @@ impl EncodableVersion { crate_size, checksum, rust_version, + has_lib, + bin_names, .. } = version; @@ -612,6 +616,8 @@ impl EncodableVersion { crate_size, checksum, rust_version, + has_lib, + bin_names, published_by: published_by.map(User::into), audit_actions: audit_actions .into_iter() @@ -736,6 +742,8 @@ mod tests { crate_size: Some(1234), checksum: String::new(), rust_version: None, + has_lib: None, + bin_names: None, published_by: None, audit_actions: vec![EncodableAuditAction { action: "publish".to_string(),