{"action":"created","issue":{"url":"https://api.github.com/repos/docker/distribution/issues/79","labels_url":"https://api.github.com/repos/docker/distribution/issues/79/labels{/name}","comments_url":"https://api.github.com/repos/docker/distribution/issues/79/comments","events_url":"https://api.github.com/repos/docker/distribution/issues/79/events","html_url":"https://github.com/docker/distribution/pull/79","id":54690085,"number":79,"title":"Wrap storagedrivers to validate paths upper in the call stack","user":{"login":"ahmetalpbalkan","id":159209,"avatar_url":"https://avatars.githubusercontent.com/u/159209?v=3","gravatar_id":"","url":"https://api.github.com/users/ahmetalpbalkan","html_url":"https://github.com/ahmetalpbalkan","followers_url":"https://api.github.com/users/ahmetalpbalkan/followers","following_url":"https://api.github.com/users/ahmetalpbalkan/following{/other_user}","gists_url":"https://api.github.com/users/ahmetalpbalkan/gists{/gist_id}","starred_url":"https://api.github.com/users/ahmetalpbalkan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ahmetalpbalkan/subscriptions","organizations_url":"https://api.github.com/users/ahmetalpbalkan/orgs","repos_url":"https://api.github.com/users/ahmetalpbalkan/repos","events_url":"https://api.github.com/users/ahmetalpbalkan/events{/privacy}","received_events_url":"https://api.github.com/users/ahmetalpbalkan/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/docker/distribution/labels/Component/StorageDriver","name":"Component/StorageDriver","color":"bfd4f2"},{"url":"https://api.github.com/repos/docker/distribution/labels/Enhancement","name":"Enhancement","color":"bfe5bf"},{"url":"https://api.github.com/repos/docker/distribution/labels/In%20Progress","name":"In Progress","color":"ededed"}],"state":"open","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/docker/distribution/milestones/1","labels_url":"https://api.github.com/repos/docker/distribution/milestones/1/labels","id":917062,"number":1,"title":"Registry/Beta","description":"This milestone represents the first release of the beta version of the registry.","creator":{"login":"stevvooe","id":120601,"avatar_url":"https://avatars.githubusercontent.com/u/120601?v=3","gravatar_id":"","url":"https://api.github.com/users/stevvooe","html_url":"https://github.com/stevvooe","followers_url":"https://api.github.com/users/stevvooe/followers","following_url":"https://api.github.com/users/stevvooe/following{/other_user}","gists_url":"https://api.github.com/users/stevvooe/gists{/gist_id}","starred_url":"https://api.github.com/users/stevvooe/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stevvooe/subscriptions","organizations_url":"https://api.github.com/users/stevvooe/orgs","repos_url":"https://api.github.com/users/stevvooe/repos","events_url":"https://api.github.com/users/stevvooe/events{/privacy}","received_events_url":"https://api.github.com/users/stevvooe/received_events","type":"User","site_admin":false},"open_issues":10,"closed_issues":68,"state":"open","created_at":"2014-12-29T20:35:10Z","updated_at":"2015-02-04T01:06:50Z","due_on":"2015-02-05T08:00:00Z","closed_at":null},"comments":3,"created_at":"2015-01-18T08:23:25Z","updated_at":"2015-02-04T01:07:26Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/docker/distribution/pulls/79","html_url":"https://github.com/docker/distribution/pull/79","diff_url":"https://github.com/docker/distribution/pull/79.diff","patch_url":"https://github.com/docker/distribution/pull/79.patch"},"body":"This change reduces a great of duplication/reduncancy on each storage driver implementation\r\nby moving the path checks for each exported storage driver method upper in the stack into\r\na wrapper.\r\n\r\nIt makes the storage driver more testable by decreasing the code needs to be written\r\nto cover every single path check in every single method of every single storage driver. It\r\nalso helps a great deal to code readability and preciseness by allowing storage driver\r\nimplementations to be less defensive by allowing them to assume they will always receive\r\nvalid `path`s.\r\n\r\nEnded up with less code at the end. :smile: \r\n\r\nSigned-off-by: Ahmet Alp Balkan <ahmetalpbalkan@gmail.com>"},"comment":{"url":"https://api.github.com/repos/docker/distribution/issues/comments/72771066","html_url":"https://github.com/docker/distribution/pull/79#issuecomment-72771066","issue_url":"https://api.github.com/repos/docker/distribution/issues/79","id":72771066,"user":{"login":"stevvooe","id":120601,"avatar_url":"https://avatars.githubusercontent.com/u/120601?v=3","gravatar_id":"","url":"https://api.github.com/users/stevvooe","html_url":"https://github.com/stevvooe","followers_url":"https://api.github.com/users/stevvooe/followers","following_url":"https://api.github.com/users/stevvooe/following{/other_user}","gists_url":"https://api.github.com/users/stevvooe/gists{/gist_id}","starred_url":"https://api.github.com/users/stevvooe/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stevvooe/subscriptions","organizations_url":"https://api.github.com/users/stevvooe/orgs","repos_url":"https://api.github.com/users/stevvooe/repos","events_url":"https://api.github.com/users/stevvooe/events{/privacy}","received_events_url":"https://api.github.com/users/stevvooe/received_events","type":"User","site_admin":false},"created_at":"2015-02-04T01:07:26Z","updated_at":"2015-02-04T01:07:26Z","body":"I submitted #139 rather than let this stall."}}