rskit_git/auth/transport.rs
1//! Transport authentication types.
2
3use std::path::PathBuf;
4
5/// Supported repository transport authentication strategies.
6#[derive(Debug, Clone, Default)]
7#[non_exhaustive]
8pub enum TransportAuth {
9 /// Use default environment-driven authentication.
10 #[default]
11 Default,
12 /// Use a username/password combination.
13 UsernamePassword {
14 /// Login username.
15 username: String,
16 /// Login password.
17 password: String,
18 },
19 /// Use an HTTP token.
20 Token {
21 /// Optional username override.
22 username: Option<String>,
23 /// Token or password value.
24 token: String,
25 },
26 /// Use explicit SSH key material.
27 SshKey {
28 /// SSH username.
29 username: String,
30 /// Optional public key path.
31 public_key: Option<PathBuf>,
32 /// Private key path.
33 private_key: PathBuf,
34 /// Optional passphrase.
35 passphrase: Option<String>,
36 },
37 /// Use the local SSH agent.
38 SshAgent {
39 /// SSH username.
40 username: String,
41 },
42}