{"action":"created","comment":{"url":"https://api.github.com/repos/kubernetes/kubernetes/pulls/comments/74472672","id":74472672,"diff_hunk":"@@ -19,12 +19,175 @@ package kuberuntime\n import (\n \t\"fmt\"\n \t\"io\"\n+\t\"os\"\n+\t\"path\"\n \n+\t\"github.com/golang/glog\"\n \t\"k8s.io/kubernetes/pkg/api\"\n+\truntimeApi \"k8s.io/kubernetes/pkg/kubelet/api/v1alpha1/runtime\"\n \tkubecontainer \"k8s.io/kubernetes/pkg/kubelet/container\"\n+\t\"k8s.io/kubernetes/pkg/types\"\n \t\"k8s.io/kubernetes/pkg/util/term\"\n )\n \n+// getContainerLogsPath gets log path for container.\n+func getContainerLogsPath(containerName string, podUID types.UID) string {\n+\treturn path.Join(podLogsRootDirectory, string(podUID), fmt.Sprintf(\"%s.log\", containerName))\n+}\n+\n+// generateContainerConfig generates container config for kubelet runtime api.\n+func (m *kubeGenericRuntimeManager) generateContainerConfig(container *api.Container, pod *api.Pod, restartCount int, podIP string) (*runtimeApi.ContainerConfig, error) {\n+\topts, err := m.runtimeHelper.GenerateRunContainerOptions(pod, container, podIP)\n+\tif err != nil {\n+\t\treturn nil, err\n+\t}\n+\n+\t_, containerName, cid := buildContainerName(pod, container)\n+\tcommand, args := kubecontainer.ExpandContainerCommandAndArgs(container, opts.Envs)\n+\tcontainerLogsPath := getContainerLogsPath(containerName, pod.UID)\n+\tpodHasSELinuxLabel := pod.Spec.SecurityContext != nil && pod.Spec.SecurityContext.SELinuxOptions != nil\n+\tconfig := &runtimeApi.ContainerConfig{\n+\t\tName:        &containerName,\n+\t\tImage:       &runtimeApi.ImageSpec{Image: &container.Image},\n+\t\tCommand:     command,\n+\t\tArgs:        args,\n+\t\tWorkingDir:  &container.WorkingDir,\n+\t\tLabels:      newContainerLabels(container, pod),\n+\t\tAnnotations: newContainerAnnotations(container, pod, restartCount),\n+\t\tMounts:      makeMounts(cid, opts, container, podHasSELinuxLabel),\n+\t\tLogPath:     &containerLogsPath,\n+\t\tStdin:       &container.Stdin,\n+\t\tStdinOnce:   &container.StdinOnce,\n+\t\tTty:         &container.TTY,\n+\t\tLinux:       m.generateLinuxContainerConfig(container),\n+\t}\n+\n+\t// set priviledged and readonlyRootfs\n+\tif container.SecurityContext != nil {\n+\t\tsecurityContext := container.SecurityContext\n+\t\tif securityContext.Privileged != nil {\n+\t\t\tconfig.Privileged = securityContext.Privileged\n+\t\t}\n+\t\tif securityContext.ReadOnlyRootFilesystem != nil {\n+\t\t\tconfig.ReadonlyRootfs = securityContext.ReadOnlyRootFilesystem\n+\t\t}\n+\t}\n+\n+\t// set environment variables\n+\tenvs := make([]*runtimeApi.KeyValue, len(opts.Envs))\n+\tfor idx := range opts.Envs {\n+\t\te := opts.Envs[idx]\n+\t\tenvs[idx] = &runtimeApi.KeyValue{\n+\t\t\tKey:   &e.Name,\n+\t\t\tValue: &e.Value,\n+\t\t}\n+\t}\n+\tconfig.Envs = envs\n+\n+\treturn config, nil\n+}\n+\n+// generateLinuxContainerConfig generates linux container config for kubelet runtime api.\n+func (m *kubeGenericRuntimeManager) generateLinuxContainerConfig(container *api.Container) *runtimeApi.LinuxContainerConfig {\n+\tlinuxConfig := &runtimeApi.LinuxContainerConfig{\n+\t\tResources: &runtimeApi.LinuxContainerResources{},\n+\t}\n+\n+\t// set linux container resources\n+\tvar cpuShares int64\n+\tcpuRequest := container.Resources.Requests.Cpu()\n+\tcpuLimit := container.Resources.Limits.Cpu()\n+\tmemoryLimit := container.Resources.Limits.Memory().Value()","path":"pkg/kubelet/kuberuntime/kuberuntime_container.go","position":82,"original_position":82,"commit_id":"d9455a158de7390f66224f55b3a9cc4b7ee18e42","original_commit_id":"d9455a158de7390f66224f55b3a9cc4b7ee18e42","user":{"login":"yujuhong","id":10524058,"avatar_url":"https://avatars.githubusercontent.com/u/10524058?v=3","gravatar_id":"","url":"https://api.github.com/users/yujuhong","html_url":"https://github.com/yujuhong","followers_url":"https://api.github.com/users/yujuhong/followers","following_url":"https://api.github.com/users/yujuhong/following{/other_user}","gists_url":"https://api.github.com/users/yujuhong/gists{/gist_id}","starred_url":"https://api.github.com/users/yujuhong/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/yujuhong/subscriptions","organizations_url":"https://api.github.com/users/yujuhong/orgs","repos_url":"https://api.github.com/users/yujuhong/repos","events_url":"https://api.github.com/users/yujuhong/events{/privacy}","received_events_url":"https://api.github.com/users/yujuhong/received_events","type":"User","site_admin":false},"body":"Copy the original comment explaining the logic behind this.\r\n```\r\n    // If request is not specified, but limit is, we want request to default to limit.\r\n    // API server does this for new containers, but we repeat this logic in Kubelet\r\n    // for containers running on existing Kubernetes clusters.\r\n```","created_at":"2016-08-11T18:07:47Z","updated_at":"2016-08-11T18:07:47Z","html_url":"https://github.com/kubernetes/kubernetes/pull/30083#discussion_r74472672","pull_request_url":"https://api.github.com/repos/kubernetes/kubernetes/pulls/30083","_links":{"self":{"href":"https://api.github.com/repos/kubernetes/kubernetes/pulls/comments/74472672"},"html":{"href":"https://github.com/kubernetes/kubernetes/pull/30083#discussion_r74472672"},"pull_request":{"href":"https://api.github.com/repos/kubernetes/kubernetes/pulls/30083"}}},"pull_request":{"url":"https://api.github.com/repos/kubernetes/kubernetes/pulls/30083","id":80109578,"html_url":"https://github.com/kubernetes/kubernetes/pull/30083","diff_url":"https://github.com/kubernetes/kubernetes/pull/30083.diff","patch_url":"https://github.com/kubernetes/kubernetes/pull/30083.patch","issue_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/30083","number":30083,"state":"open","locked":false,"title":"Kubelet: generate sandbox/container config for new runtime API","user":{"login":"feiskyer","id":676637,"avatar_url":"https://avatars.githubusercontent.com/u/676637?v=3","gravatar_id":"","url":"https://api.github.com/users/feiskyer","html_url":"https://github.com/feiskyer","followers_url":"https://api.github.com/users/feiskyer/followers","following_url":"https://api.github.com/users/feiskyer/following{/other_user}","gists_url":"https://api.github.com/users/feiskyer/gists{/gist_id}","starred_url":"https://api.github.com/users/feiskyer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/feiskyer/subscriptions","organizations_url":"https://api.github.com/users/feiskyer/orgs","repos_url":"https://api.github.com/users/feiskyer/repos","events_url":"https://api.github.com/users/feiskyer/events{/privacy}","received_events_url":"https://api.github.com/users/feiskyer/received_events","type":"User","site_admin":false},"body":"Generate sandbox/container config for new runtime API. Part of #28789 .\r\n\r\nCC @yujuhong @Random-Liu @dchen1107 \r\n\r\n<!-- Reviewable:start -->\r\n---\r\nThis change is [<img src=\"https://reviewable.kubernetes.io/review_button.svg\" height=\"34\" align=\"absmiddle\" alt=\"Reviewable\"/>](https://reviewable.kubernetes.io/reviews/kubernetes/kubernetes/30083)\r\n<!-- Reviewable:end -->\r\n","created_at":"2016-08-04T16:31:13Z","updated_at":"2016-08-11T18:07:47Z","closed_at":null,"merged_at":null,"merge_commit_sha":"53cc7de6ac92e2a5cf6e81dc5916d4653a7b84bc","assignee":{"login":"euank","id":2147649,"avatar_url":"https://avatars.githubusercontent.com/u/2147649?v=3","gravatar_id":"","url":"https://api.github.com/users/euank","html_url":"https://github.com/euank","followers_url":"https://api.github.com/users/euank/followers","following_url":"https://api.github.com/users/euank/following{/other_user}","gists_url":"https://api.github.com/users/euank/gists{/gist_id}","starred_url":"https://api.github.com/users/euank/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/euank/subscriptions","organizations_url":"https://api.github.com/users/euank/orgs","repos_url":"https://api.github.com/users/euank/repos","events_url":"https://api.github.com/users/euank/events{/privacy}","received_events_url":"https://api.github.com/users/euank/received_events","type":"User","site_admin":false},"assignees":[{"login":"euank","id":2147649,"avatar_url":"https://avatars.githubusercontent.com/u/2147649?v=3","gravatar_id":"","url":"https://api.github.com/users/euank","html_url":"https://github.com/euank","followers_url":"https://api.github.com/users/euank/followers","following_url":"https://api.github.com/users/euank/following{/other_user}","gists_url":"https://api.github.com/users/euank/gists{/gist_id}","starred_url":"https://api.github.com/users/euank/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/euank/subscriptions","organizations_url":"https://api.github.com/users/euank/orgs","repos_url":"https://api.github.com/users/euank/repos","events_url":"https://api.github.com/users/euank/events{/privacy}","received_events_url":"https://api.github.com/users/euank/received_events","type":"User","site_admin":false},{"login":"yifan-gu","id":3278588,"avatar_url":"https://avatars.githubusercontent.com/u/3278588?v=3","gravatar_id":"","url":"https://api.github.com/users/yifan-gu","html_url":"https://github.com/yifan-gu","followers_url":"https://api.github.com/users/yifan-gu/followers","following_url":"https://api.github.com/users/yifan-gu/following{/other_user}","gists_url":"https://api.github.com/users/yifan-gu/gists{/gist_id}","starred_url":"https://api.github.com/users/yifan-gu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/yifan-gu/subscriptions","organizations_url":"https://api.github.com/users/yifan-gu/orgs","repos_url":"https://api.github.com/users/yifan-gu/repos","events_url":"https://api.github.com/users/yifan-gu/events{/privacy}","received_events_url":"https://api.github.com/users/yifan-gu/received_events","type":"User","site_admin":false},{"login":"Random-Liu","id":5821883,"avatar_url":"https://avatars.githubusercontent.com/u/5821883?v=3","gravatar_id":"","url":"https://api.github.com/users/Random-Liu","html_url":"https://github.com/Random-Liu","followers_url":"https://api.github.com/users/Random-Liu/followers","following_url":"https://api.github.com/users/Random-Liu/following{/other_user}","gists_url":"https://api.github.com/users/Random-Liu/gists{/gist_id}","starred_url":"https://api.github.com/users/Random-Liu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Random-Liu/subscriptions","organizations_url":"https://api.github.com/users/Random-Liu/orgs","repos_url":"https://api.github.com/users/Random-Liu/repos","events_url":"https://api.github.com/users/Random-Liu/events{/privacy}","received_events_url":"https://api.github.com/users/Random-Liu/received_events","type":"User","site_admin":false},{"login":"yujuhong","id":10524058,"avatar_url":"https://avatars.githubusercontent.com/u/10524058?v=3","gravatar_id":"","url":"https://api.github.com/users/yujuhong","html_url":"https://github.com/yujuhong","followers_url":"https://api.github.com/users/yujuhong/followers","following_url":"https://api.github.com/users/yujuhong/following{/other_user}","gists_url":"https://api.github.com/users/yujuhong/gists{/gist_id}","starred_url":"https://api.github.com/users/yujuhong/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/yujuhong/subscriptions","organizations_url":"https://api.github.com/users/yujuhong/orgs","repos_url":"https://api.github.com/users/yujuhong/repos","events_url":"https://api.github.com/users/yujuhong/events{/privacy}","received_events_url":"https://api.github.com/users/yujuhong/received_events","type":"User","site_admin":false}],"milestone":null,"commits_url":"https://api.github.com/repos/kubernetes/kubernetes/pulls/30083/commits","review_comments_url":"https://api.github.com/repos/kubernetes/kubernetes/pulls/30083/comments","review_comment_url":"https://api.github.com/repos/kubernetes/kubernetes/pulls/comments{/number}","comments_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/30083/comments","statuses_url":"https://api.github.com/repos/kubernetes/kubernetes/statuses/d9455a158de7390f66224f55b3a9cc4b7ee18e42","head":{"label":"feiskyer:kuberuntime-config","ref":"kuberuntime-config","sha":"d9455a158de7390f66224f55b3a9cc4b7ee18e42","user":{"login":"feiskyer","id":676637,"avatar_url":"https://avatars.githubusercontent.com/u/676637?v=3","gravatar_id":"","url":"https://api.github.com/users/feiskyer","html_url":"https://github.com/feiskyer","followers_url":"https://api.github.com/users/feiskyer/followers","following_url":"https://api.github.com/users/feiskyer/following{/other_user}","gists_url":"https://api.github.com/users/feiskyer/gists{/gist_id}","starred_url":"https://api.github.com/users/feiskyer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/feiskyer/subscriptions","organizations_url":"https://api.github.com/users/feiskyer/orgs","repos_url":"https://api.github.com/users/feiskyer/repos","events_url":"https://api.github.com/users/feiskyer/events{/privacy}","received_events_url":"https://api.github.com/users/feiskyer/received_events","type":"User","site_admin":false},"repo":{"id":39993689,"name":"kubernetes","full_name":"feiskyer/kubernetes","owner":{"login":"feiskyer","id":676637,"avatar_url":"https://avatars.githubusercontent.com/u/676637?v=3","gravatar_id":"","url":"https://api.github.com/users/feiskyer","html_url":"https://github.com/feiskyer","followers_url":"https://api.github.com/users/feiskyer/followers","following_url":"https://api.github.com/users/feiskyer/following{/other_user}","gists_url":"https://api.github.com/users/feiskyer/gists{/gist_id}","starred_url":"https://api.github.com/users/feiskyer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/feiskyer/subscriptions","organizations_url":"https://api.github.com/users/feiskyer/orgs","repos_url":"https://api.github.com/users/feiskyer/repos","events_url":"https://api.github.com/users/feiskyer/events{/privacy}","received_events_url":"https://api.github.com/users/feiskyer/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/feiskyer/kubernetes","description":"Container Cluster Manager from Google","fork":true,"url":"https://api.github.com/repos/feiskyer/kubernetes","forks_url":"https://api.github.com/repos/feiskyer/kubernetes/forks","keys_url":"https://api.github.com/repos/feiskyer/kubernetes/keys{/key_id}","collaborators_url":"https://api.github.com/repos/feiskyer/kubernetes/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/feiskyer/kubernetes/teams","hooks_url":"https://api.github.com/repos/feiskyer/kubernetes/hooks","issue_events_url":"https://api.github.com/repos/feiskyer/kubernetes/issues/events{/number}","events_url":"https://api.github.com/repos/feiskyer/kubernetes/events","assignees_url":"https://api.github.com/repos/feiskyer/kubernetes/assignees{/user}","branches_url":"https://api.github.com/repos/feiskyer/kubernetes/branches{/branch}","tags_url":"https://api.github.com/repos/feiskyer/kubernetes/tags","blobs_url":"https://api.github.com/repos/feiskyer/kubernetes/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/feiskyer/kubernetes/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/feiskyer/kubernetes/git/refs{/sha}","trees_url":"https://api.github.com/repos/feiskyer/kubernetes/git/trees{/sha}","statuses_url":"https://api.github.com/repos/feiskyer/kubernetes/statuses/{sha}","languages_url":"https://api.github.com/repos/feiskyer/kubernetes/languages","stargazers_url":"https://api.github.com/repos/feiskyer/kubernetes/stargazers","contributors_url":"https://api.github.com/repos/feiskyer/kubernetes/contributors","subscribers_url":"https://api.github.com/repos/feiskyer/kubernetes/subscribers","subscription_url":"https://api.github.com/repos/feiskyer/kubernetes/subscription","commits_url":"https://api.github.com/repos/feiskyer/kubernetes/commits{/sha}","git_commits_url":"https://api.github.com/repos/feiskyer/kubernetes/git/commits{/sha}","comments_url":"https://api.github.com/repos/feiskyer/kubernetes/comments{/number}","issue_comment_url":"https://api.github.com/repos/feiskyer/kubernetes/issues/comments{/number}","contents_url":"https://api.github.com/repos/feiskyer/kubernetes/contents/{+path}","compare_url":"https://api.github.com/repos/feiskyer/kubernetes/compare/{base}...{head}","merges_url":"https://api.github.com/repos/feiskyer/kubernetes/merges","archive_url":"https://api.github.com/repos/feiskyer/kubernetes/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/feiskyer/kubernetes/downloads","issues_url":"https://api.github.com/repos/feiskyer/kubernetes/issues{/number}","pulls_url":"https://api.github.com/repos/feiskyer/kubernetes/pulls{/number}","milestones_url":"https://api.github.com/repos/feiskyer/kubernetes/milestones{/number}","notifications_url":"https://api.github.com/repos/feiskyer/kubernetes/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/feiskyer/kubernetes/labels{/name}","releases_url":"https://api.github.com/repos/feiskyer/kubernetes/releases{/id}","deployments_url":"https://api.github.com/repos/feiskyer/kubernetes/deployments","created_at":"2015-07-31T07:53:03Z","updated_at":"2016-02-12T09:40:13Z","pushed_at":"2016-08-11T05:31:55Z","git_url":"git://github.com/feiskyer/kubernetes.git","ssh_url":"git@github.com:feiskyer/kubernetes.git","clone_url":"https://github.com/feiskyer/kubernetes.git","svn_url":"https://github.com/feiskyer/kubernetes","homepage":"http://kubernetes.io","size":308042,"stargazers_count":0,"watchers_count":0,"language":"Go","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"kubernetes:master","ref":"master","sha":"012eb941d6f90b75f9866ec59bd7f73a965b4d27","user":{"login":"kubernetes","id":13629408,"avatar_url":"https://avatars.githubusercontent.com/u/13629408?v=3","gravatar_id":"","url":"https://api.github.com/users/kubernetes","html_url":"https://github.com/kubernetes","followers_url":"https://api.github.com/users/kubernetes/followers","following_url":"https://api.github.com/users/kubernetes/following{/other_user}","gists_url":"https://api.github.com/users/kubernetes/gists{/gist_id}","starred_url":"https://api.github.com/users/kubernetes/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kubernetes/subscriptions","organizations_url":"https://api.github.com/users/kubernetes/orgs","repos_url":"https://api.github.com/users/kubernetes/repos","events_url":"https://api.github.com/users/kubernetes/events{/privacy}","received_events_url":"https://api.github.com/users/kubernetes/received_events","type":"Organization","site_admin":false},"repo":{"id":20580498,"name":"kubernetes","full_name":"kubernetes/kubernetes","owner":{"login":"kubernetes","id":13629408,"avatar_url":"https://avatars.githubusercontent.com/u/13629408?v=3","gravatar_id":"","url":"https://api.github.com/users/kubernetes","html_url":"https://github.com/kubernetes","followers_url":"https://api.github.com/users/kubernetes/followers","following_url":"https://api.github.com/users/kubernetes/following{/other_user}","gists_url":"https://api.github.com/users/kubernetes/gists{/gist_id}","starred_url":"https://api.github.com/users/kubernetes/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kubernetes/subscriptions","organizations_url":"https://api.github.com/users/kubernetes/orgs","repos_url":"https://api.github.com/users/kubernetes/repos","events_url":"https://api.github.com/users/kubernetes/events{/privacy}","received_events_url":"https://api.github.com/users/kubernetes/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/kubernetes/kubernetes","description":"Production-Grade Container Scheduling and Management","fork":false,"url":"https://api.github.com/repos/kubernetes/kubernetes","forks_url":"https://api.github.com/repos/kubernetes/kubernetes/forks","keys_url":"https://api.github.com/repos/kubernetes/kubernetes/keys{/key_id}","collaborators_url":"https://api.github.com/repos/kubernetes/kubernetes/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/kubernetes/kubernetes/teams","hooks_url":"https://api.github.com/repos/kubernetes/kubernetes/hooks","issue_events_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/events{/number}","events_url":"https://api.github.com/repos/kubernetes/kubernetes/events","assignees_url":"https://api.github.com/repos/kubernetes/kubernetes/assignees{/user}","branches_url":"https://api.github.com/repos/kubernetes/kubernetes/branches{/branch}","tags_url":"https://api.github.com/repos/kubernetes/kubernetes/tags","blobs_url":"https://api.github.com/repos/kubernetes/kubernetes/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/kubernetes/kubernetes/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/kubernetes/kubernetes/git/refs{/sha}","trees_url":"https://api.github.com/repos/kubernetes/kubernetes/git/trees{/sha}","statuses_url":"https://api.github.com/repos/kubernetes/kubernetes/statuses/{sha}","languages_url":"https://api.github.com/repos/kubernetes/kubernetes/languages","stargazers_url":"https://api.github.com/repos/kubernetes/kubernetes/stargazers","contributors_url":"https://api.github.com/repos/kubernetes/kubernetes/contributors","subscribers_url":"https://api.github.com/repos/kubernetes/kubernetes/subscribers","subscription_url":"https://api.github.com/repos/kubernetes/kubernetes/subscription","commits_url":"https://api.github.com/repos/kubernetes/kubernetes/commits{/sha}","git_commits_url":"https://api.github.com/repos/kubernetes/kubernetes/git/commits{/sha}","comments_url":"https://api.github.com/repos/kubernetes/kubernetes/comments{/number}","issue_comment_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/comments{/number}","contents_url":"https://api.github.com/repos/kubernetes/kubernetes/contents/{+path}","compare_url":"https://api.github.com/repos/kubernetes/kubernetes/compare/{base}...{head}","merges_url":"https://api.github.com/repos/kubernetes/kubernetes/merges","archive_url":"https://api.github.com/repos/kubernetes/kubernetes/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/kubernetes/kubernetes/downloads","issues_url":"https://api.github.com/repos/kubernetes/kubernetes/issues{/number}","pulls_url":"https://api.github.com/repos/kubernetes/kubernetes/pulls{/number}","milestones_url":"https://api.github.com/repos/kubernetes/kubernetes/milestones{/number}","notifications_url":"https://api.github.com/repos/kubernetes/kubernetes/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/kubernetes/kubernetes/labels{/name}","releases_url":"https://api.github.com/repos/kubernetes/kubernetes/releases{/id}","deployments_url":"https://api.github.com/repos/kubernetes/kubernetes/deployments","created_at":"2014-06-06T22:56:04Z","updated_at":"2016-08-11T17:18:05Z","pushed_at":"2016-08-11T18:02:32Z","git_url":"git://github.com/kubernetes/kubernetes.git","ssh_url":"git@github.com:kubernetes/kubernetes.git","clone_url":"https://github.com/kubernetes/kubernetes.git","svn_url":"https://github.com/kubernetes/kubernetes","homepage":"http://kubernetes.io","size":519801,"stargazers_count":16081,"watchers_count":16081,"language":"Go","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":5106,"mirror_url":null,"open_issues_count":4164,"forks":5106,"open_issues":4164,"watchers":16081,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/kubernetes/kubernetes/pulls/30083"},"html":{"href":"https://github.com/kubernetes/kubernetes/pull/30083"},"issue":{"href":"https://api.github.com/repos/kubernetes/kubernetes/issues/30083"},"comments":{"href":"https://api.github.com/repos/kubernetes/kubernetes/issues/30083/comments"},"review_comments":{"href":"https://api.github.com/repos/kubernetes/kubernetes/pulls/30083/comments"},"review_comment":{"href":"https://api.github.com/repos/kubernetes/kubernetes/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/kubernetes/kubernetes/pulls/30083/commits"},"statuses":{"href":"https://api.github.com/repos/kubernetes/kubernetes/statuses/d9455a158de7390f66224f55b3a9cc4b7ee18e42"}}}}
{"actor":{"display_login":"yujuhong"}}