Overview
At this step, it's not meant to be used in production yet. Feature is hidden behind a feature flag.
This is the first story to have basic git lfs support that means
- Only HTTPS support (ssh will come after)
- Basic auth for transfers
- No locks
The implementation is done outside restler, using front router.
Technical overview
POST https://tuleap.example.com/plugins/git/projectname/foo/bar.git/info/lfs/objects/batch
Check API reference. Implement the upload, download and verify actions. Permission for actions regarding to 'ref' are used. API rely on basic auth.
The batch upload "reserve" the object place temporarly (stored in DB) to ensure consistency between batch and PUT.
[PUT|GET] https://tuleap.example.com/plugins/gitlfs
Check API reference. Implement the data transfer (download & upload)
Note: the implementation need to check and ensure
- What authorizations are needed between batch and transfert API
- Storage: use flysystem to abstract storage means
The files are purged on project deletion.
There is not global reference counting at this time.