2ae9196
ZhenYi
feat(lib/git): add HTTP handler tree with routes and errors across analysis, archives, blobs, branches, commits, conflicts, content, diffs, hooks, lfs, logs, maintenance, packs, patches, pipelines, refs, remotes, repos, signatures, submodules, tags, trees
2ae9196
use std::path::PathBuf;
#[derive(Clone, Debug)]
pub enum GitOperation {
UploadPack { bare: PathBuf },
ReceivePack { bare: PathBuf },
UploadArchive { bare: PathBuf },
}
impl GitOperation {
pub fn bare(&self) -> &PathBuf {
match self {
Self::UploadPack { bare }
| Self::ReceivePack { bare }
| Self::UploadArchive { bare } => bare,
}
}
pub fn is_write(&self) -> bool {
matches!(self, Self::ReceivePack { .. })
}
pub fn is_upload_archive(&self) -> bool {
matches!(self, Self::UploadArchive { .. })
}
pub fn service_arg(&self) -> &'static str {
match self {
Self::UploadPack { .. } => "upload-pack",
Self::ReceivePack { .. } => "receive-pack",
Self::UploadArchive { .. } => "upload-archive",
}
}
}