Skip to main content

TokenProvider

Trait TokenProvider 

Source
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§

Source

fn github_token(&self) -> Option<SecretString>

Retrieves the GitHub API token.

Returns None if no token is available from any source.

Source

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".

Implementors§