pub trait TokenProvider: Send + Sync {
// Required methods
fn github_token(&self) -> Option<SecretString>;
fn ai_api_key(&self, provider: &str) -> Option<SecretString>;
}Expand description
Provides GitHub and AI provider credentials for API calls.
This trait abstracts credential resolution across platforms:
- CLI: Resolves from environment variables, GitHub CLI, or system keyring
- iOS: Resolves from iOS keychain via FFI
Implementations should handle credential lookup and return None if
credentials are not available.
Required Methods§
Sourcefn github_token(&self) -> Option<SecretString>
fn github_token(&self) -> Option<SecretString>
Retrieves the GitHub API token.
Returns None if no token is available from any source.
Sourcefn ai_api_key(&self, provider: &str) -> Option<SecretString>
fn ai_api_key(&self, provider: &str) -> Option<SecretString>
Retrieves an AI provider API key.
§Arguments
provider- The AI provider name (must match a registered provider in the registry)
Returns None if no API key is available from any source.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".