forked from finos/git-proxy
-
Notifications
You must be signed in to change notification settings - Fork 2
Open
Labels
enhancementNew feature or requestNew feature or request
Description
Description:
Current pack data capture approach buffers all data in memory, which could cause issues with large repositories.
Current Approach:
const packDataChunks: Buffer[] = [];
// ... accumulate all chunks in memory
const packData = Buffer.concat(packDataChunks);
Potential Issues:
- Memory exhaustion with large pushes (>500MB)
- No progress reporting for slow connections
- All-or-nothing approach (no partial processing)
Proposed Optimizations:
-
Streaming to temporary file:
- Write chunks to temporary file instead of memory
- Process from file after stream completes
- Automatic cleanup on completion/error
-
Size limits:
- Configure maximum pack file size
- Graceful degradation for oversized packs
- Clear error messages when limits exceeded
-
Progress reporting:
- Track bytes received vs expected
- Timeout for stalled transfers
- User-facing progress indicators
Affected Files:
src/proxy/ssh/server.ts
(stream handling)src/config/
(size limit configuration)
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request