Skip to main content

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}