{"action":"created","comment":{"url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/pulls/comments/26548291","id":26548291,"diff_hunk":"@@ -0,0 +1,330 @@\n+/*\n+Copyright 2015 Google Inc. All rights reserved.\n+\n+Licensed under the Apache License, Version 2.0 (the \"License\");\n+you may not use this file except in compliance with the License.\n+You may obtain a copy of the License at\n+\n+    http://www.apache.org/licenses/LICENSE-2.0\n+\n+Unless required by applicable law or agreed to in writing, software\n+distributed under the License is distributed on an \"AS IS\" BASIS,\n+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n+See the License for the specific language governing permissions and\n+limitations under the License.\n+*/\n+\n+package e2e\n+\n+import (\n+\t\"encoding/json\"\n+\t\"fmt\"\n+\t\"math\"\n+\t\"strconv\"\n+\t\"strings\"\n+\t\"time\"\n+\n+\t\"github.com/GoogleCloudPlatform/kubernetes/pkg/api\"\n+\t\"github.com/GoogleCloudPlatform/kubernetes/pkg/client\"\n+\t\"github.com/GoogleCloudPlatform/kubernetes/pkg/labels\"\n+\t\"github.com/GoogleCloudPlatform/kubernetes/pkg/util\"\n+\n+\t. \"github.com/onsi/ginkgo\"\n+\t. \"github.com/onsi/gomega\"\n+)\n+\n+var _ = Describe(\"Cluster level logging using Elasticsearch\", func() {\n+\tvar c *client.Client\n+\n+\tBeforeEach(func() {\n+\t\tvar err error\n+\t\tc, err = loadClient()\n+\t\tExpect(err).NotTo(HaveOccurred())\n+\t})\n+\n+\tIt(\"should check that logs from pods on all nodes are ingested into Elasticsearch\", func() {\n+\t\tClusterLevelLoggingWithElasticsearch(c)\n+\t})\n+})\n+\n+func bodyToJSON(body []byte) (map[string]interface{}, error) {\n+\tvar r map[string]interface{}\n+\tif err := json.Unmarshal(body, &r); err != nil {\n+\t\tLogf(\"Bad JSON: %s\", string(body))\n+\t\treturn nil, fmt.Errorf(\"failed to unmarshal Elasticsearch response: %v\", err)\n+\t}\n+\treturn r, nil\n+}\n+\n+// ClusterLevelLoggingWithElasticsearch is an end to end test for cluster level logging.\n+func ClusterLevelLoggingWithElasticsearch(c *client.Client) {\n+\n+\t// TODO: For now assume we are only testing cluster logging with Elasticsearch\n+\t// on GCE. Once we are sure that Elasticsearch cluster level logging\n+\t// works for other providers we should widen this scope of this test.\n+\tif testContext.provider != \"gce\" {\n+\t\tLogf(\"Skipping cluster level logging test for provider %s\", testContext.provider)\n+\t\treturn\n+\t}\n+\n+\t// Check for the existance of the Elasticsearch service.\n+\tBy(\"Checking the Elasticsearch service exists.\")\n+\tconst ns = api.NamespaceDefault\n+\ts := c.Services(ns)\n+\t// Make a few attempts to connect. This makes the test robust against\n+\t// being run as the first e2e test just after the e2e cluster has been created.\n+\tvar err error\n+\tconst graceTime = 5 * time.Minute\n+\tfor start := time.Now(); time.Since(start) < graceTime; time.Sleep(5 * time.Second) {","path":"test/e2e/es_cluster_logging.go","position":78,"original_position":78,"commit_id":"9d5a52c8b26051f18b755ea70a5ef38185308ff4","original_commit_id":"9d5a52c8b26051f18b755ea70a5ef38185308ff4","user":{"login":"a-robinson","id":7085343,"avatar_url":"https://avatars.githubusercontent.com/u/7085343?v=3","gravatar_id":"","url":"https://api.github.com/users/a-robinson","html_url":"https://github.com/a-robinson","followers_url":"https://api.github.com/users/a-robinson/followers","following_url":"https://api.github.com/users/a-robinson/following{/other_user}","gists_url":"https://api.github.com/users/a-robinson/gists{/gist_id}","starred_url":"https://api.github.com/users/a-robinson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/a-robinson/subscriptions","organizations_url":"https://api.github.com/users/a-robinson/orgs","repos_url":"https://api.github.com/users/a-robinson/repos","events_url":"https://api.github.com/users/a-robinson/events{/privacy}","received_events_url":"https://api.github.com/users/a-robinson/received_events","type":"User","site_admin":false},"body":"Since you're using it in a few places, you may as well add `sleepTime = 5 * time.Second` as a const too.","created_at":"2015-03-17T04:11:30Z","updated_at":"2015-03-17T04:11:30Z","html_url":"https://github.com/GoogleCloudPlatform/kubernetes/pull/5269#discussion_r26548291","pull_request_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/pulls/5269","_links":{"self":{"href":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/pulls/comments/26548291"},"html":{"href":"https://github.com/GoogleCloudPlatform/kubernetes/pull/5269#discussion_r26548291"},"pull_request":{"href":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/pulls/5269"}}},"pull_request":{"url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/pulls/5269","id":30899354,"html_url":"https://github.com/GoogleCloudPlatform/kubernetes/pull/5269","diff_url":"https://github.com/GoogleCloudPlatform/kubernetes/pull/5269.diff","patch_url":"https://github.com/GoogleCloudPlatform/kubernetes/pull/5269.patch","issue_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/issues/5269","number":5269,"state":"open","locked":false,"title":"End to end test for cluster level logging with Elasticsearch","user":{"login":"satnam6502","id":6164339,"avatar_url":"https://avatars.githubusercontent.com/u/6164339?v=3","gravatar_id":"","url":"https://api.github.com/users/satnam6502","html_url":"https://github.com/satnam6502","followers_url":"https://api.github.com/users/satnam6502/followers","following_url":"https://api.github.com/users/satnam6502/following{/other_user}","gists_url":"https://api.github.com/users/satnam6502/gists{/gist_id}","starred_url":"https://api.github.com/users/satnam6502/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/satnam6502/subscriptions","organizations_url":"https://api.github.com/users/satnam6502/orgs","repos_url":"https://api.github.com/users/satnam6502/repos","events_url":"https://api.github.com/users/satnam6502/events{/privacy}","received_events_url":"https://api.github.com/users/satnam6502/received_events","type":"User","site_admin":false},"body":"This is an end to end test that checks cluster level logging with Elasticsearch works. Currently it only runs for the GCE provider but I hope this test makes it easier to port the cluster level logging to other platforms. The test does the following:\r\n* Checks for the GCE provider: passes for other providers.\r\n* Checks to make sure the Elasticsearch Kubernetes service is registered.\r\n* Waits for all the Elasticsearch pods to be in the running state.\r\n* Checks the health and status of the Elasticsearch service.\r\n* Enumerates the nodes in the cluster.\r\n* Instantiates a synthetic logging pod on each node (by setting the `Host` field) which writes out N log lines (N is 100 for this test). The log line also records the index of the node as well as a tag string to help with searching.\r\n* These synthetic logging pods are created with a no-restart policy and the test waits until they successfully terminate. This allows us to make sure we collect all the log lines for a pod that has been terminated.\r\n* Elasticsearch is queried for all the log lines from each node using the tag string by making a REST call using the proxy call mechanism.\r\n* The test checks to make sure the expected number of log lines are received.\r\n* The test makes sure exactly one occurrence of each log line from each node in the cluster is observed.\r\n* Several attempts are made to make sure all the log lines observed and if not then failure is declared by indicating the number of missing log lines.\r\n* The test is written to allow many parallel invocations of the test by using unique resource names.\r\n\r\nPeople who may be interested: @a-robinson @piosz @mr-salty @filbranden @zmerlynn @ixdy @thockin @brendandburns @dchen1107  @lavalamp @roberthbailey\r\n\r\nThis is certainly a first cut and I have many improvements planned (e.g. proper Go structs with JSON tags for unmarshalling the responses from Elasticsearch). But those things can wait until later.\r\n\r\nThis test takes betwen 40s and 65s to run on my desktop machine.","created_at":"2015-03-10T22:30:58Z","updated_at":"2015-03-17T04:11:30Z","closed_at":null,"merged_at":null,"merge_commit_sha":"7d7ea23b22e2771c63c5bce4e55e5a35d2253f50","assignee":{"login":"a-robinson","id":7085343,"avatar_url":"https://avatars.githubusercontent.com/u/7085343?v=3","gravatar_id":"","url":"https://api.github.com/users/a-robinson","html_url":"https://github.com/a-robinson","followers_url":"https://api.github.com/users/a-robinson/followers","following_url":"https://api.github.com/users/a-robinson/following{/other_user}","gists_url":"https://api.github.com/users/a-robinson/gists{/gist_id}","starred_url":"https://api.github.com/users/a-robinson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/a-robinson/subscriptions","organizations_url":"https://api.github.com/users/a-robinson/orgs","repos_url":"https://api.github.com/users/a-robinson/repos","events_url":"https://api.github.com/users/a-robinson/events{/privacy}","received_events_url":"https://api.github.com/users/a-robinson/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/milestones/8","html_url":"https://github.com/GoogleCloudPlatform/kubernetes/milestones/Test%20Issue%20Fix-it","labels_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/milestones/8/labels","id":969320,"number":8,"title":"Test Issue Fix-it","description":"Issues we're targeting for a dedicated fix-it milestone.","creator":{"login":"goltermann","id":9358478,"avatar_url":"https://avatars.githubusercontent.com/u/9358478?v=3","gravatar_id":"","url":"https://api.github.com/users/goltermann","html_url":"https://github.com/goltermann","followers_url":"https://api.github.com/users/goltermann/followers","following_url":"https://api.github.com/users/goltermann/following{/other_user}","gists_url":"https://api.github.com/users/goltermann/gists{/gist_id}","starred_url":"https://api.github.com/users/goltermann/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/goltermann/subscriptions","organizations_url":"https://api.github.com/users/goltermann/orgs","repos_url":"https://api.github.com/users/goltermann/repos","events_url":"https://api.github.com/users/goltermann/events{/privacy}","received_events_url":"https://api.github.com/users/goltermann/received_events","type":"User","site_admin":false},"open_issues":5,"closed_issues":17,"state":"open","created_at":"2015-02-06T20:29:43Z","updated_at":"2015-03-16T20:08:08Z","due_on":"2015-02-19T08:00:00Z","closed_at":null},"commits_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/pulls/5269/commits","review_comments_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/pulls/5269/comments","review_comment_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/pulls/comments{/number}","comments_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/issues/5269/comments","statuses_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/statuses/9d5a52c8b26051f18b755ea70a5ef38185308ff4","head":{"label":"satnam6502:e2e_cluster_logging","ref":"e2e_cluster_logging","sha":"9d5a52c8b26051f18b755ea70a5ef38185308ff4","user":{"login":"satnam6502","id":6164339,"avatar_url":"https://avatars.githubusercontent.com/u/6164339?v=3","gravatar_id":"","url":"https://api.github.com/users/satnam6502","html_url":"https://github.com/satnam6502","followers_url":"https://api.github.com/users/satnam6502/followers","following_url":"https://api.github.com/users/satnam6502/following{/other_user}","gists_url":"https://api.github.com/users/satnam6502/gists{/gist_id}","starred_url":"https://api.github.com/users/satnam6502/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/satnam6502/subscriptions","organizations_url":"https://api.github.com/users/satnam6502/orgs","repos_url":"https://api.github.com/users/satnam6502/repos","events_url":"https://api.github.com/users/satnam6502/events{/privacy}","received_events_url":"https://api.github.com/users/satnam6502/received_events","type":"User","site_admin":false},"repo":{"id":23904068,"name":"kubernetes","full_name":"satnam6502/kubernetes","owner":{"login":"satnam6502","id":6164339,"avatar_url":"https://avatars.githubusercontent.com/u/6164339?v=3","gravatar_id":"","url":"https://api.github.com/users/satnam6502","html_url":"https://github.com/satnam6502","followers_url":"https://api.github.com/users/satnam6502/followers","following_url":"https://api.github.com/users/satnam6502/following{/other_user}","gists_url":"https://api.github.com/users/satnam6502/gists{/gist_id}","starred_url":"https://api.github.com/users/satnam6502/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/satnam6502/subscriptions","organizations_url":"https://api.github.com/users/satnam6502/orgs","repos_url":"https://api.github.com/users/satnam6502/repos","events_url":"https://api.github.com/users/satnam6502/events{/privacy}","received_events_url":"https://api.github.com/users/satnam6502/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/satnam6502/kubernetes","description":"Container Cluster Manager","fork":true,"url":"https://api.github.com/repos/satnam6502/kubernetes","forks_url":"https://api.github.com/repos/satnam6502/kubernetes/forks","keys_url":"https://api.github.com/repos/satnam6502/kubernetes/keys{/key_id}","collaborators_url":"https://api.github.com/repos/satnam6502/kubernetes/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/satnam6502/kubernetes/teams","hooks_url":"https://api.github.com/repos/satnam6502/kubernetes/hooks","issue_events_url":"https://api.github.com/repos/satnam6502/kubernetes/issues/events{/number}","events_url":"https://api.github.com/repos/satnam6502/kubernetes/events","assignees_url":"https://api.github.com/repos/satnam6502/kubernetes/assignees{/user}","branches_url":"https://api.github.com/repos/satnam6502/kubernetes/branches{/branch}","tags_url":"https://api.github.com/repos/satnam6502/kubernetes/tags","blobs_url":"https://api.github.com/repos/satnam6502/kubernetes/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/satnam6502/kubernetes/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/satnam6502/kubernetes/git/refs{/sha}","trees_url":"https://api.github.com/repos/satnam6502/kubernetes/git/trees{/sha}","statuses_url":"https://api.github.com/repos/satnam6502/kubernetes/statuses/{sha}","languages_url":"https://api.github.com/repos/satnam6502/kubernetes/languages","stargazers_url":"https://api.github.com/repos/satnam6502/kubernetes/stargazers","contributors_url":"https://api.github.com/repos/satnam6502/kubernetes/contributors","subscribers_url":"https://api.github.com/repos/satnam6502/kubernetes/subscribers","subscription_url":"https://api.github.com/repos/satnam6502/kubernetes/subscription","commits_url":"https://api.github.com/repos/satnam6502/kubernetes/commits{/sha}","git_commits_url":"https://api.github.com/repos/satnam6502/kubernetes/git/commits{/sha}","comments_url":"https://api.github.com/repos/satnam6502/kubernetes/comments{/number}","issue_comment_url":"https://api.github.com/repos/satnam6502/kubernetes/issues/comments{/number}","contents_url":"https://api.github.com/repos/satnam6502/kubernetes/contents/{+path}","compare_url":"https://api.github.com/repos/satnam6502/kubernetes/compare/{base}...{head}","merges_url":"https://api.github.com/repos/satnam6502/kubernetes/merges","archive_url":"https://api.github.com/repos/satnam6502/kubernetes/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/satnam6502/kubernetes/downloads","issues_url":"https://api.github.com/repos/satnam6502/kubernetes/issues{/number}","pulls_url":"https://api.github.com/repos/satnam6502/kubernetes/pulls{/number}","milestones_url":"https://api.github.com/repos/satnam6502/kubernetes/milestones{/number}","notifications_url":"https://api.github.com/repos/satnam6502/kubernetes/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/satnam6502/kubernetes/labels{/name}","releases_url":"https://api.github.com/repos/satnam6502/kubernetes/releases{/id}","created_at":"2014-09-11T04:27:10Z","updated_at":"2015-03-16T23:17:53Z","pushed_at":"2015-03-17T01:06:00Z","git_url":"git://github.com/satnam6502/kubernetes.git","ssh_url":"git@github.com:satnam6502/kubernetes.git","clone_url":"https://github.com/satnam6502/kubernetes.git","svn_url":"https://github.com/satnam6502/kubernetes","homepage":null,"size":37237,"stargazers_count":1,"watchers_count":1,"language":"Go","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":1,"default_branch":"master"}},"base":{"label":"GoogleCloudPlatform:master","ref":"master","sha":"c04ceec27f72350b0964e04096ae14c18bee865f","user":{"login":"GoogleCloudPlatform","id":2810941,"avatar_url":"https://avatars.githubusercontent.com/u/2810941?v=3","gravatar_id":"","url":"https://api.github.com/users/GoogleCloudPlatform","html_url":"https://github.com/GoogleCloudPlatform","followers_url":"https://api.github.com/users/GoogleCloudPlatform/followers","following_url":"https://api.github.com/users/GoogleCloudPlatform/following{/other_user}","gists_url":"https://api.github.com/users/GoogleCloudPlatform/gists{/gist_id}","starred_url":"https://api.github.com/users/GoogleCloudPlatform/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GoogleCloudPlatform/subscriptions","organizations_url":"https://api.github.com/users/GoogleCloudPlatform/orgs","repos_url":"https://api.github.com/users/GoogleCloudPlatform/repos","events_url":"https://api.github.com/users/GoogleCloudPlatform/events{/privacy}","received_events_url":"https://api.github.com/users/GoogleCloudPlatform/received_events","type":"Organization","site_admin":false},"repo":{"id":20580498,"name":"kubernetes","full_name":"GoogleCloudPlatform/kubernetes","owner":{"login":"GoogleCloudPlatform","id":2810941,"avatar_url":"https://avatars.githubusercontent.com/u/2810941?v=3","gravatar_id":"","url":"https://api.github.com/users/GoogleCloudPlatform","html_url":"https://github.com/GoogleCloudPlatform","followers_url":"https://api.github.com/users/GoogleCloudPlatform/followers","following_url":"https://api.github.com/users/GoogleCloudPlatform/following{/other_user}","gists_url":"https://api.github.com/users/GoogleCloudPlatform/gists{/gist_id}","starred_url":"https://api.github.com/users/GoogleCloudPlatform/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GoogleCloudPlatform/subscriptions","organizations_url":"https://api.github.com/users/GoogleCloudPlatform/orgs","repos_url":"https://api.github.com/users/GoogleCloudPlatform/repos","events_url":"https://api.github.com/users/GoogleCloudPlatform/events{/privacy}","received_events_url":"https://api.github.com/users/GoogleCloudPlatform/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/GoogleCloudPlatform/kubernetes","description":"Container Cluster Manager from Google","fork":false,"url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes","forks_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/forks","keys_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/keys{/key_id}","collaborators_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/teams","hooks_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/hooks","issue_events_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/issues/events{/number}","events_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/events","assignees_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/assignees{/user}","branches_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/branches{/branch}","tags_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/tags","blobs_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/git/refs{/sha}","trees_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/git/trees{/sha}","statuses_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/statuses/{sha}","languages_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/languages","stargazers_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/stargazers","contributors_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/contributors","subscribers_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/subscribers","subscription_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/subscription","commits_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/commits{/sha}","git_commits_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/git/commits{/sha}","comments_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/comments{/number}","issue_comment_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/issues/comments{/number}","contents_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/contents/{+path}","compare_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/compare/{base}...{head}","merges_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/merges","archive_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/downloads","issues_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/issues{/number}","pulls_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/pulls{/number}","milestones_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/milestones{/number}","notifications_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/labels{/name}","releases_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/releases{/id}","created_at":"2014-06-06T22:56:04Z","updated_at":"2015-03-17T03:32:55Z","pushed_at":"2015-03-17T00:14:57Z","git_url":"git://github.com/GoogleCloudPlatform/kubernetes.git","ssh_url":"git@github.com:GoogleCloudPlatform/kubernetes.git","clone_url":"https://github.com/GoogleCloudPlatform/kubernetes.git","svn_url":"https://github.com/GoogleCloudPlatform/kubernetes","homepage":"http://kubernetes.io","size":105208,"stargazers_count":6610,"watchers_count":6610,"language":"Go","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":1219,"mirror_url":null,"open_issues_count":755,"forks":1219,"open_issues":755,"watchers":6610,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/pulls/5269"},"html":{"href":"https://github.com/GoogleCloudPlatform/kubernetes/pull/5269"},"issue":{"href":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/issues/5269"},"comments":{"href":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/issues/5269/comments"},"review_comments":{"href":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/pulls/5269/comments"},"review_comment":{"href":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/pulls/5269/commits"},"statuses":{"href":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/statuses/9d5a52c8b26051f18b755ea70a5ef38185308ff4"}}}}