This is an automated email from the ASF dual-hosted git repository.

xuanwo pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/opendal-reqsign.git


The following commit(s) were added to refs/heads/main by this push:
     new 0ec4c32  Replace dotenv with dotenvy (#688)
0ec4c32 is described below

commit 0ec4c323cae246e68c989d910ace5231bb354d6b
Author: Alexander Kjäll <[email protected]>
AuthorDate: Mon Feb 23 02:19:31 2026 +0100

    Replace dotenv with dotenvy (#688)
    
    dotenv is no longer maintained:
    https://rustsec.org/advisories/RUSTSEC-2021-0141.html
    dotenvy seems like the best replacement:
    https://crates.io/crates/dotenvy
---
 Cargo.toml                                        | 2 +-
 services/aliyun-oss/Cargo.toml                    | 2 +-
 services/aliyun-oss/tests/main.rs                 | 2 +-
 services/aws-v4/Cargo.toml                        | 2 +-
 services/aws-v4/tests/credential_providers/mod.rs | 4 ++--
 services/aws-v4/tests/signing/mod.rs              | 2 +-
 services/google/Cargo.toml                        | 2 +-
 services/google/tests/credential_providers/mod.rs | 4 ++--
 services/google/tests/signing/signed_url.rs       | 2 +-
 services/google/tests/signing/standard.rs         | 2 +-
 services/tencent-cos/Cargo.toml                   | 2 +-
 services/tencent-cos/tests/main.rs                | 2 +-
 12 files changed, 14 insertions(+), 14 deletions(-)

diff --git a/Cargo.toml b/Cargo.toml
index 8226293..52e578f 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -45,7 +45,7 @@ async-trait = "0.1"
 base64 = "0.22"
 bytes = "1"
 criterion = { version = "0.8.1", features = ["async_tokio", "html_reports"] }
-dotenv = "0.15"
+dotenvy = "0.15"
 env_logger = "0.11"
 form_urlencoded = "1"
 hex = "0.4"
diff --git a/services/aliyun-oss/Cargo.toml b/services/aliyun-oss/Cargo.toml
index 6d7eefd..7c1a0a4 100644
--- a/services/aliyun-oss/Cargo.toml
+++ b/services/aliyun-oss/Cargo.toml
@@ -39,7 +39,7 @@ serde_json = { workspace = true }
 
 [dev-dependencies]
 bytes = { workspace = true }
-dotenv = { workspace = true }
+dotenvy = { workspace = true }
 env_logger = { workspace = true }
 reqsign-file-read-tokio = { workspace = true }
 reqsign-http-send-reqwest = { workspace = true }
diff --git a/services/aliyun-oss/tests/main.rs 
b/services/aliyun-oss/tests/main.rs
index 22e56f4..a7ffbe3 100644
--- a/services/aliyun-oss/tests/main.rs
+++ b/services/aliyun-oss/tests/main.rs
@@ -33,7 +33,7 @@ use reqwest::Client;
 
 async fn init_signer() -> Option<(Context, 
Signer<reqsign_aliyun_oss::Credential>)> {
     let _ = env_logger::builder().is_test(true).try_init();
-    let _ = dotenv::dotenv();
+    let _ = dotenvy::dotenv();
 
     if env::var("REQSIGN_ALIYUN_OSS_TEST").is_err()
         || env::var("REQSIGN_ALIYUN_OSS_TEST").unwrap() != "on"
diff --git a/services/aws-v4/Cargo.toml b/services/aws-v4/Cargo.toml
index bfab4f4..f816665 100644
--- a/services/aws-v4/Cargo.toml
+++ b/services/aws-v4/Cargo.toml
@@ -50,7 +50,7 @@ sha1 = "0.10"
 aws-credential-types = "1.1.8"
 aws-sigv4 = "1.2.0"
 criterion = { workspace = true }
-dotenv = { workspace = true }
+dotenvy = { workspace = true }
 env_logger = { workspace = true }
 hex = { workspace = true }
 pretty_assertions = { workspace = true }
diff --git a/services/aws-v4/tests/credential_providers/mod.rs 
b/services/aws-v4/tests/credential_providers/mod.rs
index e672a11..447c8b2 100644
--- a/services/aws-v4/tests/credential_providers/mod.rs
+++ b/services/aws-v4/tests/credential_providers/mod.rs
@@ -37,7 +37,7 @@ use std::collections::HashMap;
 
 pub fn create_test_context() -> Context {
     let _ = env_logger::builder().is_test(true).try_init();
-    let _ = dotenv::dotenv();
+    let _ = dotenvy::dotenv();
 
     let mut ctx = Context::new()
         .with_file_read(TokioFileRead)
@@ -54,7 +54,7 @@ pub fn create_test_context() -> Context {
 
 pub fn create_test_context_with_env(envs: HashMap<String, String>) -> Context {
     let _ = env_logger::builder().is_test(true).try_init();
-    let _ = dotenv::dotenv();
+    let _ = dotenvy::dotenv();
 
     // Get home directory from HOME environment variable if set
     let home_dir = std::env::var("HOME").ok().map(std::path::PathBuf::from);
diff --git a/services/aws-v4/tests/signing/mod.rs 
b/services/aws-v4/tests/signing/mod.rs
index 6182d7d..6980f66 100644
--- a/services/aws-v4/tests/signing/mod.rs
+++ b/services/aws-v4/tests/signing/mod.rs
@@ -48,7 +48,7 @@ pub fn load_static_credential() -> Result<Credential> {
 /// Initialize test environment
 pub fn init_signing_test() -> Option<(Context, RequestSigner, String)> {
     let _ = env_logger::builder().is_test(true).try_init();
-    let _ = dotenv::dotenv();
+    let _ = dotenvy::dotenv();
 
     if env::var("REQSIGN_AWS_V4_TEST").is_err() || 
env::var("REQSIGN_AWS_V4_TEST").unwrap() != "on"
     {
diff --git a/services/google/Cargo.toml b/services/google/Cargo.toml
index 70e528b..2fbbb9c 100644
--- a/services/google/Cargo.toml
+++ b/services/google/Cargo.toml
@@ -42,7 +42,7 @@ sha2 = { workspace = true }
 
 [dev-dependencies]
 bytes = { workspace = true }
-dotenv = { workspace = true }
+dotenvy = { workspace = true }
 env_logger = { workspace = true }
 reqsign-file-read-tokio = { workspace = true }
 reqsign-http-send-reqwest = { workspace = true }
diff --git a/services/google/tests/credential_providers/mod.rs 
b/services/google/tests/credential_providers/mod.rs
index 38e1e89..58b7b60 100644
--- a/services/google/tests/credential_providers/mod.rs
+++ b/services/google/tests/credential_providers/mod.rs
@@ -29,7 +29,7 @@ use std::collections::HashMap;
 
 pub fn create_test_context() -> Context {
     let _ = env_logger::builder().is_test(true).try_init();
-    let _ = dotenv::dotenv();
+    let _ = dotenvy::dotenv();
 
     Context::new()
         .with_file_read(TokioFileRead)
@@ -39,7 +39,7 @@ pub fn create_test_context() -> Context {
 
 pub fn create_test_context_with_env(envs: HashMap<String, String>) -> Context {
     let _ = env_logger::builder().is_test(true).try_init();
-    let _ = dotenv::dotenv();
+    let _ = dotenvy::dotenv();
 
     let home_dir = std::env::var("HOME").ok().map(std::path::PathBuf::from);
 
diff --git a/services/google/tests/signing/signed_url.rs 
b/services/google/tests/signing/signed_url.rs
index 8151eff..d2b5fb9 100644
--- a/services/google/tests/signing/signed_url.rs
+++ b/services/google/tests/signing/signed_url.rs
@@ -27,7 +27,7 @@ use std::time::Duration;
 
 async fn init_signer_for_signed_url() -> Option<(Context, Signer<Credential>)> 
{
     let _ = env_logger::builder().is_test(true).try_init();
-    let _ = dotenv::dotenv();
+    let _ = dotenvy::dotenv();
 
     if env::var("REQSIGN_GOOGLE_TEST").unwrap_or_default() != "on" {
         return None;
diff --git a/services/google/tests/signing/standard.rs 
b/services/google/tests/signing/standard.rs
index 6741c2f..fc7d553 100644
--- a/services/google/tests/signing/standard.rs
+++ b/services/google/tests/signing/standard.rs
@@ -26,7 +26,7 @@ use std::env;
 
 async fn init_signer() -> Option<(Context, Signer<Credential>)> {
     let _ = env_logger::builder().is_test(true).try_init();
-    let _ = dotenv::dotenv();
+    let _ = dotenvy::dotenv();
 
     if env::var("REQSIGN_GOOGLE_TEST").unwrap_or_default() != "on" {
         return None;
diff --git a/services/tencent-cos/Cargo.toml b/services/tencent-cos/Cargo.toml
index 3f6cc3a..4fd129b 100644
--- a/services/tencent-cos/Cargo.toml
+++ b/services/tencent-cos/Cargo.toml
@@ -37,7 +37,7 @@ serde = { workspace = true }
 serde_json = { workspace = true }
 
 [dev-dependencies]
-dotenv = { workspace = true }
+dotenvy = { workspace = true }
 env_logger = { workspace = true }
 reqsign-core = { workspace = true }
 reqsign-file-read-tokio = { workspace = true }
diff --git a/services/tencent-cos/tests/main.rs 
b/services/tencent-cos/tests/main.rs
index cf14cfb..87b5c63 100644
--- a/services/tencent-cos/tests/main.rs
+++ b/services/tencent-cos/tests/main.rs
@@ -34,7 +34,7 @@ use reqsign_tencent_cos::{Credential, RequestSigner, 
StaticCredentialProvider};
 
 async fn init_signer() -> Option<Signer<Credential>> {
     let _ = env_logger::builder().is_test(true).try_init();
-    let _ = dotenv::dotenv();
+    let _ = dotenvy::dotenv();
     if env::var("REQSIGN_TENCENT_COS_TEST").is_err()
         || env::var("REQSIGN_TENCENT_COS_TEST").unwrap() != "on"
     {

Reply via email to