{"action":"created","comment":{"url":"https://api.github.com/repos/kubernetes/kubernetes/pulls/comments/244722092","pull_request_review_id":188659731,"id":244722092,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0NDcyMjA5Mg==","diff_hunk":"@@ -152,206 +153,258 @@ var (\n \t\t`)\n )\n \n-// NewCmdJoin returns \"kubeadm join\" command.\n-func NewCmdJoin(out io.Writer) *cobra.Command {\n-\tcfg := &kubeadmapiv1beta1.JoinConfiguration{}\n-\tkubeadmscheme.Scheme.Default(cfg)\n+// joinOptions defines all the options exposed via flags by kubeadm join.\n+// Please note that this structure includes the public kubeadm config API, but only a subset of the options\n+// supported by this api will be exposed as a flag.\n+type joinOptions struct {\n+\tcfgPath               string\n+\ttoken                 string\n+\tcontrolPlane          bool\n+\tignorePreflightErrors []string\n+\texternalcfg           *kubeadmapiv1beta1.JoinConfiguration\n+}\n \n-\tfd := &kubeadmapiv1beta1.FileDiscovery{}\n-\tbtd := &kubeadmapiv1beta1.BootstrapTokenDiscovery{}\n+// joinData defines all the runtime information used when running the kubeadm join worklow;\n+// this data is shared across all the phases that are included in the workflow.\n+type joinData struct {\n+\tcfg                   *kubeadmapi.JoinConfiguration\n+\tignorePreflightErrors sets.String\n+\toutputWriter          io.Writer\n+}\n \n-\tvar token string\n-\tvar cfgPath string\n-\tvar ignorePreflightErrors []string\n-\tvar controlPlane bool\n-\tvar advertiseAddress string\n-\tvar bindPort int32 = kubeadmapiv1beta1.DefaultAPIBindPort\n+// NewCmdJoin returns \"kubeadm join\" command.\n+// NB. joinOptions is exposed as parameter for allowing unit testing of\n+//     the newJoinData method, that implements all the command options validation logic\n+func NewCmdJoin(out io.Writer, joinOptions *joinOptions) *cobra.Command {\n+\tif joinOptions == nil {","path":"cmd/kubeadm/app/cmd/join.go","position":47,"original_position":47,"commit_id":"8288f9e457561e666ee0ab1dbbd2b14c36fbdaed","original_commit_id":"8288f9e457561e666ee0ab1dbbd2b14c36fbdaed","user":{"login":"neolit123","id":331852,"node_id":"MDQ6VXNlcjMzMTg1Mg==","avatar_url":"https://avatars3.githubusercontent.com/u/331852?v=4","gravatar_id":"","url":"https://api.github.com/users/neolit123","html_url":"https://github.com/neolit123","followers_url":"https://api.github.com/users/neolit123/followers","following_url":"https://api.github.com/users/neolit123/following{/other_user}","gists_url":"https://api.github.com/users/neolit123/gists{/gist_id}","starred_url":"https://api.github.com/users/neolit123/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/neolit123/subscriptions","organizations_url":"https://api.github.com/users/neolit123/orgs","repos_url":"https://api.github.com/users/neolit123/repos","events_url":"https://api.github.com/users/neolit123/events{/privacy}","received_events_url":"https://api.github.com/users/neolit123/received_events","type":"User","site_admin":false},"body":"just to mention: we didn't expose initOptions in the case of `kubeadm init`, since we don't have `init_test.go`. maybe now that we have init phases we can have some proper unit tests for init.\r\n","created_at":"2019-01-02T12:14:51Z","updated_at":"2019-01-02T12:52:14Z","html_url":"https://github.com/kubernetes/kubernetes/pull/72442#discussion_r244722092","pull_request_url":"https://api.github.com/repos/kubernetes/kubernetes/pulls/72442","author_association":"MEMBER","_links":{"self":{"href":"https://api.github.com/repos/kubernetes/kubernetes/pulls/comments/244722092"},"html":{"href":"https://github.com/kubernetes/kubernetes/pull/72442#discussion_r244722092"},"pull_request":{"href":"https://api.github.com/repos/kubernetes/kubernetes/pulls/72442"}}},"pull_request":{"url":"https://api.github.com/repos/kubernetes/kubernetes/pulls/72442","id":241497059,"node_id":"MDExOlB1bGxSZXF1ZXN0MjQxNDk3MDU5","html_url":"https://github.com/kubernetes/kubernetes/pull/72442","diff_url":"https://github.com/kubernetes/kubernetes/pull/72442.diff","patch_url":"https://github.com/kubernetes/kubernetes/pull/72442.patch","issue_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/72442","number":72442,"state":"open","locked":false,"title":"Refactor the kubeadm join command","user":{"login":"fabriziopandini","id":5013060,"node_id":"MDQ6VXNlcjUwMTMwNjA=","avatar_url":"https://avatars0.githubusercontent.com/u/5013060?v=4","gravatar_id":"","url":"https://api.github.com/users/fabriziopandini","html_url":"https://github.com/fabriziopandini","followers_url":"https://api.github.com/users/fabriziopandini/followers","following_url":"https://api.github.com/users/fabriziopandini/following{/other_user}","gists_url":"https://api.github.com/users/fabriziopandini/gists{/gist_id}","starred_url":"https://api.github.com/users/fabriziopandini/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fabriziopandini/subscriptions","organizations_url":"https://api.github.com/users/fabriziopandini/orgs","repos_url":"https://api.github.com/users/fabriziopandini/repos","events_url":"https://api.github.com/users/fabriziopandini/events{/privacy}","received_events_url":"https://api.github.com/users/fabriziopandini/received_events","type":"User","site_admin":false},"body":"**What type of PR is this?**\r\n/kind cleanup\r\n\r\n**What this PR does / why we need it**:\r\nthe PR refactors the kubeadm join command and lays the ground for exposing the kubeadm join workflow as phases \r\n\r\n**Which issue(s) this PR fixes**:\r\nRif #https://github.com/kubernetes/kubeadm/issues/1204\r\n\r\n**Special notes for your reviewer**:\r\nThe `kubeadm join` command is refactored using the same approach already used for `kubeadm init` in the last cycle: \r\n1. introduces the `joinOptions` and `joinData` struct \r\n2. creates a single `run` method that should be progressively migrated to phases\r\n\r\nUnit test are provided as well\r\n\r\n/sig cluster-lifecycle\r\n/assign @yagonobre \r\n@kubernetes/sig-cluster-lifecycle-pr-reviews\r\n@timothysc \r\n@neolit123 \r\n@rosti\r\n\r\n**Does this PR introduce a user-facing change?**:\r\n```release-note\r\nNONE\r\n```\r\n","created_at":"2018-12-30T15:45:06Z","updated_at":"2019-01-02T12:52:14Z","closed_at":null,"merged_at":null,"merge_commit_sha":"d8858e5dc8dc29b75a48ca2e9fc3397f6007de54","assignee":{"login":"yagonobre","id":9687403,"node_id":"MDQ6VXNlcjk2ODc0MDM=","avatar_url":"https://avatars3.githubusercontent.com/u/9687403?v=4","gravatar_id":"","url":"https://api.github.com/users/yagonobre","html_url":"https://github.com/yagonobre","followers_url":"https://api.github.com/users/yagonobre/followers","following_url":"https://api.github.com/users/yagonobre/following{/other_user}","gists_url":"https://api.github.com/users/yagonobre/gists{/gist_id}","starred_url":"https://api.github.com/users/yagonobre/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/yagonobre/subscriptions","organizations_url":"https://api.github.com/users/yagonobre/orgs","repos_url":"https://api.github.com/users/yagonobre/repos","events_url":"https://api.github.com/users/yagonobre/events{/privacy}","received_events_url":"https://api.github.com/users/yagonobre/received_events","type":"User","site_admin":false},"assignees":[{"login":"yagonobre","id":9687403,"node_id":"MDQ6VXNlcjk2ODc0MDM=","avatar_url":"https://avatars3.githubusercontent.com/u/9687403?v=4","gravatar_id":"","url":"https://api.github.com/users/yagonobre","html_url":"https://github.com/yagonobre","followers_url":"https://api.github.com/users/yagonobre/followers","following_url":"https://api.github.com/users/yagonobre/following{/other_user}","gists_url":"https://api.github.com/users/yagonobre/gists{/gist_id}","starred_url":"https://api.github.com/users/yagonobre/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/yagonobre/subscriptions","organizations_url":"https://api.github.com/users/yagonobre/orgs","repos_url":"https://api.github.com/users/yagonobre/repos","events_url":"https://api.github.com/users/yagonobre/events{/privacy}","received_events_url":"https://api.github.com/users/yagonobre/received_events","type":"User","site_admin":false}],"requested_reviewers":[{"login":"kad","id":41858,"node_id":"MDQ6VXNlcjQxODU4","avatar_url":"https://avatars1.githubusercontent.com/u/41858?v=4","gravatar_id":"","url":"https://api.github.com/users/kad","html_url":"https://github.com/kad","followers_url":"https://api.github.com/users/kad/followers","following_url":"https://api.github.com/users/kad/following{/other_user}","gists_url":"https://api.github.com/users/kad/gists{/gist_id}","starred_url":"https://api.github.com/users/kad/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kad/subscriptions","organizations_url":"https://api.github.com/users/kad/orgs","repos_url":"https://api.github.com/users/kad/repos","events_url":"https://api.github.com/users/kad/events{/privacy}","received_events_url":"https://api.github.com/users/kad/received_events","type":"User","site_admin":false},{"login":"rosti","id":1117321,"node_id":"MDQ6VXNlcjExMTczMjE=","avatar_url":"https://avatars1.githubusercontent.com/u/1117321?v=4","gravatar_id":"","url":"https://api.github.com/users/rosti","html_url":"https://github.com/rosti","followers_url":"https://api.github.com/users/rosti/followers","following_url":"https://api.github.com/users/rosti/following{/other_user}","gists_url":"https://api.github.com/users/rosti/gists{/gist_id}","starred_url":"https://api.github.com/users/rosti/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rosti/subscriptions","organizations_url":"https://api.github.com/users/rosti/orgs","repos_url":"https://api.github.com/users/rosti/repos","events_url":"https://api.github.com/users/rosti/events{/privacy}","received_events_url":"https://api.github.com/users/rosti/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[{"id":414883982,"node_id":"MDU6TGFiZWw0MTQ4ODM5ODI=","url":"https://api.github.com/repos/kubernetes/kubernetes/labels/approved","name":"approved","color":"0ffa16","default":false},{"id":451459590,"node_id":"MDU6TGFiZWw0NTE0NTk1OTA=","url":"https://api.github.com/repos/kubernetes/kubernetes/labels/area/kubeadm","name":"area/kubeadm","color":"0052cc","default":false},{"id":477397086,"node_id":"MDU6TGFiZWw0NzczOTcwODY=","url":"https://api.github.com/repos/kubernetes/kubernetes/labels/cncf-cla:%20yes","name":"cncf-cla: yes","color":"bfe5bf","default":false},{"id":122775691,"node_id":"MDU6TGFiZWwxMjI3NzU2OTE=","url":"https://api.github.com/repos/kubernetes/kubernetes/labels/kind/cleanup","name":"kind/cleanup","color":"c7def8","default":false},{"id":114528223,"node_id":"MDU6TGFiZWwxMTQ1MjgyMjM=","url":"https://api.github.com/repos/kubernetes/kubernetes/labels/priority/important-soon","name":"priority/important-soon","color":"eb6420","default":false},{"id":349530249,"node_id":"MDU6TGFiZWwzNDk1MzAyNDk=","url":"https://api.github.com/repos/kubernetes/kubernetes/labels/release-note-none","name":"release-note-none","color":"c2e0c6","default":false},{"id":173494222,"node_id":"MDU6TGFiZWwxNzM0OTQyMjI=","url":"https://api.github.com/repos/kubernetes/kubernetes/labels/sig/cluster-lifecycle","name":"sig/cluster-lifecycle","color":"d2b48c","default":false},{"id":253451057,"node_id":"MDU6TGFiZWwyNTM0NTEwNTc=","url":"https://api.github.com/repos/kubernetes/kubernetes/labels/size/XL","name":"size/XL","color":"ee5500","default":false}],"milestone":null,"commits_url":"https://api.github.com/repos/kubernetes/kubernetes/pulls/72442/commits","review_comments_url":"https://api.github.com/repos/kubernetes/kubernetes/pulls/72442/comments","review_comment_url":"https://api.github.com/repos/kubernetes/kubernetes/pulls/comments{/number}","comments_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/72442/comments","statuses_url":"https://api.github.com/repos/kubernetes/kubernetes/statuses/8288f9e457561e666ee0ab1dbbd2b14c36fbdaed","head":{"label":"fabriziopandini:join-refactor","ref":"join-refactor","sha":"8288f9e457561e666ee0ab1dbbd2b14c36fbdaed","user":{"login":"fabriziopandini","id":5013060,"node_id":"MDQ6VXNlcjUwMTMwNjA=","avatar_url":"https://avatars0.githubusercontent.com/u/5013060?v=4","gravatar_id":"","url":"https://api.github.com/users/fabriziopandini","html_url":"https://github.com/fabriziopandini","followers_url":"https://api.github.com/users/fabriziopandini/followers","following_url":"https://api.github.com/users/fabriziopandini/following{/other_user}","gists_url":"https://api.github.com/users/fabriziopandini/gists{/gist_id}","starred_url":"https://api.github.com/users/fabriziopandini/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fabriziopandini/subscriptions","organizations_url":"https://api.github.com/users/fabriziopandini/orgs","repos_url":"https://api.github.com/users/fabriziopandini/repos","events_url":"https://api.github.com/users/fabriziopandini/events{/privacy}","received_events_url":"https://api.github.com/users/fabriziopandini/received_events","type":"User","site_admin":false},"repo":{"id":88149857,"node_id":"MDEwOlJlcG9zaXRvcnk4ODE0OTg1Nw==","name":"kubernetes","full_name":"fabriziopandini/kubernetes","private":false,"owner":{"login":"fabriziopandini","id":5013060,"node_id":"MDQ6VXNlcjUwMTMwNjA=","avatar_url":"https://avatars0.githubusercontent.com/u/5013060?v=4","gravatar_id":"","url":"https://api.github.com/users/fabriziopandini","html_url":"https://github.com/fabriziopandini","followers_url":"https://api.github.com/users/fabriziopandini/followers","following_url":"https://api.github.com/users/fabriziopandini/following{/other_user}","gists_url":"https://api.github.com/users/fabriziopandini/gists{/gist_id}","starred_url":"https://api.github.com/users/fabriziopandini/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fabriziopandini/subscriptions","organizations_url":"https://api.github.com/users/fabriziopandini/orgs","repos_url":"https://api.github.com/users/fabriziopandini/repos","events_url":"https://api.github.com/users/fabriziopandini/events{/privacy}","received_events_url":"https://api.github.com/users/fabriziopandini/received_events","type":"User","site_admin":false},"html_url":"https://github.com/fabriziopandini/kubernetes","description":"Production-Grade Container Scheduling and Management","fork":true,"url":"https://api.github.com/repos/fabriziopandini/kubernetes","forks_url":"https://api.github.com/repos/fabriziopandini/kubernetes/forks","keys_url":"https://api.github.com/repos/fabriziopandini/kubernetes/keys{/key_id}","collaborators_url":"https://api.github.com/repos/fabriziopandini/kubernetes/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/fabriziopandini/kubernetes/teams","hooks_url":"https://api.github.com/repos/fabriziopandini/kubernetes/hooks","issue_events_url":"https://api.github.com/repos/fabriziopandini/kubernetes/issues/events{/number}","events_url":"https://api.github.com/repos/fabriziopandini/kubernetes/events","assignees_url":"https://api.github.com/repos/fabriziopandini/kubernetes/assignees{/user}","branches_url":"https://api.github.com/repos/fabriziopandini/kubernetes/branches{/branch}","tags_url":"https://api.github.com/repos/fabriziopandini/kubernetes/tags","blobs_url":"https://api.github.com/repos/fabriziopandini/kubernetes/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/fabriziopandini/kubernetes/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/fabriziopandini/kubernetes/git/refs{/sha}","trees_url":"https://api.github.com/repos/fabriziopandini/kubernetes/git/trees{/sha}","statuses_url":"https://api.github.com/repos/fabriziopandini/kubernetes/statuses/{sha}","languages_url":"https://api.github.com/repos/fabriziopandini/kubernetes/languages","stargazers_url":"https://api.github.com/repos/fabriziopandini/kubernetes/stargazers","contributors_url":"https://api.github.com/repos/fabriziopandini/kubernetes/contributors","subscribers_url":"https://api.github.com/repos/fabriziopandini/kubernetes/subscribers","subscription_url":"https://api.github.com/repos/fabriziopandini/kubernetes/subscription","commits_url":"https://api.github.com/repos/fabriziopandini/kubernetes/commits{/sha}","git_commits_url":"https://api.github.com/repos/fabriziopandini/kubernetes/git/commits{/sha}","comments_url":"https://api.github.com/repos/fabriziopandini/kubernetes/comments{/number}","issue_comment_url":"https://api.github.com/repos/fabriziopandini/kubernetes/issues/comments{/number}","contents_url":"https://api.github.com/repos/fabriziopandini/kubernetes/contents/{+path}","compare_url":"https://api.github.com/repos/fabriziopandini/kubernetes/compare/{base}...{head}","merges_url":"https://api.github.com/repos/fabriziopandini/kubernetes/merges","archive_url":"https://api.github.com/repos/fabriziopandini/kubernetes/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/fabriziopandini/kubernetes/downloads","issues_url":"https://api.github.com/repos/fabriziopandini/kubernetes/issues{/number}","pulls_url":"https://api.github.com/repos/fabriziopandini/kubernetes/pulls{/number}","milestones_url":"https://api.github.com/repos/fabriziopandini/kubernetes/milestones{/number}","notifications_url":"https://api.github.com/repos/fabriziopandini/kubernetes/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/fabriziopandini/kubernetes/labels{/name}","releases_url":"https://api.github.com/repos/fabriziopandini/kubernetes/releases{/id}","deployments_url":"https://api.github.com/repos/fabriziopandini/kubernetes/deployments","created_at":"2017-04-13T09:44:40Z","updated_at":"2018-12-28T14:06:35Z","pushed_at":"2018-12-31T14:02:30Z","git_url":"git://github.com/fabriziopandini/kubernetes.git","ssh_url":"git@github.com:fabriziopandini/kubernetes.git","clone_url":"https://github.com/fabriziopandini/kubernetes.git","svn_url":"https://github.com/fabriziopandini/kubernetes","homepage":"http://kubernetes.io","size":585318,"stargazers_count":0,"watchers_count":0,"language":"Go","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"kubernetes:master","ref":"master","sha":"7946a9a3272b77f344e7ab1b14a5496663239d79","user":{"login":"kubernetes","id":13629408,"node_id":"MDEyOk9yZ2FuaXphdGlvbjEzNjI5NDA4","avatar_url":"https://avatars2.githubusercontent.com/u/13629408?v=4","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,"node_id":"MDEwOlJlcG9zaXRvcnkyMDU4MDQ5OA==","name":"kubernetes","full_name":"kubernetes/kubernetes","private":false,"owner":{"login":"kubernetes","id":13629408,"node_id":"MDEyOk9yZ2FuaXphdGlvbjEzNjI5NDA4","avatar_url":"https://avatars2.githubusercontent.com/u/13629408?v=4","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},"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":"2019-01-02T12:24:37Z","pushed_at":"2019-01-02T12:05:23Z","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":"https://kubernetes.io","size":820508,"stargazers_count":46270,"watchers_count":46270,"language":"Go","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":16102,"mirror_url":null,"archived":false,"open_issues_count":3163,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"forks":16102,"open_issues":3163,"watchers":46270,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/kubernetes/kubernetes/pulls/72442"},"html":{"href":"https://github.com/kubernetes/kubernetes/pull/72442"},"issue":{"href":"https://api.github.com/repos/kubernetes/kubernetes/issues/72442"},"comments":{"href":"https://api.github.com/repos/kubernetes/kubernetes/issues/72442/comments"},"review_comments":{"href":"https://api.github.com/repos/kubernetes/kubernetes/pulls/72442/comments"},"review_comment":{"href":"https://api.github.com/repos/kubernetes/kubernetes/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/kubernetes/kubernetes/pulls/72442/commits"},"statuses":{"href":"https://api.github.com/repos/kubernetes/kubernetes/statuses/8288f9e457561e666ee0ab1dbbd2b14c36fbdaed"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"neolit123"}}