pub struct ForgeClient { /* private fields */ }Expand description
Unified entry point for talking to forges (GitHub, Gitea/Forgejo).
One shared HTTP agent and per-run result caches for tags, branches, and branch-exists probes. Locking is fine-grained per cache: two threads racing on the same missing key may both fetch, at the cost of one duplicated round trip.
Implementations§
Source§impl ForgeClient
impl ForgeClient
Latest-known tags for (owner, repo) at domain. Cached on success.
Sourcepub fn list_branches(
&self,
owner: &str,
repo: &str,
domain: Option<&str>,
) -> Result<Branches, ApiError>
pub fn list_branches( &self, owner: &str, repo: &str, domain: Option<&str>, ) -> Result<Branches, ApiError>
All branch names for (owner, repo) at domain. Cached on success.
Sourcepub fn branch_exists(
&self,
owner: &str,
repo: &str,
branch: &str,
domain: Option<&str>,
) -> Result<bool, ApiError>
pub fn branch_exists( &self, owner: &str, repo: &str, branch: &str, domain: Option<&str>, ) -> Result<bool, ApiError>
Single-branch existence probe.
Ok(true) for an existing branch, Ok(false) for a forge that
returned 404, Err(_) for any transient failure (timeout,
DNS, 5xx, …). Both Ok(true) and Ok(false) are cached;
errors are not.
Trait Implementations§
Source§impl Debug for ForgeClient
impl Debug for ForgeClient
Auto Trait Implementations§
impl !Freeze for ForgeClient
impl !RefUnwindSafe for ForgeClient
impl !UnwindSafe for ForgeClient
impl Send for ForgeClient
impl Sync for ForgeClient
impl Unpin for ForgeClient
impl UnsafeUnpin for ForgeClient
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