{"action":"created","issue":{"url":"https://api.github.com/repos/github/git-lfs/issues/444","labels_url":"https://api.github.com/repos/github/git-lfs/issues/444/labels{/name}","comments_url":"https://api.github.com/repos/github/git-lfs/issues/444/comments","events_url":"https://api.github.com/repos/github/git-lfs/issues/444/events","html_url":"https://github.com/github/git-lfs/pull/444","id":91400834,"number":444,"title":"Design proposal for making Git LFS extensible","user":{"login":"sanoursa","id":8729434,"avatar_url":"https://avatars.githubusercontent.com/u/8729434?v=3","gravatar_id":"","url":"https://api.github.com/users/sanoursa","html_url":"https://github.com/sanoursa","followers_url":"https://api.github.com/users/sanoursa/followers","following_url":"https://api.github.com/users/sanoursa/following{/other_user}","gists_url":"https://api.github.com/users/sanoursa/gists{/gist_id}","starred_url":"https://api.github.com/users/sanoursa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sanoursa/subscriptions","organizations_url":"https://api.github.com/users/sanoursa/orgs","repos_url":"https://api.github.com/users/sanoursa/repos","events_url":"https://api.github.com/users/sanoursa/events{/privacy}","received_events_url":"https://api.github.com/users/sanoursa/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/github/git-lfs/labels/storage","name":"storage","color":"c7def8"}],"state":"open","locked":false,"assignee":{"login":"technoweenie","id":21,"avatar_url":"https://avatars.githubusercontent.com/u/21?v=3","gravatar_id":"","url":"https://api.github.com/users/technoweenie","html_url":"https://github.com/technoweenie","followers_url":"https://api.github.com/users/technoweenie/followers","following_url":"https://api.github.com/users/technoweenie/following{/other_user}","gists_url":"https://api.github.com/users/technoweenie/gists{/gist_id}","starred_url":"https://api.github.com/users/technoweenie/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/technoweenie/subscriptions","organizations_url":"https://api.github.com/users/technoweenie/orgs","repos_url":"https://api.github.com/users/technoweenie/repos","events_url":"https://api.github.com/users/technoweenie/events{/privacy}","received_events_url":"https://api.github.com/users/technoweenie/received_events","type":"User","site_admin":true},"milestone":null,"comments":3,"created_at":"2015-06-27T01:56:37Z","updated_at":"2015-07-20T16:40:39Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/github/git-lfs/pulls/444","html_url":"https://github.com/github/git-lfs/pull/444","diff_url":"https://github.com/github/git-lfs/pull/444.diff","patch_url":"https://github.com/github/git-lfs/pull/444.patch"},"body":"This is a design proposal for making Git LFS extensible.  The idea is that you can register an LFS extension, and the extension gets inserted into the LFS clean and smudge calls, and is also tracked in the pointer file to ensure that anything that is cleaned can be correctly smudged.\r\n\r\nOur biggest use case is that we have many files that are both very large and very compressible, and we want to be able to compress those files before they are written into the LFS cache (and then pushed to the LFS server), and uncompress them when writing to the working directory.  Our proposal is to add extensibility to the core behavior of LFS, and then we will build our own compression extension for the teams that need it. \r\n\r\nWe are also considering releasing our compression extension so that others can use it if they want to.  Ideally, this could even lead to a library of LFS extensions, contributed by various authors, so that users of LFS can mix and match the behaviors they want when using LFS."},"comment":{"url":"https://api.github.com/repos/github/git-lfs/issues/comments/122944160","html_url":"https://github.com/github/git-lfs/pull/444#issuecomment-122944160","issue_url":"https://api.github.com/repos/github/git-lfs/issues/444","id":122944160,"user":{"login":"technoweenie","id":21,"avatar_url":"https://avatars.githubusercontent.com/u/21?v=3","gravatar_id":"","url":"https://api.github.com/users/technoweenie","html_url":"https://github.com/technoweenie","followers_url":"https://api.github.com/users/technoweenie/followers","following_url":"https://api.github.com/users/technoweenie/following{/other_user}","gists_url":"https://api.github.com/users/technoweenie/gists{/gist_id}","starred_url":"https://api.github.com/users/technoweenie/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/technoweenie/subscriptions","organizations_url":"https://api.github.com/users/technoweenie/orgs","repos_url":"https://api.github.com/users/technoweenie/repos","events_url":"https://api.github.com/users/technoweenie/events{/privacy}","received_events_url":"https://api.github.com/users/technoweenie/received_events","type":"User","site_admin":true},"created_at":"2015-07-20T16:40:39Z","updated_at":"2015-07-20T16:40:39Z","body":"Solid proposal :+1:"}}