pub struct Authenticator(/* private fields */);Expand description
Signs in to GitHub, exchanges the GitHub token for a Copilot session, and
keeps both in its TokenStore. Clones share the store and the refresh
lock.
Implementations§
Source§impl Authenticator
impl Authenticator
Sourcepub fn new(
source: AuthSource,
store: impl TokenStore + 'static,
device_code_handler: DeviceCodeHandler,
allow_device_flow: bool,
) -> Self
pub fn new( source: AuthSource, store: impl TokenStore + 'static, device_code_handler: DeviceCodeHandler, allow_device_flow: bool, ) -> Self
An authenticator over source, keeping the GitHub token and the
session it exchanges for in store under
PROVIDER_NAME, copilot;
device_code_handler shows a device code when the device flow is
allowed.
Sourcepub async fn auth_context<H>(&self, http: &H) -> Result<AuthContext, AuthError>where
H: HttpClientExt,
pub async fn auth_context<H>(&self, http: &H) -> Result<AuthContext, AuthError>where
H: HttpClientExt,
Resolve the API key and optional API base, refreshing through http as needed.
Return store, transport, or authorization errors. OAuth device login is
unsupported on WASM; the GitHub token exchange remains available.
Trait Implementations§
Source§impl Clone for Authenticator
impl Clone for Authenticator
Source§impl CredentialSource for Authenticator
impl CredentialSource for Authenticator
Source§fn auth_context(
&self,
http: &DynHttpClient,
) -> impl Future<Output = Result<AuthContext, AuthError>> + WasmCompatSend
fn auth_context( &self, http: &DynHttpClient, ) -> impl Future<Output = Result<AuthContext, AuthError>> + WasmCompatSend
The credential to send with now, refreshed through
http when it
has expired.Auto Trait Implementations§
impl !RefUnwindSafe for Authenticator
impl !UnwindSafe for Authenticator
impl Freeze for Authenticator
impl Send for Authenticator
impl Sync for Authenticator
impl Unpin for Authenticator
impl UnsafeUnpin for Authenticator
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more