Skip to main content

git_remote_object_store/lfs/
mod.rs

1//! LFS custom-transfer agent (line-oriented JSON protocol).
2//!
3//! Implementation of `git-lfs-object-store`, the LFS custom-transfer
4//! agent for the S3 and Azure Blob backends. The on-bucket layout is
5//! `<prefix>/lfs/<oid>`.
6//!
7//! The agent has two modes:
8//!
9//! - **Subcommands** ([`install`], [`enable_debug`], [`disable_debug`]):
10//!   one-shot CLI calls that mutate the local repo's `git config`.
11//! - **Helper REPL** ([`run::run`]): newline-delimited JSON over
12//!   stdin/stdout, dispatched per LFS event (`init`, `upload`,
13//!   `download`, `terminate`).
14//!
15//! Stdout is the wire protocol — see `.claude/rules/protocol-stdout.md`.
16//! Diagnostics use `tracing` configured to write to stderr (or to a
17//! debug log file when invoked with the `debug` argv slot).
18
19pub(crate) mod agent;
20pub(crate) mod install;
21pub(crate) mod oid;
22pub(crate) mod protocol;
23pub(crate) mod run;
24
25pub use install::{AGENT_NAME, InstallError, disable_debug, enable_debug, install};
26pub use run::{GitRemoteResolver, RemoteResolver, RunError, run};