use crate::pb::remote_service_server::RemoteService; use crate::pb::*; use crate::remote::find_remote::{find_remote_repository, find_remote_root_ref}; use super::GitksService; #[tonic::async_trait] impl RemoteService for GitksService { async fn find_remote_repository( &self, request: tonic::Request, ) -> Result, tonic::Status> { let m = crate::metrics::RequestMetrics::new("gitks.RemoteService/FindRemoteRepository"); let inner = request.into_inner(); let resp = find_remote_repository(inner).map_err(super::into_status)?; m.record("ok"); Ok(tonic::Response::new(resp)) } async fn find_remote_root_ref( &self, request: tonic::Request, ) -> Result, tonic::Status> { let m = crate::metrics::RequestMetrics::new("gitks.RemoteService/FindRemoteRootRef"); let inner = request.into_inner(); let resp = find_remote_root_ref(inner).map_err(super::into_status)?; m.record("ok"); Ok(tonic::Response::new(resp)) } async fn update_remote_mirror( &self, request: tonic::Request, ) -> Result, tonic::Status> { let m = crate::metrics::RequestMetrics::new("gitks.RemoteService/UpdateRemoteMirror"); let inner = request.into_inner(); let _rate = self.acquire_rate_limit(inner.repository.as_ref()).await?; let gb = self.resolve(inner.repository.as_ref())?; let resp = gb.update_remote_mirror(inner).map_err(super::into_status)?; m.record("ok"); Ok(tonic::Response::new(resp)) } }