Codex Handbook
app-server/src/request_processors/git_processor.rs 36 lines
use super::*;#[derive(Clone)]pub(crate) struct GitRequestProcessor;impl GitRequestProcessor {    pub(crate) fn new() -> Self {        Self    }    pub(crate) async fn git_diff_to_remote(        &self,        params: GitDiffToRemoteParams,    ) -> Result<Option<ClientResponsePayload>, JSONRPCErrorError> {        self.git_diff_to_origin(params.cwd)            .await            .map(|response| Some(response.into()))    }    async fn git_diff_to_origin(        &self,        cwd: PathBuf,    ) -> Result<GitDiffToRemoteResponse, JSONRPCErrorError> {        git_diff_to_remote(&cwd)            .await            .map(|value| GitDiffToRemoteResponse {                sha: value.sha,                diff: value.diff,            })            .ok_or_else(|| {                invalid_request(format!(                    "failed to compute git diff to remote for cwd: {cwd:?}"                ))            })    }}