{"action":"created","issue":{"url":"https://api.github.com/repos/coreos/rkt/issues/1250","labels_url":"https://api.github.com/repos/coreos/rkt/issues/1250/labels{/name}","comments_url":"https://api.github.com/repos/coreos/rkt/issues/1250/comments","events_url":"https://api.github.com/repos/coreos/rkt/issues/1250/events","html_url":"https://github.com/coreos/rkt/pull/1250","id":99453795,"number":1250,"title":"rkt: user namespace support through chown at extract time","user":{"login":"tixxdz","id":1549291,"avatar_url":"https://avatars.githubusercontent.com/u/1549291?v=3","gravatar_id":"","url":"https://api.github.com/users/tixxdz","html_url":"https://github.com/tixxdz","followers_url":"https://api.github.com/users/tixxdz/followers","following_url":"https://api.github.com/users/tixxdz/following{/other_user}","gists_url":"https://api.github.com/users/tixxdz/gists{/gist_id}","starred_url":"https://api.github.com/users/tixxdz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tixxdz/subscriptions","organizations_url":"https://api.github.com/users/tixxdz/orgs","repos_url":"https://api.github.com/users/tixxdz/repos","events_url":"https://api.github.com/users/tixxdz/events{/privacy}","received_events_url":"https://api.github.com/users/tixxdz/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/coreos/rkt/labels/userns","name":"userns","color":"bfd4f2"}],"state":"open","locked":false,"assignee":{"login":"tixxdz","id":1549291,"avatar_url":"https://avatars.githubusercontent.com/u/1549291?v=3","gravatar_id":"","url":"https://api.github.com/users/tixxdz","html_url":"https://github.com/tixxdz","followers_url":"https://api.github.com/users/tixxdz/followers","following_url":"https://api.github.com/users/tixxdz/following{/other_user}","gists_url":"https://api.github.com/users/tixxdz/gists{/gist_id}","starred_url":"https://api.github.com/users/tixxdz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tixxdz/subscriptions","organizations_url":"https://api.github.com/users/tixxdz/orgs","repos_url":"https://api.github.com/users/tixxdz/repos","events_url":"https://api.github.com/users/tixxdz/events{/privacy}","received_events_url":"https://api.github.com/users/tixxdz/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/coreos/rkt/milestones/16","html_url":"https://github.com/coreos/rkt/milestones/v0.8.0","labels_url":"https://api.github.com/repos/coreos/rkt/milestones/16/labels","id":1071542,"number":16,"title":"v0.8.0","description":"","creator":{"login":"jonboulle","id":2601015,"avatar_url":"https://avatars.githubusercontent.com/u/2601015?v=3","gravatar_id":"","url":"https://api.github.com/users/jonboulle","html_url":"https://github.com/jonboulle","followers_url":"https://api.github.com/users/jonboulle/followers","following_url":"https://api.github.com/users/jonboulle/following{/other_user}","gists_url":"https://api.github.com/users/jonboulle/gists{/gist_id}","starred_url":"https://api.github.com/users/jonboulle/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jonboulle/subscriptions","organizations_url":"https://api.github.com/users/jonboulle/orgs","repos_url":"https://api.github.com/users/jonboulle/repos","events_url":"https://api.github.com/users/jonboulle/events{/privacy}","received_events_url":"https://api.github.com/users/jonboulle/received_events","type":"User","site_admin":false},"open_issues":8,"closed_issues":60,"state":"open","created_at":"2015-04-17T01:02:36Z","updated_at":"2015-08-14T10:49:06Z","due_on":"2015-08-13T22:00:00Z","closed_at":null},"comments":5,"created_at":"2015-08-06T14:46:45Z","updated_at":"2015-08-14T12:16:12Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/coreos/rkt/pulls/1250","html_url":"https://github.com/coreos/rkt/pull/1250","diff_url":"https://github.com/coreos/rkt/pull/1250.diff","patch_url":"https://github.com/coreos/rkt/pull/1250.patch"},"body":"The last patch \"stage1:userns: add a workaround to make env file world writable\" is just a work around. Will fix it later.\r\n\r\nAlban and others asked to this PR so we can have a first review especially from @sgotti \r\n\r\nThis is part of https://github.com/coreos/rkt/issues/986 and it is an update of https://github.com/coreos/rkt/pull/1027 \r\nI will close PR https://github.com/coreos/rkt/pull/1027"},"comment":{"url":"https://api.github.com/repos/coreos/rkt/issues/comments/131089917","html_url":"https://github.com/coreos/rkt/pull/1250#issuecomment-131089917","issue_url":"https://api.github.com/repos/coreos/rkt/issues/1250","id":131089917,"user":{"login":"krnowak","id":96081,"avatar_url":"https://avatars.githubusercontent.com/u/96081?v=3","gravatar_id":"","url":"https://api.github.com/users/krnowak","html_url":"https://github.com/krnowak","followers_url":"https://api.github.com/users/krnowak/followers","following_url":"https://api.github.com/users/krnowak/following{/other_user}","gists_url":"https://api.github.com/users/krnowak/gists{/gist_id}","starred_url":"https://api.github.com/users/krnowak/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/krnowak/subscriptions","organizations_url":"https://api.github.com/users/krnowak/orgs","repos_url":"https://api.github.com/users/krnowak/repos","events_url":"https://api.github.com/users/krnowak/events{/privacy}","received_events_url":"https://api.github.com/users/krnowak/received_events","type":"User","site_admin":false},"created_at":"2015-08-14T12:16:12Z","updated_at":"2015-08-14T12:16:12Z","body":"About UidRange:\r\n\r\n- Please make usage of it consistent - either use `*uid.UidRange` or just `uid.UidRange`. I'd recommend the former.\r\n- I'd add a `NewBlankUidRange` (or `NewNoopUidRange`, I suck at naming things) function returning a `*uid.UidRange`. This would basically be `NewUidRange(0, 0)`.\r\n- The serialization/deserialization workflow could be:\r\n```go\r\n// deserialization\r\nrange := uid.NewNoopUidRange()\r\ndata := getBytes() // this returns []byte\r\nif err := range.Deserialize(data); err != nil {\r\n    panic(\"ArGH!\")\r\n}\r\n// serialization\r\nserData, err := range.Serialize() // this returns []byte, error\r\nif err != nil {\r\n    panic(\"ARGH!\")\r\n}\r\nstoreBytes(serData)\r\n```"}}