diff --git a/Cargo.lock b/Cargo.lock index 53a0137f..64b46af7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1041,11 +1041,11 @@ dependencies = [ [[package]] name = "git2" -version = "0.16.1" +version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccf7f68c2995f392c49fffb4f95ae2c873297830eb25c6bc4c114ce8f4562acc" +checksum = "fbf97ba92db08df386e10c8ede66a2a0369bd277090afd8710e19e38de9ec0cd" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.3.1", "libc", "libgit2-sys", "log", @@ -1425,9 +1425,9 @@ checksum = "2b00cc1c228a6782d0f076e7b232802e0c5689d41bb5df366f2a6b6621cfdfe1" [[package]] name = "libgit2-sys" -version = "0.14.2+1.5.1" +version = "0.16.1+1.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f3d95f6b51075fe9810a7ae22c7095f12b98005ab364d8544797a825ce946a4" +checksum = "f2a2bb3680b094add03bb3732ec520ece34da31a8cd2d633d1389d0f0fb60d0c" dependencies = [ "cc", "libc", @@ -1439,9 +1439,9 @@ dependencies = [ [[package]] name = "libssh2-sys" -version = "0.2.21" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0186af0d8f171ae6b9c4c90ec51898bad5d08a2d5e470903a50d9ad8959cbee" +checksum = "2dc8a030b787e2119a731f1951d6a773e2280c660f8ec4b0f5e1505a386e71ee" dependencies = [ "cc", "libc", diff --git a/Cargo.toml b/Cargo.toml index b21b007a..c6a7b18b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -34,7 +34,7 @@ crossterm = "0.22.1" dirs = "3.0.1" env_logger = "0.8.1" fs-err = "2.5.0" -git2 = "0.16.1" +git2 = "0.18.1" hex = "0.4.2" indoc = "1.0.3" log = "0.4.11" diff --git a/src/git_util.rs b/src/git_util.rs index f0ab3ae4..38d89b58 100644 --- a/src/git_util.rs +++ b/src/git_util.rs @@ -27,6 +27,11 @@ fn make_credentials_callback( let mut token_tried = false; move |url, username, allowed_types| { + if allowed_types.contains(CredentialType::SSH_KEY) { + let username = username.unwrap(); + return Cred::ssh_key_from_agent(username); + } + if allowed_types.contains(CredentialType::USER_PASS_PLAINTEXT) { if let Some(token) = &access_token { if !token_tried { diff --git a/wally-registry-backend/Cargo.toml b/wally-registry-backend/Cargo.toml index 1c044d1a..3b8f0e11 100644 --- a/wally-registry-backend/Cargo.toml +++ b/wally-registry-backend/Cargo.toml @@ -23,7 +23,7 @@ constant_time_eq = "0.1.5" figment = "0.10.9" fs-err = "2.5.0" futures = "0.3.13" -git2 = "0.16.1" +git2 = "0.18.1" reqwest = { version = "0.11.0", features = ["blocking", "json"] } rocket = { git = "https://github.com/SergioBenitez/Rocket", rev = "91f6288ea4aeb3d5a502b2f18b2b9677a85463ea", features = ["json"] } rusoto_core = { version = "0.48.0", optional = true }