feat(lfs): Git LFS batch API + basic transfer — content-addressed disk store #5512
ccantynzAI Reviewcommented 10d ago
AI Triage
(no summary)
Priority: medium Risk area: mixed
Suggested labels: (no label suggestions) Suggested reviewers: (no reviewer suggestions)
Suggestions only — nothing has been applied. The PR author stays in control.
gluecron[bot]🤖 botAI Reviewcommented 10d ago
AI review unavailable
The platform's AI balance is exhausted, so AI generation is temporarily unavailable. Nothing was lost. You can queue this as a repair for the internal agent from the repository's Health page, or try again once the balance is restored. The PR is otherwise unchanged.
Cross-repo impact
See what breaks downstream if this PR merges.
⮌ Merged
This pull request was merged into main.
c comment · e edit title · m merge · a approve · r request changes · ? shortcuts
Scorecard move #3 of the greenlit block (agent-built, coordinator-rebased onto main)
Full LFS "basic" transfer server:
POST .../info/lfs/objects/batch(spec-shaped responses for all four existing/missing × download/upload cases, per-object 404/422 errors, over-cap pre-rejection so clients fail fast instead of streaming 512 MiB into a 413), streamedPUT/GETobject endpoints with incremental SHA-256 verification,verify, and spec-shaped empty lock responses sogit lfs pushdoesn't choke.Storage: content-addressed under
${GIT_REPOS_PATH}/.lfs/(rides the git-repos volume) — temp-file → hash-verify → atomic rename; concurrent duplicate uploads both succeed; zero residue on any rejection. No DB schema changes. Max size viaLFS_MAX_OBJECT_BYTES(default 512 MiB).Auth mirrors the git Smart HTTP gate exactly: read for download/verify, write for upload, anonymous public-repo reads work, 401+Basic challenge / privacy-preserving 404 / 403 — with LFS-media-type JSON error bodies (git-lfs surfaces
message; plain text it doesn't). Action hrefs honorX-Forwarded-Proto/Hostfor the proxy.28/28 tests (store roundtrip, hash/size/cap rejection with residue assertions, concurrent duplicates, batch shapes, gate paths); typecheck clean on current main.
🤖 Generated with Claude Code