pub struct SshGitHandler<R: RepositoryAccess, A: AuthenticationService> { /* private fields */ }Expand description
SSH Git protocol handler
Implementations§
Source§impl<R: RepositoryAccess, A: AuthenticationService> SshGitHandler<R, A>
impl<R: RepositoryAccess, A: AuthenticationService> SshGitHandler<R, A>
Sourcepub async fn authenticate_ssh(
&self,
username: &str,
public_key: &[u8],
) -> Result<(), ProtocolError>
pub async fn authenticate_ssh( &self, username: &str, public_key: &[u8], ) -> Result<(), ProtocolError>
Authenticate SSH session using username and public key Call this once after SSH handshake, before running Git commands
Sourcepub async fn handle_upload_pack(
&mut self,
request_data: &[u8],
) -> Result<ProtocolStream, ProtocolError>
pub async fn handle_upload_pack( &mut self, request_data: &[u8], ) -> Result<ProtocolStream, ProtocolError>
Handle git-upload-pack command (for clone/fetch)
Sourcepub async fn handle_receive_pack(
&mut self,
request_stream: ProtocolStream,
) -> Result<ProtocolStream, ProtocolError>
pub async fn handle_receive_pack( &mut self, request_stream: ProtocolStream, ) -> Result<ProtocolStream, ProtocolError>
Handle git-receive-pack command (for push)
Sourcepub async fn handle_info_refs(
&mut self,
service: &str,
) -> Result<Vec<u8>, ProtocolError>
pub async fn handle_info_refs( &mut self, service: &str, ) -> Result<Vec<u8>, ProtocolError>
Handle info/refs request for SSH
Auto Trait Implementations§
impl<R, A> Freeze for SshGitHandler<R, A>
impl<R, A> RefUnwindSafe for SshGitHandler<R, A>where
R: RefUnwindSafe,
A: RefUnwindSafe,
impl<R, A> Send for SshGitHandler<R, A>
impl<R, A> Sync for SshGitHandler<R, A>
impl<R, A> Unpin for SshGitHandler<R, A>
impl<R, A> UnwindSafe for SshGitHandler<R, A>where
R: UnwindSafe,
A: UnwindSafe,
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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> ValueSize for T
impl<T> ValueSize for T
Source§fn value_size(&self) -> usize
fn value_size(&self) -> usize
The size of this value in bytes, excluding allocated data. Read more
Source§fn value_size_sum_iter<'item>(iterator: impl Iterator<Item = &'item T>) -> usizewhere
T: 'item,
fn value_size_sum_iter<'item>(iterator: impl Iterator<Item = &'item T>) -> usizewhere
T: 'item,
The total sum of the sizes of all values in the given iterator, in
bytes. This is default-implemented by computing ValueSize::value_size
on every element and summing them. For Sized types, a more potentially
efficient implementation using Iterator::count is provided. If you are
implementing this trait manually, it is unlikely to be more efficient to
provide a manual implementation here. Read more
Source§fn value_size_sum_exact_size_iter<'item>(
iterator: impl ExactSizeIterator<Item = &'item T>,
) -> usizewhere
T: 'item,
fn value_size_sum_exact_size_iter<'item>(
iterator: impl ExactSizeIterator<Item = &'item T>,
) -> usizewhere
T: 'item,
The total sum of the sizes of all values in the given
exact-size-iterator, in bytes. This is default-implemented by using
ValueSize::value_size_sum_iter. For Sized types, a usually more
efficient implementation using ExactSizeIterator::len is provided. If
you are implementing this trait manually, it is unlikely to be more
efficient to provide a manual implementation here. Read more