pub struct GitHubProvider { /* private fields */ }Expand description
GitHub provider implementation.
Supports both github.com and GitHub Enterprise Server.
Implementations§
Source§impl GitHubProvider
impl GitHubProvider
Sourcepub fn new(
credentials: Credentials,
display_name: impl Into<String>,
) -> Result<Self, ProviderError>
pub fn new( credentials: Credentials, display_name: impl Into<String>, ) -> Result<Self, ProviderError>
Creates a new GitHub provider with default timeout.
Sourcepub fn with_timeout(
credentials: Credentials,
display_name: impl Into<String>,
timeout_secs: u64,
) -> Result<Self, ProviderError>
pub fn with_timeout( credentials: Credentials, display_name: impl Into<String>, timeout_secs: u64, ) -> Result<Self, ProviderError>
Creates a new GitHub provider with custom timeout.
Trait Implementations§
Source§impl Provider for GitHubProvider
impl Provider for GitHubProvider
Source§fn kind(&self) -> ProviderKind
fn kind(&self) -> ProviderKind
Returns the provider kind (GitHub, GitLab, etc.).
Source§fn display_name(&self) -> &str
fn display_name(&self) -> &str
Returns the display name for this provider instance.
Source§fn validate_credentials<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<(), ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn validate_credentials<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<(), ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Validates that the credentials are valid.
Source§fn get_username<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<String, ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_username<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<String, ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Gets the authenticated user’s username.
Source§fn get_organizations<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<Org>, ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_organizations<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<Org>, ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Fetches all organizations the user belongs to.
Source§fn get_org_repos<'life0, 'life1, 'async_trait>(
&'life0 self,
org: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<Repo>, ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_org_repos<'life0, 'life1, 'async_trait>(
&'life0 self,
org: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<Repo>, ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Fetches all repositories for a specific organization.
Source§fn get_user_repos<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<Repo>, ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_user_repos<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<Repo>, ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Fetches the user’s personal repositories (not org repos).
Source§fn get_rate_limit<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<RateLimitInfo, ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_rate_limit<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<RateLimitInfo, ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Returns current rate limit information.
Source§fn discover_repos<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
options: &'life1 DiscoveryOptions,
progress: &'life2 dyn DiscoveryProgress,
) -> Pin<Box<dyn Future<Output = Result<Vec<OwnedRepo>, ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn discover_repos<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
options: &'life1 DiscoveryOptions,
progress: &'life2 dyn DiscoveryProgress,
) -> Pin<Box<dyn Future<Output = Result<Vec<OwnedRepo>, ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
High-level discovery that returns all repos with filtering.
Auto Trait Implementations§
impl Freeze for GitHubProvider
impl !RefUnwindSafe for GitHubProvider
impl Send for GitHubProvider
impl Sync for GitHubProvider
impl Unpin for GitHubProvider
impl UnsafeUnpin for GitHubProvider
impl !UnwindSafe for GitHubProvider
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
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