{"action":"created","comment":{"url":"https://api.github.com/repos/docker/docker/pulls/comments/48552835","id":48552835,"diff_hunk":"@@ -0,0 +1,319 @@\n+// +build linux\n+\n+package native\n+\n+import \"github.com/opencontainers/runc/libcontainer/configs\"\n+\n+var defaultSeccompProfile = &configs.Seccomp{\n+\tDefaultAction: configs.Allow,\n+\tSyscalls: []*configs.Syscall{\n+\t\t{\n+\t\t\t// Quota and Accounting syscalls which could let containers\n+\t\t\t// disable their own resource limits or process accounting\n+\t\t\tName:   \"acct\",\n+\t\t\tAction: configs.Errno,\n+\t\t\tArgs:   []*configs.Arg{},\n+\t\t},\n+\t\t{\n+\t\t\t// Prevent containers from using the kernel keyring,\n+\t\t\t// which is not namespaced\n+\t\t\tName:   \"add_key\",\n+\t\t\tAction: configs.Errno,\n+\t\t\tArgs:   []*configs.Arg{},\n+\t\t},\n+\t\t{\n+\t\t\t// Similar to clock_settime and settimeofday\n+\t\t\t// Time/Date is not namespaced\n+\t\t\tName:   \"adjtimex\",\n+\t\t\tAction: configs.Errno,\n+\t\t\tArgs:   []*configs.Arg{},\n+\t\t},\n+\t\t{\n+\t\t\t// Time/Date is not namespaced\n+\t\t\tName:   \"clock_settime\",\n+\t\t\tAction: configs.Errno,\n+\t\t\tArgs:   []*configs.Arg{},\n+\t\t},\n+\t\t{\n+\t\t\t// Deny cloning new namespaces\n+\t\t\tName:   \"clone\",\n+\t\t\tAction: configs.Errno,\n+\t\t\tArgs: []*configs.Arg{\n+\t\t\t\t{\n+\t\t\t\t\t// flags from sched.h\n+\t\t\t\t\t// CLONE_NEWUTS\t\t0x04000000\n+\t\t\t\t\t// CLONE_NEWIPC\t\t0x08000000\n+\t\t\t\t\t// CLONE_NEWUSER\t0x10000000\n+\t\t\t\t\t// CLONE_NEWPID\t\t0x20000000\n+\t\t\t\t\t// CLONE_NEWNET\t\t0x40000000\n+\t\t\t\t\tIndex: 0,\n+\t\t\t\t\tValue: uint64(0x04000000),\n+\t\t\t\t\tOp:    configs.GreaterThanOrEqualTo,\n+\t\t\t\t},\n+\t\t\t\t{\n+\t\t\t\t\t// flags from sched.h\n+\t\t\t\t\t// CLONE_NEWNS\t\t0x00020000\n+\t\t\t\t\tIndex: 0,\n+\t\t\t\t\tValue: uint64(0x00020000),\n+\t\t\t\t\tOp:    configs.EqualTo,\n+\t\t\t\t},\n+\t\t\t},\n+\t\t},\n+\t\t{\n+\t\t\t// Deny manipulation and functions on kernel modules.\n+\t\t\tName:   \"create_module\",\n+\t\t\tAction: configs.Errno,\n+\t\t\tArgs:   []*configs.Arg{},\n+\t\t},\n+\t\t{\n+\t\t\t// Deny manipulation and functions on kernel modules.\n+\t\t\tName:   \"delete_module\",\n+\t\t\tAction: configs.Errno,\n+\t\t\tArgs:   []*configs.Arg{},\n+\t\t},\n+\t\t{\n+\t\t\t// Deny retrieval of exported kernel and module symbols\n+\t\t\tName:   \"get_kernel_syms\",\n+\t\t\tAction: configs.Errno,\n+\t\t\tArgs:   []*configs.Arg{},\n+\t\t},\n+\t\t{\n+\t\t\t// Terrifying syscalls that modify kernel memory and NUMA settings.\n+\t\t\t// They're gated by CAP_SYS_NICE,\n+\t\t\t// which we do not retain by default in containers.\n+\t\t\tName:   \"get_mempolicy\",\n+\t\t\tAction: configs.Errno,\n+\t\t\tArgs:   []*configs.Arg{},\n+\t\t},\n+\t\t{\n+\t\t\t// Deny getting the list of robust futexes\n+\t\t\tName:   \"get_robust_list\",\n+\t\t\tAction: configs.Errno,\n+\t\t\tArgs:   []*configs.Arg{},\n+\t\t},\n+\t\t{\n+\t\t\t// Deny manipulation and functions on kernel modules.\n+\t\t\tName:   \"init_module\",\n+\t\t\tAction: configs.Errno,\n+\t\t\tArgs:   []*configs.Arg{},\n+\t\t},\n+\t\t{\n+\t\t\t// Prevent containers from modifying kernel I/O privilege levels.\n+\t\t\t// Already restricted as containers drop CAP_SYS_RAWIO by default.\n+\t\t\tName:   \"ioperm\",\n+\t\t\tAction: configs.Errno,\n+\t\t\tArgs:   []*configs.Arg{},\n+\t\t},\n+\t\t{\n+\t\t\t// Prevent containers from modifying kernel I/O privilege levels.\n+\t\t\t// Already restricted as containers drop CAP_SYS_RAWIO by default.\n+\t\t\tName:   \"iopl\",\n+\t\t\tAction: configs.Errno,\n+\t\t\tArgs:   []*configs.Arg{},\n+\t\t},\n+\t\t{\n+\t\t\t// Sister syscall of kexec_load that does the same thing,\n+\t\t\t// slightly different arguments\n+\t\t\tName:   \"kexec_file_load\",\n+\t\t\tAction: configs.Errno,\n+\t\t\tArgs:   []*configs.Arg{},\n+\t\t},\n+\t\t{\n+\t\t\t// Deny loading a new kernel for later execution\n+\t\t\tName:   \"kexec_load\",\n+\t\t\tAction: configs.Errno,\n+\t\t\tArgs:   []*configs.Arg{},\n+\t\t},\n+\t\t{\n+\t\t\t// Prevent containers from using the kernel keyring,\n+\t\t\t// which is not namespaced\n+\t\t\tName:   \"keyctl\",\n+\t\t\tAction: configs.Errno,\n+\t\t\tArgs:   []*configs.Arg{},\n+\t\t},\n+\t\t{\n+\t\t\t// Tracing/profiling syscalls,\n+\t\t\t// which could leak a lot of information on the host\n+\t\t\tName:   \"lookup_dcookie\",\n+\t\t\tAction: configs.Errno,\n+\t\t\tArgs:   []*configs.Arg{},\n+\t\t},\n+\t\t{\n+\t\t\t// Terrifying syscalls that modify kernel memory and NUMA settings.\n+\t\t\t// They're gated by CAP_SYS_NICE,\n+\t\t\t// which we do not retain by default in containers.\n+\t\t\tName:   \"mbind\",\n+\t\t\tAction: configs.Errno,\n+\t\t\tArgs:   []*configs.Arg{},\n+\t\t},\n+\t\t{\n+\t\t\t// Terrifying syscalls that modify kernel memory and NUMA settings.\n+\t\t\t// They're gated by CAP_SYS_NICE,\n+\t\t\t// which we do not retain by default in containers.\n+\t\t\tName:   \"migrate_pages\",\n+\t\t\tAction: configs.Errno,\n+\t\t\tArgs:   []*configs.Arg{},\n+\t\t},\n+\t\t{\n+\t\t\t// Old syscall only used in 16-bit code,\n+\t\t\t// and a potential information leak\n+\t\t\tName:   \"modify_ldt\",\n+\t\t\tAction: configs.Errno,\n+\t\t\tArgs:   []*configs.Arg{},\n+\t\t},\n+\t\t{\n+\t\t\t// Deny mount\n+\t\t\tName:   \"mount\",\n+\t\t\tAction: configs.Errno,\n+\t\t\tArgs:   []*configs.Arg{},\n+\t\t},\n+\t\t{\n+\t\t\t// Terrifying syscalls that modify kernel memory and NUMA settings.\n+\t\t\t// They're gated by CAP_SYS_NICE,\n+\t\t\t// which we do not retain by default in containers.\n+\t\t\tName:   \"move_pages\",\n+\t\t\tAction: configs.Errno,\n+\t\t\tArgs:   []*configs.Arg{},\n+\t\t},\n+\t\t{\n+\t\t\t// Deny interaction with the kernel nfs daemon\n+\t\t\tName:   \"nfsservctl\",\n+\t\t\tAction: configs.Errno,\n+\t\t\tArgs:   []*configs.Arg{},\n+\t\t},\n+\t\t{\n+\t\t\t// Cause of an old container breakout,\n+\t\t\t// might as well restrict it to be on the safe side\n+\t\t\tName:   \"open_by_handle_at\",\n+\t\t\tAction: configs.Errno,\n+\t\t\tArgs:   []*configs.Arg{},\n+\t\t},\n+\t\t{\n+\t\t\t// Tracing/profiling syscalls,\n+\t\t\t// which could leak a lot of information on the host\n+\t\t\tName:   \"perf_event_open\",\n+\t\t\tAction: configs.Errno,\n+\t\t\tArgs:   []*configs.Arg{},\n+\t\t},\n+\t\t{\n+\t\t\t// Prevent container from enabling BSD emulation.\n+\t\t\t// Not inherently dangerous, but poorly tested,\n+\t\t\t// potential for a lot of kernel vulns in this.\n+\t\t\tName:   \"personality\",\n+\t\t\tAction: configs.Errno,\n+\t\t\tArgs:   []*configs.Arg{},\n+\t\t},\n+\t\t{\n+\t\t\t// Deny pivot_root\n+\t\t\tName:   \"pivot_root\",\n+\t\t\tAction: configs.Errno,\n+\t\t\tArgs:   []*configs.Arg{},\n+\t\t},\n+\t\t{\n+\t\t\t// Already blocked by dropping CAP_PTRACE\n+\t\t\tName:   \"ptrace\",\n+\t\t\tAction: configs.Errno,\n+\t\t\tArgs:   []*configs.Arg{},\n+\t\t},\n+\t\t{\n+\t\t\t// Deny manipulation and functions on kernel modules.\n+\t\t\tName:   \"query_module\",\n+\t\t\tAction: configs.Errno,\n+\t\t\tArgs:   []*configs.Arg{},\n+\t\t},\n+\t\t{\n+\t\t\t// Quota and Accounting syscalls which could let containers\n+\t\t\t// disable their own resource limits or process accounting\n+\t\t\tName:   \"quotactl\",\n+\t\t\tAction: configs.Errno,\n+\t\t\tArgs:   []*configs.Arg{},\n+\t\t},\n+\t\t{\n+\t\t\t// Probably a bad idea to let containers reboot the host\n+\t\t\tName:   \"reboot\",\n+\t\t\tAction: configs.Errno,\n+\t\t\tArgs:   []*configs.Arg{},\n+\t\t},\n+\t\t{\n+\t\t\t// Probably a bad idea to let containers restart\n+\t\t\tName:   \"restart_syscall\",\n+\t\t\tAction: configs.Errno,\n+\t\t\tArgs:   []*configs.Arg{},\n+\t\t},\n+\t\t{\n+\t\t\t// Prevent containers from using the kernel keyring,\n+\t\t\t// which is not namespaced\n+\t\t\tName:   \"request_key\",\n+\t\t\tAction: configs.Errno,\n+\t\t\tArgs:   []*configs.Arg{},\n+\t\t},\n+\t\t{\n+\t\t\t// meta, deny seccomp\n+\t\t\tName:   \"seccomp\",","path":"daemon/execdriver/native/seccomp_default.go","position":252,"original_position":252,"commit_id":"d34bbb66d5d5f2f07b8f0c1b63df5f058f20b436","original_commit_id":"d34bbb66d5d5f2f07b8f0c1b63df5f058f20b436","user":{"login":"jfrazelle","id":1445228,"avatar_url":"https://avatars.githubusercontent.com/u/1445228?v=3","gravatar_id":"","url":"https://api.github.com/users/jfrazelle","html_url":"https://github.com/jfrazelle","followers_url":"https://api.github.com/users/jfrazelle/followers","following_url":"https://api.github.com/users/jfrazelle/following{/other_user}","gists_url":"https://api.github.com/users/jfrazelle/gists{/gist_id}","starred_url":"https://api.github.com/users/jfrazelle/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jfrazelle/subscriptions","organizations_url":"https://api.github.com/users/jfrazelle/orgs","repos_url":"https://api.github.com/users/jfrazelle/repos","events_url":"https://api.github.com/users/jfrazelle/events{/privacy}","received_events_url":"https://api.github.com/users/jfrazelle/received_events","type":"User","site_admin":false},"body":"ya i broke chrome when I added clone userns to deny ;)\n\nOn Tue, Dec 29, 2015 at 8:45 AM, Eric Windisch <notifications@github.com>\nwrote:\n\n> In daemon/execdriver/native/seccomp_default.go\n> <https://github.com/docker/docker/pull/18780#discussion_r48552525>:\n>\n> > +\t\t{\n> > +\t\t\t// Probably a bad idea to let containers restart\n> > +\t\t\tName:   \"restart_syscall\",\n> > +\t\t\tAction: configs.Errno,\n> > +\t\t\tArgs:   []*configs.Arg{},\n> > +\t\t},\n> > +\t\t{\n> > +\t\t\t// Prevent containers from using the kernel keyring,\n> > +\t\t\t// which is not namespaced\n> > +\t\t\tName:   \"request_key\",\n> > +\t\t\tAction: configs.Errno,\n> > +\t\t\tArgs:   []*configs.Arg{},\n> > +\t\t},\n> > +\t\t{\n> > +\t\t\t// meta, deny seccomp\n> > +\t\t\tName:   \"seccomp\",\n>\n> Chrome is a perfect example of an application that sets its own seccomp\n> profiles and won't be setting them via Docker. I think it's a valid\n> use-case (Chrome is likely to be broken for *other* reasons per this\n> policy, but I digress)\n>\n> —\n> Reply to this email directly or view it on GitHub\n> <https://github.com/docker/docker/pull/18780/files#r48552525>.\n>\n","created_at":"2015-12-29T16:48:28Z","updated_at":"2015-12-29T16:48:28Z","html_url":"https://github.com/docker/docker/pull/18780#discussion_r48552835","pull_request_url":"https://api.github.com/repos/docker/docker/pulls/18780","_links":{"self":{"href":"https://api.github.com/repos/docker/docker/pulls/comments/48552835"},"html":{"href":"https://github.com/docker/docker/pull/18780#discussion_r48552835"},"pull_request":{"href":"https://api.github.com/repos/docker/docker/pulls/18780"}}},"pull_request":{"url":"https://api.github.com/repos/docker/docker/pulls/18780","id":54147376,"html_url":"https://github.com/docker/docker/pull/18780","diff_url":"https://github.com/docker/docker/pull/18780.diff","patch_url":"https://github.com/docker/docker/pull/18780.patch","issue_url":"https://api.github.com/repos/docker/docker/issues/18780","number":18780,"state":"closed","locked":false,"title":"set default seccomp profile","user":{"login":"jfrazelle","id":1445228,"avatar_url":"https://avatars.githubusercontent.com/u/1445228?v=3","gravatar_id":"","url":"https://api.github.com/users/jfrazelle","html_url":"https://github.com/jfrazelle","followers_url":"https://api.github.com/users/jfrazelle/followers","following_url":"https://api.github.com/users/jfrazelle/following{/other_user}","gists_url":"https://api.github.com/users/jfrazelle/gists{/gist_id}","starred_url":"https://api.github.com/users/jfrazelle/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jfrazelle/subscriptions","organizations_url":"https://api.github.com/users/jfrazelle/orgs","repos_url":"https://api.github.com/users/jfrazelle/repos","events_url":"https://api.github.com/users/jfrazelle/events{/privacy}","received_events_url":"https://api.github.com/users/jfrazelle/received_events","type":"User","site_admin":false},"body":"This provides a default seccomp profile... I am testing w various images still, ping @rhatdan ","created_at":"2015-12-18T20:38:15Z","updated_at":"2015-12-29T16:48:29Z","closed_at":"2015-12-29T00:46:30Z","merged_at":"2015-12-29T00:46:30Z","merge_commit_sha":"4d30b1f3a1b3c0cb63b87a4e2d74a0a7189dd6ef","assignee":null,"milestone":{"url":"https://api.github.com/repos/docker/docker/milestones/44","html_url":"https://github.com/docker/docker/milestones/1.10","labels_url":"https://api.github.com/repos/docker/docker/milestones/44/labels","id":1351533,"number":44,"title":"1.10","description":"","creator":{"login":"thaJeztah","id":1804568,"avatar_url":"https://avatars.githubusercontent.com/u/1804568?v=3","gravatar_id":"","url":"https://api.github.com/users/thaJeztah","html_url":"https://github.com/thaJeztah","followers_url":"https://api.github.com/users/thaJeztah/followers","following_url":"https://api.github.com/users/thaJeztah/following{/other_user}","gists_url":"https://api.github.com/users/thaJeztah/gists{/gist_id}","starred_url":"https://api.github.com/users/thaJeztah/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/thaJeztah/subscriptions","organizations_url":"https://api.github.com/users/thaJeztah/orgs","repos_url":"https://api.github.com/users/thaJeztah/repos","events_url":"https://api.github.com/users/thaJeztah/events{/privacy}","received_events_url":"https://api.github.com/users/thaJeztah/received_events","type":"User","site_admin":false},"open_issues":31,"closed_issues":55,"state":"open","created_at":"2015-10-12T18:21:55Z","updated_at":"2015-12-29T12:04:45Z","due_on":null,"closed_at":null},"commits_url":"https://api.github.com/repos/docker/docker/pulls/18780/commits","review_comments_url":"https://api.github.com/repos/docker/docker/pulls/18780/comments","review_comment_url":"https://api.github.com/repos/docker/docker/pulls/comments{/number}","comments_url":"https://api.github.com/repos/docker/docker/issues/18780/comments","statuses_url":"https://api.github.com/repos/docker/docker/statuses/d34bbb66d5d5f2f07b8f0c1b63df5f058f20b436","head":{"label":"jfrazelle:seccomp-default","ref":"seccomp-default","sha":"d34bbb66d5d5f2f07b8f0c1b63df5f058f20b436","user":{"login":"jfrazelle","id":1445228,"avatar_url":"https://avatars.githubusercontent.com/u/1445228?v=3","gravatar_id":"","url":"https://api.github.com/users/jfrazelle","html_url":"https://github.com/jfrazelle","followers_url":"https://api.github.com/users/jfrazelle/followers","following_url":"https://api.github.com/users/jfrazelle/following{/other_user}","gists_url":"https://api.github.com/users/jfrazelle/gists{/gist_id}","starred_url":"https://api.github.com/users/jfrazelle/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jfrazelle/subscriptions","organizations_url":"https://api.github.com/users/jfrazelle/orgs","repos_url":"https://api.github.com/users/jfrazelle/repos","events_url":"https://api.github.com/users/jfrazelle/events{/privacy}","received_events_url":"https://api.github.com/users/jfrazelle/received_events","type":"User","site_admin":false},"repo":{"id":21672903,"name":"docker","full_name":"jfrazelle/docker","owner":{"login":"jfrazelle","id":1445228,"avatar_url":"https://avatars.githubusercontent.com/u/1445228?v=3","gravatar_id":"","url":"https://api.github.com/users/jfrazelle","html_url":"https://github.com/jfrazelle","followers_url":"https://api.github.com/users/jfrazelle/followers","following_url":"https://api.github.com/users/jfrazelle/following{/other_user}","gists_url":"https://api.github.com/users/jfrazelle/gists{/gist_id}","starred_url":"https://api.github.com/users/jfrazelle/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jfrazelle/subscriptions","organizations_url":"https://api.github.com/users/jfrazelle/orgs","repos_url":"https://api.github.com/users/jfrazelle/repos","events_url":"https://api.github.com/users/jfrazelle/events{/privacy}","received_events_url":"https://api.github.com/users/jfrazelle/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/jfrazelle/docker","description":"Docker - the open-source application container engine","fork":true,"url":"https://api.github.com/repos/jfrazelle/docker","forks_url":"https://api.github.com/repos/jfrazelle/docker/forks","keys_url":"https://api.github.com/repos/jfrazelle/docker/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jfrazelle/docker/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jfrazelle/docker/teams","hooks_url":"https://api.github.com/repos/jfrazelle/docker/hooks","issue_events_url":"https://api.github.com/repos/jfrazelle/docker/issues/events{/number}","events_url":"https://api.github.com/repos/jfrazelle/docker/events","assignees_url":"https://api.github.com/repos/jfrazelle/docker/assignees{/user}","branches_url":"https://api.github.com/repos/jfrazelle/docker/branches{/branch}","tags_url":"https://api.github.com/repos/jfrazelle/docker/tags","blobs_url":"https://api.github.com/repos/jfrazelle/docker/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jfrazelle/docker/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jfrazelle/docker/git/refs{/sha}","trees_url":"https://api.github.com/repos/jfrazelle/docker/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jfrazelle/docker/statuses/{sha}","languages_url":"https://api.github.com/repos/jfrazelle/docker/languages","stargazers_url":"https://api.github.com/repos/jfrazelle/docker/stargazers","contributors_url":"https://api.github.com/repos/jfrazelle/docker/contributors","subscribers_url":"https://api.github.com/repos/jfrazelle/docker/subscribers","subscription_url":"https://api.github.com/repos/jfrazelle/docker/subscription","commits_url":"https://api.github.com/repos/jfrazelle/docker/commits{/sha}","git_commits_url":"https://api.github.com/repos/jfrazelle/docker/git/commits{/sha}","comments_url":"https://api.github.com/repos/jfrazelle/docker/comments{/number}","issue_comment_url":"https://api.github.com/repos/jfrazelle/docker/issues/comments{/number}","contents_url":"https://api.github.com/repos/jfrazelle/docker/contents/{+path}","compare_url":"https://api.github.com/repos/jfrazelle/docker/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jfrazelle/docker/merges","archive_url":"https://api.github.com/repos/jfrazelle/docker/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jfrazelle/docker/downloads","issues_url":"https://api.github.com/repos/jfrazelle/docker/issues{/number}","pulls_url":"https://api.github.com/repos/jfrazelle/docker/pulls{/number}","milestones_url":"https://api.github.com/repos/jfrazelle/docker/milestones{/number}","notifications_url":"https://api.github.com/repos/jfrazelle/docker/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jfrazelle/docker/labels{/name}","releases_url":"https://api.github.com/repos/jfrazelle/docker/releases{/id}","created_at":"2014-07-10T00:00:33Z","updated_at":"2015-11-08T17:13:11Z","pushed_at":"2015-12-29T16:47:28Z","git_url":"git://github.com/jfrazelle/docker.git","ssh_url":"git@github.com:jfrazelle/docker.git","clone_url":"https://github.com/jfrazelle/docker.git","svn_url":"https://github.com/jfrazelle/docker","homepage":"http://www.docker.com","size":77720,"stargazers_count":4,"watchers_count":4,"language":"Go","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":4,"default_branch":"master"}},"base":{"label":"docker:master","ref":"master","sha":"00362f8ea28a1ae04be66372ccee55d80c4bb11c","user":{"login":"docker","id":5429470,"avatar_url":"https://avatars.githubusercontent.com/u/5429470?v=3","gravatar_id":"","url":"https://api.github.com/users/docker","html_url":"https://github.com/docker","followers_url":"https://api.github.com/users/docker/followers","following_url":"https://api.github.com/users/docker/following{/other_user}","gists_url":"https://api.github.com/users/docker/gists{/gist_id}","starred_url":"https://api.github.com/users/docker/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/docker/subscriptions","organizations_url":"https://api.github.com/users/docker/orgs","repos_url":"https://api.github.com/users/docker/repos","events_url":"https://api.github.com/users/docker/events{/privacy}","received_events_url":"https://api.github.com/users/docker/received_events","type":"Organization","site_admin":false},"repo":{"id":7691631,"name":"docker","full_name":"docker/docker","owner":{"login":"docker","id":5429470,"avatar_url":"https://avatars.githubusercontent.com/u/5429470?v=3","gravatar_id":"","url":"https://api.github.com/users/docker","html_url":"https://github.com/docker","followers_url":"https://api.github.com/users/docker/followers","following_url":"https://api.github.com/users/docker/following{/other_user}","gists_url":"https://api.github.com/users/docker/gists{/gist_id}","starred_url":"https://api.github.com/users/docker/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/docker/subscriptions","organizations_url":"https://api.github.com/users/docker/orgs","repos_url":"https://api.github.com/users/docker/repos","events_url":"https://api.github.com/users/docker/events{/privacy}","received_events_url":"https://api.github.com/users/docker/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/docker/docker","description":"Docker - the open-source application container engine","fork":false,"url":"https://api.github.com/repos/docker/docker","forks_url":"https://api.github.com/repos/docker/docker/forks","keys_url":"https://api.github.com/repos/docker/docker/keys{/key_id}","collaborators_url":"https://api.github.com/repos/docker/docker/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/docker/docker/teams","hooks_url":"https://api.github.com/repos/docker/docker/hooks","issue_events_url":"https://api.github.com/repos/docker/docker/issues/events{/number}","events_url":"https://api.github.com/repos/docker/docker/events","assignees_url":"https://api.github.com/repos/docker/docker/assignees{/user}","branches_url":"https://api.github.com/repos/docker/docker/branches{/branch}","tags_url":"https://api.github.com/repos/docker/docker/tags","blobs_url":"https://api.github.com/repos/docker/docker/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/docker/docker/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/docker/docker/git/refs{/sha}","trees_url":"https://api.github.com/repos/docker/docker/git/trees{/sha}","statuses_url":"https://api.github.com/repos/docker/docker/statuses/{sha}","languages_url":"https://api.github.com/repos/docker/docker/languages","stargazers_url":"https://api.github.com/repos/docker/docker/stargazers","contributors_url":"https://api.github.com/repos/docker/docker/contributors","subscribers_url":"https://api.github.com/repos/docker/docker/subscribers","subscription_url":"https://api.github.com/repos/docker/docker/subscription","commits_url":"https://api.github.com/repos/docker/docker/commits{/sha}","git_commits_url":"https://api.github.com/repos/docker/docker/git/commits{/sha}","comments_url":"https://api.github.com/repos/docker/docker/comments{/number}","issue_comment_url":"https://api.github.com/repos/docker/docker/issues/comments{/number}","contents_url":"https://api.github.com/repos/docker/docker/contents/{+path}","compare_url":"https://api.github.com/repos/docker/docker/compare/{base}...{head}","merges_url":"https://api.github.com/repos/docker/docker/merges","archive_url":"https://api.github.com/repos/docker/docker/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/docker/docker/downloads","issues_url":"https://api.github.com/repos/docker/docker/issues{/number}","pulls_url":"https://api.github.com/repos/docker/docker/pulls{/number}","milestones_url":"https://api.github.com/repos/docker/docker/milestones{/number}","notifications_url":"https://api.github.com/repos/docker/docker/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/docker/docker/labels{/name}","releases_url":"https://api.github.com/repos/docker/docker/releases{/id}","created_at":"2013-01-18T18:10:57Z","updated_at":"2015-12-29T16:46:00Z","pushed_at":"2015-12-29T16:47:29Z","git_url":"git://github.com/docker/docker.git","ssh_url":"git@github.com:docker/docker.git","clone_url":"https://github.com/docker/docker.git","svn_url":"https://github.com/docker/docker","homepage":"http://www.docker.com","size":120978,"stargazers_count":27361,"watchers_count":27361,"language":"Go","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":7501,"mirror_url":null,"open_issues_count":1291,"forks":7501,"open_issues":1291,"watchers":27361,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/docker/docker/pulls/18780"},"html":{"href":"https://github.com/docker/docker/pull/18780"},"issue":{"href":"https://api.github.com/repos/docker/docker/issues/18780"},"comments":{"href":"https://api.github.com/repos/docker/docker/issues/18780/comments"},"review_comments":{"href":"https://api.github.com/repos/docker/docker/pulls/18780/comments"},"review_comment":{"href":"https://api.github.com/repos/docker/docker/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/docker/docker/pulls/18780/commits"},"statuses":{"href":"https://api.github.com/repos/docker/docker/statuses/d34bbb66d5d5f2f07b8f0c1b63df5f058f20b436"}}}}