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.