From 1429ff19f0013c955d50fbea2de20a7c7dee28ae Mon Sep 17 00:00:00 2001 From: Bryant Biggs Date: Fri, 23 Aug 2024 15:34:21 -0500 Subject: [PATCH 1/3] chore: Change name used on QuayIO environment variable and for `client` --- .github/workflows/ci.yml | 4 +-- examples/checkregistry.rs | 4 +-- examples/image-labels.rs | 12 +++---- examples/image.rs | 14 ++++---- examples/login.rs | 12 +++---- examples/tags.rs | 12 +++---- examples/trace.rs | 14 ++++---- src/lib.rs | 4 +-- src/v2/mod.rs | 4 +-- tests/mock/api_version.rs | 32 ++++++++--------- tests/mock/base_client.rs | 12 +++---- tests/mock/blobs_download.rs | 20 +++++------ tests/mock/catalog.rs | 8 ++--- tests/mock/tags_dockerv2.rs | 16 ++++----- tests/mock/tags_quay.rs | 16 ++++----- tests/net/docker_io/mod.rs | 23 +++++++------ tests/net/gcr_io/mod.rs | 29 +++++++++------- tests/net/quay_io/mod.rs | 67 +++++++++++++++++++----------------- 18 files changed, 156 insertions(+), 147 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 82579f9b..24f50671 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -79,8 +79,8 @@ jobs: # - name: Run cargo test (test-net-private) # run: cargo test --features test-net,test-net-private # env: - # DKREG_QUAY_USER: ${{ secrets.DKREG_QUAY_USER }} - # DKREG_QUAY_PASSWD: ${{ secrets.DKREG_QUAY_PASSWD }} + # DOCKER_REGISTRY_QUAY_USER: ${{ secrets.DOCKER_REGISTRY_QUAY_USER }} + # DOCKER_REGISTRY_QUAY_PASSWD: ${{ secrets.DOCKER_REGISTRY_QUAY_PASSWD }} lints: name: Lints diff --git a/examples/checkregistry.rs b/examples/checkregistry.rs index 0ffc091b..8b92ab2b 100644 --- a/examples/checkregistry.rs +++ b/examples/checkregistry.rs @@ -18,12 +18,12 @@ async fn main() { } async fn run(host: &str) -> Result> { - let dclient = docker_registry::v2::Client::configure() + let client = docker_registry::v2::Client::configure() .registry(host) .insecure_registry(false) .build()?; - let supported = dclient.is_v2_supported().await?; + let supported = client.is_v2_supported().await?; if supported { info!("{host} supports v2"); } else { diff --git a/examples/image-labels.rs b/examples/image-labels.rs index 0f8285fa..48bdca5a 100644 --- a/examples/image-labels.rs +++ b/examples/image-labels.rs @@ -27,13 +27,13 @@ async fn main() { warn!("[{registry}] no credentials found in config.json"); } } else { - user = env::var("DKREG_USER").ok(); + user = env::var("DOCKER_REGISTRY_USER").ok(); if user.is_none() { - warn!("[{registry}] no $DKREG_USER for login user"); + warn!("[{registry}] no $DOCKER_REGISTRY_USER for login user"); } - password = env::var("DKREG_PASSWD").ok(); + password = env::var("DOCKER_REGISTRY_PASSWD").ok(); if password.is_none() { - warn!("[{registry}] no $DKREG_PASSWD for login password"); + warn!("[{registry}] no $DOCKER_REGISTRY_PASSWD for login password"); } }; @@ -61,8 +61,8 @@ async fn run( let login_scope = format!("repository:{image}:pull"); let version = dkr_ref.version(); - let dclient = client.authenticate(&[&login_scope]).await?; - let manifest = dclient.get_manifest(&image, &version).await?; + let client = client.authenticate(&[&login_scope]).await?; + let manifest = client.get_manifest(&image, &version).await?; if let Manifest::S1Signed(s1s) = manifest { let labels = s1s.get_labels(0); diff --git a/examples/image.rs b/examples/image.rs index a87a0f83..b6507c7d 100644 --- a/examples/image.rs +++ b/examples/image.rs @@ -49,13 +49,13 @@ async fn main() -> Result<(), boxed::Box> { warn!("[{registry}] no credentials found in config.json"); } } else { - user = env::var("DKREG_USER").ok(); + user = env::var("DOCKER_REGISTRY_USER").ok(); if user.is_none() { - warn!("[{registry}] no $DKREG_USER for login user"); + warn!("[{registry}] no $DOCKER_REGISTRY_USER for login user"); } - password = env::var("DKREG_PASSWD").ok(); + password = env::var("DOCKER_REGISTRY_PASSWD").ok(); if password.is_none() { - warn!("[{registry}] no $DKREG_PASSWD for login password"); + warn!("[{registry}] no $DOCKER_REGISTRY_PASSWD for login password"); } }; @@ -91,15 +91,15 @@ async fn run( let login_scope = format!("repository:{image}:pull"); - let dclient = client.authenticate(&[&login_scope]).await?; - let manifest = dclient.get_manifest(image, version).await?; + let client = client.authenticate(&[&login_scope]).await?; + let manifest = client.get_manifest(image, version).await?; let layers_digests = manifest.layers_digests(None)?; info!("{} -> got {} layer(s)", &image, layers_digests.len(),); let blob_futures = layers_digests .iter() - .map(|layer_digest| dclient.get_blob(image, layer_digest)) + .map(|layer_digest| client.get_blob(image, layer_digest)) .collect::>(); let blobs = try_join_all(blob_futures).await?; diff --git a/examples/login.rs b/examples/login.rs index 80ef4f84..ae9ca473 100644 --- a/examples/login.rs +++ b/examples/login.rs @@ -14,13 +14,13 @@ async fn main() { None => "".into(), }; - let user = std::env::var("DKREG_USER").ok(); + let user = std::env::var("DOCKER_REGISTRY_USER").ok(); if user.is_none() { - warn!("[{registry}] no $DKREG_USER for login user"); + warn!("[{registry}] no $DOCKER_REGISTRY_USER for login user"); } - let password = std::env::var("DKREG_PASSWD").ok(); + let password = std::env::var("DOCKER_REGISTRY_PASSWD").ok(); if password.is_none() { - warn!("[{registry}] no $DKREG_PASSWD for login password"); + warn!("[{registry}] no $DOCKER_REGISTRY_PASSWD for login password"); } let res = run(®istry, user, password, login_scope).await; @@ -49,7 +49,7 @@ async fn run( .password(passwd) .build()?; - let dclient = client.authenticate(&[&login_scope]).await?; - dclient.is_auth().await?; + let client = client.authenticate(&[&login_scope]).await?; + client.is_auth().await?; Ok(()) } diff --git a/examples/tags.rs b/examples/tags.rs index af23cc2a..46322d85 100644 --- a/examples/tags.rs +++ b/examples/tags.rs @@ -16,13 +16,13 @@ async fn main() { }; info!("[{registry}] requesting tags for image {image}"); - let user = std::env::var("DKREG_USER").ok(); + let user = std::env::var("DOCKER_REGISTRY_USER").ok(); if user.is_none() { - warn!("[{registry}] no $DKREG_USER for login user"); + warn!("[{registry}] no $DOCKER_REGISTRY_USER for login user"); } - let password = std::env::var("DKREG_PASSWD").ok(); + let password = std::env::var("DOCKER_REGISTRY_PASSWD").ok(); if password.is_none() { - warn!("[{registry}] no $DKREG_PASSWD for login password"); + warn!("[{registry}] no $DOCKER_REGISTRY_PASSWD for login password"); } let res = run(®istry, user, password, &image).await; @@ -53,9 +53,9 @@ async fn run( let login_scope = format!("repository:{image}:pull"); - let dclient = client.authenticate(&[&login_scope]).await?; + let client = client.authenticate(&[&login_scope]).await?; - dclient + client .get_tags(image, Some(7)) .collect::>() .await diff --git a/examples/trace.rs b/examples/trace.rs index 84c7fe0e..54856c66 100644 --- a/examples/trace.rs +++ b/examples/trace.rs @@ -27,13 +27,13 @@ async fn main() { warn!("[{registry}] no credentials found in config.json"); } } else { - user = env::var("DKREG_USER").ok(); + user = env::var("DOCKER_REGISTRY_USER").ok(); if user.is_none() { - warn!("[{registry}] no $DKREG_USER for login user"); + warn!("[{registry}] no $DOCKER_REGISTRY_USER for login user"); } - password = env::var("DKREG_PASSWD").ok(); + password = env::var("DOCKER_REGISTRY_PASSWD").ok(); if password.is_none() { - warn!("[{registry}] no $DKREG_PASSWD for login password"); + warn!("[{registry}] no $DOCKER_REGISTRY_PASSWD for login password"); } }; @@ -67,14 +67,14 @@ async fn run( let login_scope = ""; - let dclient = client.authenticate(&[login_scope]).await?; - let manifest = dclient.get_manifest(&image, &version).await?; + let client = client.authenticate(&[login_scope]).await?; + let manifest = client.get_manifest(&image, &version).await?; let layers_digests = manifest.layers_digests(None)?; info!("{} -> got {} layer(s)", &image, layers_digests.len(),); for layer_digest in &layers_digests { - let blob = dclient.get_blob(&image, layer_digest).await?; + let blob = client.get_blob(&image, layer_digest).await?; info!("Layer {layer_digest}, got {} bytes.", blob.len()); } diff --git a/src/lib.rs b/src/lib.rs index 43ecd98e..06b1e014 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -16,11 +16,11 @@ //! //! // Check whether a registry supports API v2. //! let host = "quay.io"; -//! let dclient = Client::configure() +//! let client = Client::configure() //! .insecure_registry(false) //! .registry(host) //! .build()?; -//! match dclient.is_v2_supported().await? { +//! match client.is_v2_supported().await? { //! false => println!("{} does NOT support v2", host), //! true => println!("{} supports v2", host), //! }; diff --git a/src/v2/mod.rs b/src/v2/mod.rs index 213d3f38..01d7ed4e 100644 --- a/src/v2/mod.rs +++ b/src/v2/mod.rs @@ -16,8 +16,8 @@ //! use docker_registry::v2::Client; //! //! // Retrieve an image manifest. -//! let dclient = Client::configure().registry("quay.io").build()?; -//! let manifest = dclient.get_manifest("coreos/etcd", "v3.1.0").await?; +//! let client = Client::configure().registry("quay.io").build()?; +//! let manifest = client.get_manifest("coreos/etcd", "v3.1.0").await?; //! # //! # Ok(()) //! # }; diff --git a/tests/mock/api_version.rs b/tests/mock/api_version.rs index 7ae7a955..9e3863e1 100644 --- a/tests/mock/api_version.rs +++ b/tests/mock/api_version.rs @@ -12,7 +12,7 @@ async fn test_version_check_status_ok() { .with_header(API_VERSION_K, API_VERSION_V) .create(); - let dclient = docker_registry::v2::Client::configure() + let client = docker_registry::v2::Client::configure() .registry(&addr) .insecure_registry(true) .username(None) @@ -20,16 +20,16 @@ async fn test_version_check_status_ok() { .build() .unwrap(); - let ok = dclient.is_v2_supported().await.unwrap(); + let ok = client.is_v2_supported().await.unwrap(); mock.assert_async().await; assert!(ok); - let _ensure_v2 = dclient.ensure_v2_registry().await.unwrap(); + let _ensure_v2 = client.ensure_v2_registry().await.unwrap(); } #[tokio::test] -async fn test_version_check_status_unauth() { +async fn test_version_check_status_no_auth() { let mut server = mockito::Server::new_async().await; let addr = server.host_with_port(); @@ -39,7 +39,7 @@ async fn test_version_check_status_unauth() { .with_header(API_VERSION_K, API_VERSION_V) .create(); - let dclient = docker_registry::v2::Client::configure() + let client = docker_registry::v2::Client::configure() .registry(&addr) .insecure_registry(true) .username(None) @@ -47,14 +47,14 @@ async fn test_version_check_status_unauth() { .build() .unwrap(); - let res = dclient.is_v2_supported().await.unwrap(); + let res = client.is_v2_supported().await.unwrap(); mock.assert_async().await; assert!(res); } #[tokio::test] -async fn test_version_check_status_notfound() { +async fn test_version_check_status_not_found() { let mut server = mockito::Server::new_async().await; let addr = server.host_with_port(); @@ -64,7 +64,7 @@ async fn test_version_check_status_notfound() { .with_header(API_VERSION_K, API_VERSION_V) .create(); - let dclient = docker_registry::v2::Client::configure() + let client = docker_registry::v2::Client::configure() .registry(&addr) .insecure_registry(true) .username(None) @@ -72,7 +72,7 @@ async fn test_version_check_status_notfound() { .build() .unwrap(); - let res = dclient.is_v2_supported().await.unwrap(); + let res = client.is_v2_supported().await.unwrap(); mock.assert_async().await; assert!(!res); @@ -89,7 +89,7 @@ async fn test_version_check_status_forbidden() { .with_header(API_VERSION_K, API_VERSION_V) .create(); - let dclient = docker_registry::v2::Client::configure() + let client = docker_registry::v2::Client::configure() .registry(&addr) .insecure_registry(true) .username(None) @@ -97,19 +97,19 @@ async fn test_version_check_status_forbidden() { .build() .unwrap(); - let res = dclient.is_v2_supported().await.unwrap(); + let res = client.is_v2_supported().await.unwrap(); mock.assert_async().await; assert!(!res); } #[tokio::test] -async fn test_version_check_noheader() { +async fn test_version_check_no_header() { let mut server = mockito::Server::new_async().await; let addr = server.host_with_port(); let mock = server.mock("GET", "/v2/").with_status(403).create_async().await; - let dclient = docker_registry::v2::Client::configure() + let client = docker_registry::v2::Client::configure() .registry(&addr) .insecure_registry(true) .username(None) @@ -117,7 +117,7 @@ async fn test_version_check_noheader() { .build() .unwrap(); - let res = dclient.is_v2_supported().await.unwrap(); + let res = client.is_v2_supported().await.unwrap(); mock.assert_async().await; assert!(!res); @@ -134,7 +134,7 @@ async fn test_version_check_trailing_slash() { .with_header(API_VERSION_K, API_VERSION_V) .create(); - let dclient = docker_registry::v2::Client::configure() + let client = docker_registry::v2::Client::configure() .registry(&addr) .insecure_registry(true) .username(None) @@ -142,7 +142,7 @@ async fn test_version_check_trailing_slash() { .build() .unwrap(); - let res = dclient.is_v2_supported().await.unwrap(); + let res = client.is_v2_supported().await.unwrap(); // TODO - why does this fail? // mock.assert_async().await; diff --git a/tests/mock/base_client.rs b/tests/mock/base_client.rs index a8339c16..b8969fb0 100644 --- a/tests/mock/base_client.rs +++ b/tests/mock/base_client.rs @@ -13,7 +13,7 @@ async fn test_base_no_insecure() { .with_header(API_VERSION_K, API_VERSION_V) .create(); - let dclient = docker_registry::v2::Client::configure() + let client = docker_registry::v2::Client::configure() .registry(&addr) .insecure_registry(false) .username(None) @@ -21,7 +21,7 @@ async fn test_base_no_insecure() { .build() .unwrap(); - let res = dclient.is_v2_supported().await.unwrap(); + let res = client.is_v2_supported().await.unwrap(); // This relies on the fact that mockito is HTTP-only and // trying to speak TLS to it results in garbage/errors. @@ -41,7 +41,7 @@ async fn test_base_useragent() { .with_header(API_VERSION_K, API_VERSION_V) .create(); - let dclient = docker_registry::v2::Client::configure() + let client = docker_registry::v2::Client::configure() .registry(&addr) .insecure_registry(true) .username(None) @@ -49,7 +49,7 @@ async fn test_base_useragent() { .build() .unwrap(); - let res = dclient.is_v2_supported().await.unwrap(); + let res = client.is_v2_supported().await.unwrap(); mock.assert_async().await; assert!(res); @@ -69,7 +69,7 @@ async fn test_base_custom_useragent() { .with_header(API_VERSION_K, API_VERSION_V) .create(); - let dclient = docker_registry::v2::Client::configure() + let client = docker_registry::v2::Client::configure() .registry(&addr) .insecure_registry(true) .user_agent(Some(ua.to_string())) @@ -78,7 +78,7 @@ async fn test_base_custom_useragent() { .build() .unwrap(); - let res = dclient.is_v2_supported().await.unwrap(); + let res = client.is_v2_supported().await.unwrap(); mock.assert_async().await; assert!(res); diff --git a/tests/mock/blobs_download.rs b/tests/mock/blobs_download.rs index 72f28807..41efbccf 100644 --- a/tests/mock/blobs_download.rs +++ b/tests/mock/blobs_download.rs @@ -20,7 +20,7 @@ async fn test_blobs_has_layer() { .with_header("Docker-Content-Digest", binary_digest) .create(); - let dclient = docker_registry::v2::Client::configure() + let client = docker_registry::v2::Client::configure() .registry(&addr) .insecure_registry(true) .username(None) @@ -28,7 +28,7 @@ async fn test_blobs_has_layer() { .build() .unwrap(); - let res = dclient.has_blob(name, digest).await.unwrap(); + let res = client.has_blob(name, digest).await.unwrap(); mock.assert_async().await; assert!(res); @@ -45,7 +45,7 @@ async fn test_blobs_hasnot_layer() { let mock = server.mock("HEAD", ep.as_str()).with_status(404).create(); - let dclient = docker_registry::v2::Client::configure() + let client = docker_registry::v2::Client::configure() .registry(&addr) .insecure_registry(true) .username(None) @@ -53,7 +53,7 @@ async fn test_blobs_hasnot_layer() { .build() .unwrap(); - let res = dclient.has_blob(name, digest).await.unwrap(); + let res = client.has_blob(name, digest).await.unwrap(); mock.assert_async().await; assert!(!res); @@ -75,7 +75,7 @@ async fn get_blobs_succeeds_with_consistent_layer() -> Fallible<()> { .with_body(blob) .create(); - let dclient = docker_registry::v2::Client::configure() + let client = docker_registry::v2::Client::configure() .registry(&addr) .insecure_registry(true) .username(None) @@ -83,7 +83,7 @@ async fn get_blobs_succeeds_with_consistent_layer() -> Fallible<()> { .build() .unwrap(); - let res = dclient.get_blob(name, &digest).await.unwrap(); + let res = client.get_blob(name, &digest).await.unwrap(); mock.assert_async().await; assert_eq!(blob, res.as_slice()); @@ -108,7 +108,7 @@ async fn get_blobs_fails_with_inconsistent_layer() -> Fallible<()> { .with_body(blob2) .create(); - let dclient = docker_registry::v2::Client::configure() + let client = docker_registry::v2::Client::configure() .registry(&addr) .insecure_registry(true) .username(None) @@ -116,7 +116,7 @@ async fn get_blobs_fails_with_inconsistent_layer() -> Fallible<()> { .build() .unwrap(); - match dclient.get_blob(name, &digest).await { + match client.get_blob(name, &digest).await { Ok(_) => panic!("Expected error"), Err(e) => assert_eq!(e.to_string(), "content digest error"), } @@ -142,7 +142,7 @@ async fn get_blobs_stream() -> Fallible<()> { .with_body(blob) .create(); - let dclient = docker_registry::v2::Client::configure() + let client = docker_registry::v2::Client::configure() .registry(&addr) .insecure_registry(true) .username(None) @@ -150,7 +150,7 @@ async fn get_blobs_stream() -> Fallible<()> { .build() .unwrap(); - let res = dclient.get_blob_response(name, &digest).await.unwrap(); + let res = client.get_blob_response(name, &digest).await.unwrap(); mock.assert_async().await; assert_eq!(res.size(), Some(5)); diff --git a/tests/mock/catalog.rs b/tests/mock/catalog.rs index 0f1e698f..53320765 100644 --- a/tests/mock/catalog.rs +++ b/tests/mock/catalog.rs @@ -16,7 +16,7 @@ fn test_catalog_simple() { .create(); let runtime = Runtime::new().unwrap(); - let dclient = docker_registry::v2::Client::configure() + let client = docker_registry::v2::Client::configure() .registry(&addr) .insecure_registry(true) .username(None) @@ -24,7 +24,7 @@ fn test_catalog_simple() { .build() .unwrap(); - let futcheck = dclient.get_catalog(None); + let futcheck = client.get_catalog(None); let res = runtime.block_on(futcheck.map(Result::unwrap).collect::>()); mock.assert(); @@ -50,7 +50,7 @@ fn test_catalog_paginate() { .create(); let runtime = Runtime::new().unwrap(); - let dclient = docker_registry::v2::Client::configure() + let client = docker_registry::v2::Client::configure() .registry(&addr) .insecure_registry(true) .username(None) @@ -58,7 +58,7 @@ fn test_catalog_paginate() { .build() .unwrap(); - let next = Box::pin(dclient.get_catalog(Some(1))); + let next = Box::pin(client.get_catalog(Some(1))); let (page1, next) = runtime.block_on(next.into_future()); assert_eq!(page1.unwrap().unwrap(), "r1/i1".to_owned()); diff --git a/tests/mock/tags_dockerv2.rs b/tests/mock/tags_dockerv2.rs index 759e1096..10d8ed06 100644 --- a/tests/mock/tags_dockerv2.rs +++ b/tests/mock/tags_dockerv2.rs @@ -18,7 +18,7 @@ fn test_dockerv2_tags_simple() { .create(); let runtime = Runtime::new().unwrap(); - let dclient = docker_registry::v2::Client::configure() + let client = docker_registry::v2::Client::configure() .registry(&addr) .insecure_registry(true) .username(None) @@ -26,7 +26,7 @@ fn test_dockerv2_tags_simple() { .build() .unwrap(); - let futcheck = dclient.get_tags(name, None); + let futcheck = client.get_tags(name, None); let res = runtime.block_on(futcheck.map(Result::unwrap).collect::>()); mock.assert(); @@ -60,7 +60,7 @@ fn test_dockerv2_tags_paginate() { .create(); let runtime = Runtime::new().unwrap(); - let dclient = docker_registry::v2::Client::configure() + let client = docker_registry::v2::Client::configure() .registry(&addr) .insecure_registry(true) .username(None) @@ -68,7 +68,7 @@ fn test_dockerv2_tags_paginate() { .build() .unwrap(); - let next = Box::pin(dclient.get_tags(name, Some(1)).map(Result::unwrap)); + let next = Box::pin(client.get_tags(name, Some(1)).map(Result::unwrap)); let (first_tag, stream_rest) = runtime.block_on(next.into_future()); assert_eq!(first_tag.unwrap(), "t1".to_owned()); @@ -100,7 +100,7 @@ fn test_dockerv2_tags_404() { .create(); let runtime = Runtime::new().unwrap(); - let dclient = docker_registry::v2::Client::configure() + let client = docker_registry::v2::Client::configure() .registry(&addr) .insecure_registry(true) .username(None) @@ -108,7 +108,7 @@ fn test_dockerv2_tags_404() { .build() .unwrap(); - let futcheck = dclient.get_tags(name, None); + let futcheck = client.get_tags(name, None); let res = runtime.block_on(futcheck.collect::>()); mock.assert(); @@ -131,7 +131,7 @@ fn test_dockerv2_tags_missing_header() { .create(); let runtime = Runtime::new().unwrap(); - let dclient = docker_registry::v2::Client::configure() + let client = docker_registry::v2::Client::configure() .registry(&addr) .insecure_registry(true) .username(None) @@ -139,7 +139,7 @@ fn test_dockerv2_tags_missing_header() { .build() .unwrap(); - let futcheck = dclient.get_tags(name, None); + let futcheck = client.get_tags(name, None); let res = runtime.block_on(futcheck.map(Result::unwrap).collect::>()); mock.assert(); diff --git a/tests/mock/tags_quay.rs b/tests/mock/tags_quay.rs index f11b8a65..f9645773 100644 --- a/tests/mock/tags_quay.rs +++ b/tests/mock/tags_quay.rs @@ -18,7 +18,7 @@ fn test_quay_tags_simple() { .create(); let runtime = Runtime::new().unwrap(); - let dclient = docker_registry::v2::Client::configure() + let client = docker_registry::v2::Client::configure() .registry(&addr) .insecure_registry(true) .username(None) @@ -26,7 +26,7 @@ fn test_quay_tags_simple() { .build() .unwrap(); - let futcheck = dclient.get_tags(name, None); + let futcheck = client.get_tags(name, None); let res = runtime.block_on(futcheck.map(Result::unwrap).collect::>()); assert_eq!(res.first().unwrap(), &String::from("t1")); @@ -60,7 +60,7 @@ fn test_quay_tags_paginate() { .create(); let runtime = Runtime::new().unwrap(); - let dclient = docker_registry::v2::Client::configure() + let client = docker_registry::v2::Client::configure() .registry(&addr) .insecure_registry(true) .username(None) @@ -68,7 +68,7 @@ fn test_quay_tags_paginate() { .build() .unwrap(); - let next = Box::pin(dclient.get_tags(name, Some(1)).map(Result::unwrap)); + let next = Box::pin(client.get_tags(name, Some(1)).map(Result::unwrap)); let (first_tag, stream_rest) = runtime.block_on(next.into_future()); assert_eq!(first_tag.unwrap(), "t1".to_owned()); @@ -100,7 +100,7 @@ fn test_quay_tags_404() { .create(); let runtime = Runtime::new().unwrap(); - let dclient = docker_registry::v2::Client::configure() + let client = docker_registry::v2::Client::configure() .registry(&addr) .insecure_registry(true) .username(None) @@ -108,7 +108,7 @@ fn test_quay_tags_404() { .build() .unwrap(); - let futcheck = dclient.get_tags(name, None); + let futcheck = client.get_tags(name, None); let res = runtime.block_on(futcheck.collect::>()); assert!(res.first().unwrap().is_err()); @@ -131,7 +131,7 @@ fn test_quay_tags_missing_header() { .create(); let runtime = Runtime::new().unwrap(); - let dclient = docker_registry::v2::Client::configure() + let client = docker_registry::v2::Client::configure() .registry(&addr) .insecure_registry(true) .username(None) @@ -139,7 +139,7 @@ fn test_quay_tags_missing_header() { .build() .unwrap(); - let futcheck = dclient.get_tags(name, None); + let futcheck = client.get_tags(name, None); let res = runtime.block_on(futcheck.map(Result::unwrap).collect::>()); assert_eq!(vec!["t1", "t2"], res); diff --git a/tests/net/docker_io/mod.rs b/tests/net/docker_io/mod.rs index d58583c0..f95b162c 100644 --- a/tests/net/docker_io/mod.rs +++ b/tests/net/docker_io/mod.rs @@ -3,8 +3,8 @@ use tokio::runtime::Runtime; static REGISTRY: &str = "registry-1.docker.io"; fn get_env() -> Option<(String, String)> { - let user = ::std::env::var("DKREG_DOCKER_USER"); - let password = ::std::env::var("DKREG_DOCKER_PASSWD"); + let user = ::std::env::var("DOCKER_REGISTRY_DOCKER_USER"); + let password = ::std::env::var("DOCKER_REGISTRY_DOCKER_PASSWD"); match (user, password) { (Ok(u), Ok(t)) => Some((u, t)), _ => None, @@ -14,7 +14,10 @@ fn get_env() -> Option<(String, String)> { #[test] fn test_dockerio_getenv() { if get_env().is_none() { - println!("[WARN] {}: missing DKREG_DOCKER_USER / DKREG_DOCKER_PASSWD", REGISTRY); + println!( + "[WARN] {}: missing DOCKER_REGISTRY_DOCKER_USER / DOCKER_REGISTRY_DOCKER_PASSWD", + REGISTRY + ); } } @@ -26,7 +29,7 @@ fn test_dockerio_base() { }; let runtime = Runtime::new().unwrap(); - let dclient = docker_registry::v2::Client::configure() + let client = docker_registry::v2::Client::configure() .registry(REGISTRY) .insecure_registry(false) .username(Some(user)) @@ -34,7 +37,7 @@ fn test_dockerio_base() { .build() .unwrap(); - let futcheck = dclient.is_v2_supported(); + let futcheck = client.is_v2_supported(); let res = runtime.block_on(futcheck).unwrap(); assert!(res); @@ -43,7 +46,7 @@ fn test_dockerio_base() { #[test] fn test_dockerio_insecure() { let runtime = Runtime::new().unwrap(); - let dclient = docker_registry::v2::Client::configure() + let client = docker_registry::v2::Client::configure() .registry(REGISTRY) .insecure_registry(true) .username(None) @@ -51,7 +54,7 @@ fn test_dockerio_insecure() { .build() .unwrap(); - let futcheck = dclient.is_v2_supported(); + let futcheck = client.is_v2_supported(); let res = runtime.block_on(futcheck).unwrap(); assert!(res); @@ -64,7 +67,7 @@ fn test_dockerio_anonymous_auth() { let version = "latest"; let login_scope = format!("repository:{}:pull", image); let scopes = vec![login_scope.as_str()]; - let dclient_future = docker_registry::v2::Client::configure() + let client_future = docker_registry::v2::Client::configure() .registry(REGISTRY) .insecure_registry(false) .username(None) @@ -73,8 +76,8 @@ fn test_dockerio_anonymous_auth() { .unwrap() .authenticate(scopes.as_slice()); - let dclient = runtime.block_on(dclient_future).unwrap(); - let futcheck = dclient.get_manifest(image, version); + let client = runtime.block_on(client_future).unwrap(); + let futcheck = client.get_manifest(image, version); let res = runtime.block_on(futcheck); assert!(res.is_ok()); diff --git a/tests/net/gcr_io/mod.rs b/tests/net/gcr_io/mod.rs index bf19d048..f2535ef5 100644 --- a/tests/net/gcr_io/mod.rs +++ b/tests/net/gcr_io/mod.rs @@ -4,8 +4,8 @@ use tokio::runtime::Runtime; static REGISTRY: &str = "gcr.io"; fn get_env() -> Option<(String, String)> { - let user = ::std::env::var("DKREG_GCR_USER"); - let password = ::std::env::var("DKREG_GCR_PASSWD"); + let user = ::std::env::var("DOCKER_REGISTRY_GCR_USER"); + let password = ::std::env::var("DOCKER_REGISTRY_GCR_PASSWD"); match (user, password) { (Ok(u), Ok(t)) => Some((u, t)), _ => None, @@ -15,7 +15,10 @@ fn get_env() -> Option<(String, String)> { #[test] fn test_dockerio_getenv() { if get_env().is_none() { - println!("[WARN] {}: missing DKREG_GCR_USER / DKREG_GCR_PASSWD", REGISTRY); + println!( + "[WARN] {}: missing DOCKER_REGISTRY_GCR_USER / DOCKER_REGISTRY_GCR_PASSWD", + REGISTRY + ); } } @@ -27,7 +30,7 @@ fn test_gcrio_base() { }; let runtime = Runtime::new().unwrap(); - let dclient = docker_registry::v2::Client::configure() + let client = docker_registry::v2::Client::configure() .registry(REGISTRY) .insecure_registry(false) .username(Some(user)) @@ -35,7 +38,7 @@ fn test_gcrio_base() { .build() .unwrap(); - let futcheck = dclient.is_v2_supported(); + let futcheck = client.is_v2_supported(); let res = runtime.block_on(futcheck).unwrap(); assert!(res); @@ -44,7 +47,7 @@ fn test_gcrio_base() { #[test] fn test_gcrio_insecure() { let runtime = Runtime::new().unwrap(); - let dclient = docker_registry::v2::Client::configure() + let client = docker_registry::v2::Client::configure() .registry(REGISTRY) .insecure_registry(true) .username(None) @@ -52,7 +55,7 @@ fn test_gcrio_insecure() { .build() .unwrap(); - let futcheck = dclient.is_v2_supported(); + let futcheck = client.is_v2_supported(); let res = runtime.block_on(futcheck).unwrap(); assert!(res); @@ -61,7 +64,7 @@ fn test_gcrio_insecure() { #[test] fn test_gcrio_get_tags() { let runtime = Runtime::new().unwrap(); - let dclient = docker_registry::v2::Client::configure() + let client = docker_registry::v2::Client::configure() .registry(REGISTRY) .insecure_registry(false) .username(None) @@ -70,7 +73,7 @@ fn test_gcrio_get_tags() { .unwrap(); let image = "google_containers/mounttest"; - let fut_tags = dclient.get_tags(image, None); + let fut_tags = client.get_tags(image, None); let tags = runtime.block_on(fut_tags.collect::>()); let has_version = tags.iter().map(|t| t.as_ref().unwrap()).any(|t| t == "0.2"); @@ -80,7 +83,7 @@ fn test_gcrio_get_tags() { #[test] fn test_gcrio_has_manifest() { let runtime = Runtime::new().unwrap(); - let dclient = docker_registry::v2::Client::configure() + let client = docker_registry::v2::Client::configure() .registry(REGISTRY) .insecure_registry(false) .username(None) @@ -93,7 +96,7 @@ fn test_gcrio_has_manifest() { let manifest_type = docker_registry::mediatypes::MediaTypes::ManifestV2S1Signed.to_string(); let manifest_type_str = manifest_type.as_str(); let manifest_type_vec = vec![manifest_type_str]; - let fut = dclient.has_manifest(image, tag, Some(manifest_type_vec.as_slice())); + let fut = client.has_manifest(image, tag, Some(manifest_type_vec.as_slice())); let has_manifest = runtime.block_on(fut).unwrap(); assert_eq!( @@ -105,7 +108,7 @@ fn test_gcrio_has_manifest() { #[test] fn test_gcrio_get_manifest() { let runtime = Runtime::new().unwrap(); - let dclient = docker_registry::v2::Client::configure() + let client = docker_registry::v2::Client::configure() .registry(REGISTRY) .insecure_registry(false) .username(None) @@ -116,7 +119,7 @@ fn test_gcrio_get_manifest() { let image = "google_containers/mounttest"; let tag = "0.2"; - let fut = dclient.get_manifest(image, tag); + let fut = client.get_manifest(image, tag); runtime .block_on(fut) .expect("check that manifest was downloaded successfully"); diff --git a/tests/net/quay_io/mod.rs b/tests/net/quay_io/mod.rs index 344f6a94..4732813b 100644 --- a/tests/net/quay_io/mod.rs +++ b/tests/net/quay_io/mod.rs @@ -5,8 +5,8 @@ use tokio::runtime::Runtime; static REGISTRY: &str = "quay.io"; fn get_env() -> Option<(String, String)> { - let user = ::std::env::var("DKREG_QUAY_USER"); - let password = ::std::env::var("DKREG_QUAY_PASSWD"); + let user = ::std::env::var("DOCKER_REGISTRY_QUAY_USER"); + let password = ::std::env::var("DOCKER_REGISTRY_QUAY_PASSWD"); match (user, password) { (Ok(u), Ok(t)) => Some((u, t)), _ => None, @@ -26,7 +26,7 @@ fn common_init(login_scope: Option<&str>) -> Option<(tokio::runtime::Runtime, do (None, None, "".to_string()) }; - let dclient = runtime + let client = runtime .block_on( docker_registry::v2::Client::configure() .registry(REGISTRY) @@ -39,13 +39,16 @@ fn common_init(login_scope: Option<&str>) -> Option<(tokio::runtime::Runtime, do ) .unwrap(); - Some((runtime, dclient)) + Some((runtime, client)) } #[test] fn test_quayio_getenv() { if get_env().is_none() { - println!("[WARN] {}: missing DKREG_QUAY_USER / DKREG_QUAY_PASSWD", REGISTRY); + println!( + "[WARN] {}: missing DOCKER_REGISTRY_QUAY_USER / DOCKER_REGISTRY_QUAY_PASSWD", + REGISTRY + ); } } @@ -57,7 +60,7 @@ fn test_quayio_base() { }; let runtime = Runtime::new().unwrap(); - let dclient = docker_registry::v2::Client::configure() + let client = docker_registry::v2::Client::configure() .registry(REGISTRY) .insecure_registry(false) .username(Some(user)) @@ -65,7 +68,7 @@ fn test_quayio_base() { .build() .unwrap(); - let futcheck = dclient.is_v2_supported(); + let futcheck = client.is_v2_supported(); let res = runtime.block_on(futcheck).unwrap(); assert!(res); @@ -75,7 +78,7 @@ fn test_quayio_base() { #[ignore] fn test_quayio_insecure() { let runtime = Runtime::new().unwrap(); - let dclient = docker_registry::v2::Client::configure() + let client = docker_registry::v2::Client::configure() .registry(REGISTRY) .insecure_registry(true) .username(None) @@ -83,7 +86,7 @@ fn test_quayio_insecure() { .build() .unwrap(); - let futcheck = dclient.is_v2_supported(); + let futcheck = client.is_v2_supported(); let res = runtime.block_on(futcheck).unwrap(); assert!(res); @@ -93,9 +96,9 @@ fn test_quayio_insecure() { #[test] fn test_quayio_auth_login() { let login_scope = ""; - let (runtime, dclient) = common_init(Some(login_scope)).unwrap(); + let (runtime, client) = common_init(Some(login_scope)).unwrap(); - let futlogin = dclient.is_auth(); + let futlogin = client.is_auth(); let res = runtime.block_on(futlogin).unwrap(); assert!(res); } @@ -103,7 +106,7 @@ fn test_quayio_auth_login() { #[test] fn test_quayio_get_tags_simple() { let runtime = Runtime::new().unwrap(); - let dclient = docker_registry::v2::Client::configure() + let client = docker_registry::v2::Client::configure() .registry(REGISTRY) .insecure_registry(false) .username(None) @@ -112,7 +115,7 @@ fn test_quayio_get_tags_simple() { .unwrap(); let image = "coreos/alpine-sh"; - let fut_tags = dclient.get_tags(image, None); + let fut_tags = client.get_tags(image, None); let tags = runtime.block_on(fut_tags.collect::>()); let has_version = tags.iter().map(|t| t.as_ref().unwrap()).any(|t| t == "latest"); @@ -122,7 +125,7 @@ fn test_quayio_get_tags_simple() { #[test] fn test_quayio_get_tags_limit() { let runtime = Runtime::new().unwrap(); - let dclient = docker_registry::v2::Client::configure() + let client = docker_registry::v2::Client::configure() .registry(REGISTRY) .insecure_registry(false) .username(None) @@ -131,7 +134,7 @@ fn test_quayio_get_tags_limit() { .unwrap(); let image = "coreos/alpine-sh"; - let fut_tags = dclient.get_tags(image, Some(10)); + let fut_tags = client.get_tags(image, Some(10)); let tags = runtime.block_on(fut_tags.collect::>()); let has_version = tags.iter().map(|t| t.as_ref().unwrap()).any(|t| t == "latest"); @@ -141,7 +144,7 @@ fn test_quayio_get_tags_limit() { #[test] fn test_quayio_get_tags_pagination() { let runtime = Runtime::new().unwrap(); - let dclient = docker_registry::v2::Client::configure() + let client = docker_registry::v2::Client::configure() .registry(REGISTRY) .insecure_registry(false) .username(None) @@ -150,7 +153,7 @@ fn test_quayio_get_tags_pagination() { .unwrap(); let image = "coreos/flannel"; - let fut_tags = dclient.get_tags(image, Some(20)); + let fut_tags = client.get_tags(image, Some(20)); let tags = runtime.block_on(fut_tags.collect::>()); let has_version = tags.iter().map(|t| t.as_ref().unwrap()).any(|t| t == "v0.10.0"); @@ -162,10 +165,10 @@ fn test_quayio_get_tags_pagination() { fn test_quayio_auth_tags() { let image = "steveej/cincinnati-test"; let login_scope = format!("repository:{}:pull", image); - let (runtime, dclient) = common_init(Some(&login_scope)).unwrap(); + let (runtime, client) = common_init(Some(&login_scope)).unwrap(); let tags = runtime - .block_on(dclient.get_tags(image, None).collect::>()) + .block_on(client.get_tags(image, None).collect::>()) .into_iter() .map(Result::unwrap) .collect::>(); @@ -177,7 +180,7 @@ fn test_quayio_auth_tags() { #[test] fn test_quayio_has_manifest() { let runtime = Runtime::new().unwrap(); - let dclient = docker_registry::v2::Client::configure() + let client = docker_registry::v2::Client::configure() .registry(REGISTRY) .insecure_registry(false) .username(None) @@ -187,7 +190,7 @@ fn test_quayio_has_manifest() { let image = "coreos/alpine-sh"; let reference = "latest"; - let fut = dclient.has_manifest(image, reference, None); + let fut = client.has_manifest(image, reference, None); let has_manifest = runtime.block_on(fut).unwrap(); assert_eq!(has_manifest, Some(MediaTypes::ManifestV2S1Signed)); @@ -199,9 +202,9 @@ fn test_quayio_auth_manifest() { let image = "steveej/cincinnati-test"; let reference = "0.0.1"; let login_scope = format!("repository:{}:pull", image); - let (runtime, dclient) = common_init(Some(&login_scope)).unwrap(); + let (runtime, client) = common_init(Some(&login_scope)).unwrap(); - let fut_has_manifest = dclient.has_manifest(image, reference, None); + let fut_has_manifest = client.has_manifest(image, reference, None); let has_manifest = runtime.block_on(fut_has_manifest).unwrap(); assert_eq!(has_manifest, Some(MediaTypes::ManifestV2S1Signed)); @@ -210,7 +213,7 @@ fn test_quayio_auth_manifest() { #[test] fn test_quayio_has_no_manifest() { let runtime = Runtime::new().unwrap(); - let dclient = docker_registry::v2::Client::configure() + let client = docker_registry::v2::Client::configure() .registry(REGISTRY) .insecure_registry(false) .username(None) @@ -220,7 +223,7 @@ fn test_quayio_has_no_manifest() { let image = "coreos/alpine-sh"; let reference = "clearly_bogus"; - let fut = dclient.has_manifest(image, reference, None); + let fut = client.has_manifest(image, reference, None); let has_manifest = runtime.block_on(fut).unwrap(); assert_eq!(has_manifest, None); @@ -233,8 +236,8 @@ fn test_quayio_auth_manifestref_missing() { let tag = "no-such-tag"; let login_scope = format!("repository:{}:pull", image); - let (runtime, dclient) = common_init(Some(&login_scope)).unwrap(); - let fut_actual = async { dclient.get_manifestref(image, tag).await }; + let (runtime, client) = common_init(Some(&login_scope)).unwrap(); + let fut_actual = async { client.get_manifestref(image, tag).await }; let actual = runtime.block_on(fut_actual); assert!(actual.is_err()); } @@ -247,8 +250,8 @@ fn test_quayio_auth_manifestref() { let expected = String::from("sha256:cc1f79c6a6fc92982a10ced91bddeefb8fbd037a01ae106a64d0a7e79d0e4813"); let login_scope = format!("repository:{}:pull", image); - let (runtime, dclient) = common_init(Some(&login_scope)).unwrap(); - let fut_actual = async { dclient.get_manifestref(image, tag).await.unwrap() }; + let (runtime, client) = common_init(Some(&login_scope)).unwrap(); + let fut_actual = async { client.get_manifestref(image, tag).await.unwrap() }; let actual = runtime.block_on(fut_actual).unwrap(); assert_eq!(actual, expected); } @@ -262,10 +265,10 @@ fn test_quayio_auth_layer_blob() { let layer0_len: usize = 198; let login_scope = format!("repository:{}:pull", image); - let (runtime, dclient) = common_init(Some(&login_scope)).unwrap(); + let (runtime, client) = common_init(Some(&login_scope)).unwrap(); let fut_layer0_blob = async { - let digest = dclient + let digest = client .get_manifest(image, reference) .await .and_then(|manifest| { @@ -278,7 +281,7 @@ fn test_quayio_auth_layer_blob() { }) .unwrap(); - dclient.get_blob(image, &digest).await + client.get_blob(image, &digest).await }; let layer0_blob = runtime.block_on(fut_layer0_blob).unwrap(); From 92cfa8f75ef97ea129e0cb648e448fb58c6d524c Mon Sep 17 00:00:00 2001 From: Bryant Biggs Date: Fri, 23 Aug 2024 15:47:14 -0500 Subject: [PATCH 2/3] fix: Replace `env_logger` with `tracing-subscriber` in the examples --- Cargo.toml | 2 +- examples/checkregistry.rs | 5 +++++ examples/image-labels.rs | 5 +++++ examples/image.rs | 8 ++++---- examples/login.rs | 10 +++++----- examples/tags.rs | 10 +++++----- examples/trace.rs | 10 +++++----- 7 files changed, 30 insertions(+), 20 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index b40a65a4..b7e4234a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -49,13 +49,13 @@ url = "2.5" [dev-dependencies] dirs = "5.0" -env_logger = "0.11" hyper = "1.4" mockito = "1.5" native-tls = "0.2" test-case = "3.3" tokio = { version = "1.0", features = ["macros", "rt-multi-thread"] } tracing = "0.1" +tracing-subscriber = "0.3" [features] default = ["reqwest-default-tls"] diff --git a/examples/checkregistry.rs b/examples/checkregistry.rs index 8b92ab2b..5dac6683 100644 --- a/examples/checkregistry.rs +++ b/examples/checkregistry.rs @@ -4,6 +4,11 @@ use tracing::{error, info}; #[tokio::main] async fn main() { + tracing_subscriber::fmt() + .pretty() + .with_max_level(tracing::Level::INFO) + .init(); + let registry = match std::env::args().nth(1) { Some(x) => x, None => "registry-1.docker.io".into(), diff --git a/examples/image-labels.rs b/examples/image-labels.rs index 48bdca5a..2a67798c 100644 --- a/examples/image-labels.rs +++ b/examples/image-labels.rs @@ -5,6 +5,11 @@ use tracing::{error, info, warn}; #[tokio::main] async fn main() { + tracing_subscriber::fmt() + .pretty() + .with_max_level(tracing::Level::INFO) + .init(); + let dkr_ref = match std::env::args().nth(1) { Some(ref x) => reference::Reference::from_str(x), None => reference::Reference::from_str("quay.io/steveej/cincinnati-test-labels:0.0.0"), diff --git a/examples/image.rs b/examples/image.rs index b6507c7d..4088f684 100644 --- a/examples/image.rs +++ b/examples/image.rs @@ -77,10 +77,10 @@ async fn run( passwd: Option, path: &Path, ) -> Result<(), boxed::Box> { - env_logger::Builder::new() - .filter(Some("docker_registry"), log::LevelFilter::Trace) - .filter(Some("trace"), log::LevelFilter::Trace) - .try_init()?; + tracing_subscriber::fmt() + .pretty() + .with_max_level(tracing::Level::INFO) + .init(); let client = docker_registry::v2::Client::configure() .registry(registry) diff --git a/examples/login.rs b/examples/login.rs index ae9ca473..9da57a72 100644 --- a/examples/login.rs +++ b/examples/login.rs @@ -4,6 +4,11 @@ use tracing::{error, warn}; #[tokio::main] async fn main() { + tracing_subscriber::fmt() + .pretty() + .with_max_level(tracing::Level::INFO) + .init(); + let registry = match std::env::args().nth(1) { Some(x) => x, None => "registry-1.docker.io".into(), @@ -37,11 +42,6 @@ async fn run( passwd: Option, login_scope: String, ) -> Result<(), boxed::Box> { - env_logger::Builder::new() - .filter(Some("docker_registry"), log::LevelFilter::Trace) - .filter(Some("trace"), log::LevelFilter::Trace) - .try_init()?; - let client = docker_registry::v2::Client::configure() .registry(host) .insecure_registry(false) diff --git a/examples/tags.rs b/examples/tags.rs index 46322d85..a7b3fd2d 100644 --- a/examples/tags.rs +++ b/examples/tags.rs @@ -5,6 +5,11 @@ use tracing::{error, info, warn}; #[tokio::main] async fn main() { + tracing_subscriber::fmt() + .pretty() + .with_max_level(tracing::Level::INFO) + .init(); + let registry = match std::env::args().nth(1) { Some(x) => x, None => "registry-1.docker.io".into(), @@ -39,11 +44,6 @@ async fn run( passwd: Option, image: &str, ) -> Result<(), boxed::Box> { - env_logger::Builder::new() - .filter(Some("docker_registry"), log::LevelFilter::Trace) - .filter(Some("trace"), log::LevelFilter::Trace) - .try_init()?; - let client = docker_registry::v2::Client::configure() .registry(host) .insecure_registry(false) diff --git a/examples/trace.rs b/examples/trace.rs index 54856c66..8439600a 100644 --- a/examples/trace.rs +++ b/examples/trace.rs @@ -5,6 +5,11 @@ use tracing::{error, info, warn}; #[tokio::main] async fn main() { + tracing_subscriber::fmt() + .pretty() + .with_max_level(tracing::Level::INFO) + .init(); + let dkr_ref = match std::env::args().nth(1) { Some(ref x) => reference::Reference::from_str(x), None => reference::Reference::from_str("quay.io/coreos/etcd"), @@ -50,11 +55,6 @@ async fn run( user: Option, passwd: Option, ) -> Result<(), boxed::Box> { - env_logger::Builder::new() - .filter(Some("docker_registry"), log::LevelFilter::Trace) - .filter(Some("trace"), log::LevelFilter::Trace) - .try_init()?; - let image = dkr_ref.repository(); let version = dkr_ref.version(); From a927615d5ce3c302e794f0819d3d5549684bceec Mon Sep 17 00:00:00 2001 From: Bryant Biggs Date: Fri, 23 Aug 2024 15:54:28 -0500 Subject: [PATCH 3/3] fix: Add missing cargo components for CI checks --- .github/workflows/ci.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 24f50671..50189e29 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -93,6 +93,8 @@ jobs: - name: Install toolchain uses: dtolnay/rust-toolchain@nightly + with: + components: rustfmt, clippy - name: Run cargo fmt run: cargo fmt --all -- --check