pub trait ReviewRequestClient: Send + Sync {
// Required methods
fn detect_remote(
&self,
repo_url: String,
) -> Result<ForgeRemote, ReviewRequestError>;
fn find_by_source_branch(
&self,
remote: ForgeRemote,
source_branch: String,
) -> ForgeFuture<Result<Option<ReviewRequestSummary>, ReviewRequestError>>;
fn create_review_request(
&self,
remote: ForgeRemote,
input: CreateReviewRequestInput,
) -> ForgeFuture<Result<ReviewRequestSummary, ReviewRequestError>>;
fn refresh_review_request(
&self,
remote: ForgeRemote,
display_id: String,
) -> ForgeFuture<Result<ReviewRequestSummary, ReviewRequestError>>;
fn review_request_web_url(
&self,
review_request: &ReviewRequestSummary,
) -> Result<String, ReviewRequestError>;
}Expand description
Async boundary used by app orchestration for forge review requests.
The app layer depends on this narrow contract so provider-specific request formats remain isolated inside concrete adapters.
Required Methods§
Sourcefn detect_remote(
&self,
repo_url: String,
) -> Result<ForgeRemote, ReviewRequestError>
fn detect_remote( &self, repo_url: String, ) -> Result<ForgeRemote, ReviewRequestError>
Detects whether repo_url belongs to one supported forge.
§Errors
Returns ReviewRequestError::UnsupportedRemote when the remote does
not map to GitHub or GitLab.
Sourcefn find_by_source_branch(
&self,
remote: ForgeRemote,
source_branch: String,
) -> ForgeFuture<Result<Option<ReviewRequestSummary>, ReviewRequestError>>
fn find_by_source_branch( &self, remote: ForgeRemote, source_branch: String, ) -> ForgeFuture<Result<Option<ReviewRequestSummary>, ReviewRequestError>>
Finds an existing review request for source_branch.
§Errors
Returns a provider-specific review-request error when the forge lookup cannot be completed.
Sourcefn create_review_request(
&self,
remote: ForgeRemote,
input: CreateReviewRequestInput,
) -> ForgeFuture<Result<ReviewRequestSummary, ReviewRequestError>>
fn create_review_request( &self, remote: ForgeRemote, input: CreateReviewRequestInput, ) -> ForgeFuture<Result<ReviewRequestSummary, ReviewRequestError>>
Creates a new review request from input.
§Errors
Returns a provider-specific review-request error when creation fails.
Sourcefn refresh_review_request(
&self,
remote: ForgeRemote,
display_id: String,
) -> ForgeFuture<Result<ReviewRequestSummary, ReviewRequestError>>
fn refresh_review_request( &self, remote: ForgeRemote, display_id: String, ) -> ForgeFuture<Result<ReviewRequestSummary, ReviewRequestError>>
Refreshes one existing review request by provider display id.
§Errors
Returns a provider-specific review-request error when refresh fails.
Sourcefn review_request_web_url(
&self,
review_request: &ReviewRequestSummary,
) -> Result<String, ReviewRequestError>
fn review_request_web_url( &self, review_request: &ReviewRequestSummary, ) -> Result<String, ReviewRequestError>
Returns the browser-openable URL for one review request.
§Errors
Returns ReviewRequestError::OperationFailed when the summary does
not carry a web URL.