{"action":"created","comment":{"url":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/pulls/comments/53875268","id":53875268,"diff_hunk":"@@ -0,0 +1,196 @@\n+// Copyright 2015-2016, Google, Inc.\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+'use strict';\n+\n+var assert = require('assert');\n+var request = require('supertest');\n+var proxyquire = require('proxyquire').noPreserveCache();\n+var stubs = {};\n+\n+describe('crud.js', function () {\n+  describe('/books', function () {\n+    var id;\n+\n+    // setup a book\n+    before(function (done) {\n+      request(proxyquire('../app', stubs))\n+        .post('/api/books')\n+        .send({ title: 'my book' })\n+        .expect(200)\n+        .expect(function (response) {\n+          id = response.body.id;\n+          assert.ok(response.body.id);\n+          assert.equal(response.body.title, 'my book');\n+        })\n+        .end(done);\n+    });\n+\n+    it('should show a list of books', function (done) {\n+      var expected = '<div class=\"media-body\"><h4>my book</h4><p></p></div>';\n+      request(proxyquire('../app', stubs))\n+        .get('/books')\n+        .expect(200)\n+        .expect(function (response) {\n+          assert.ok(response.text.indexOf(expected) !== -1);\n+        })\n+        .end(done);\n+    });\n+\n+    it('should handle error', function (done) {\n+      var expected = 'Bad Request';\n+      if (process.version.indexOf('v0.10') !== -1) {\n+        expected = 'Error during request.';\n+      }\n+      if (require('../config')().dataBackend === 'cloudsql') {\n+        expected = 'ER_SP_UNDECLARED_VAR: Undeclared variable: NaN';\n+      }\n+      request(proxyquire('../app', stubs))\n+        .get('/books')\n+        .query({ pageToken: 'badrequest' })\n+        .expect(500)\n+        .expect(function (response) {\n+          assert.ok(response.text.indexOf(expected) !== -1);\n+        })\n+        .end(done);\n+    });\n+\n+    // delete the book\n+    after(function (done) {\n+      if (id) {\n+        request(proxyquire('../app', stubs))\n+          .delete('/api/books/' + id)\n+          .expect(200)\n+          .end(done);\n+      } else {\n+        done();\n+      }\n+    });\n+  });\n+\n+  describe('/books/add', function () {\n+    var id;\n+\n+    it('should post to add book form', function (done) {\n+      request(proxyquire('../app', stubs))\n+        .post('/books/add')\n+        .send('title=my%20book')\n+        .expect(302)\n+        .expect(function (response) {\n+          var location = response.headers.location;\n+          id = parseInt(location.replace('/books/', ''), 10);\n+          assert.ok(response.text.indexOf('Redirecting to /books/') !== -1);\n+        })\n+        .end(done);\n+    });\n+\n+    it('should show add book form', function (done) {\n+      request(proxyquire('../app', stubs))\n+        .get('/books/add')\n+        .expect(200)\n+        .expect(function (response) {\n+          assert.ok(response.text.indexOf('Add book') !== -1);\n+        })\n+        .end(done);\n+    });\n+\n+    // delete the book\n+    after(function (done) {\n+      if (id) {\n+        request(proxyquire('../app', stubs))\n+          .delete('/api/books/' + id)\n+          .expect(200)\n+          .end(done);\n+      } else {\n+        done();\n+      }\n+    });\n+  });\n+\n+  describe('/books/:book/edit & /books/:book', function () {\n+    var id;\n+\n+    // setup a book\n+    before(function (done) {\n+      request(proxyquire('../app', stubs))\n+        .post('/api/books')\n+        .send({ title: 'my book' })\n+        .expect(200)\n+        .expect(function (response) {\n+          id = response.body.id;\n+          assert.ok(response.body.id);\n+          assert.equal(response.body.title, 'my book');\n+        })\n+        .end(done);\n+    });\n+\n+    it('should update a book', function (done) {\n+      var expected = 'Redirecting to /books/' + id;\n+      request(proxyquire('../app', stubs))\n+        .post('/books/' + id + '/edit')\n+        .send('title=my%20other%20book')","path":"2-structured-data/test/crud.test.js","position":141,"original_position":141,"commit_id":"96b5d10b15af68d52e037ead9ca0e40e4295b258","original_commit_id":"96b5d10b15af68d52e037ead9ca0e40e4295b258","user":{"login":"jmdobry","id":1213510,"avatar_url":"https://avatars.githubusercontent.com/u/1213510?v=3","gravatar_id":"","url":"https://api.github.com/users/jmdobry","html_url":"https://github.com/jmdobry","followers_url":"https://api.github.com/users/jmdobry/followers","following_url":"https://api.github.com/users/jmdobry/following{/other_user}","gists_url":"https://api.github.com/users/jmdobry/gists{/gist_id}","starred_url":"https://api.github.com/users/jmdobry/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jmdobry/subscriptions","organizations_url":"https://api.github.com/users/jmdobry/orgs","repos_url":"https://api.github.com/users/jmdobry/repos","events_url":"https://api.github.com/users/jmdobry/events{/privacy}","received_events_url":"https://api.github.com/users/jmdobry/received_events","type":"User","site_admin":false},"body":"I believe the test is slightly different in step 2 because step 2 itself uses different form parser middleware than the rest of the steps. I'm not sure why.","created_at":"2016-02-24T00:24:20Z","updated_at":"2016-02-24T00:24:20Z","html_url":"https://github.com/GoogleCloudPlatform/nodejs-getting-started/pull/43#discussion_r53875268","pull_request_url":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/pulls/43","_links":{"self":{"href":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/pulls/comments/53875268"},"html":{"href":"https://github.com/GoogleCloudPlatform/nodejs-getting-started/pull/43#discussion_r53875268"},"pull_request":{"href":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/pulls/43"}}},"pull_request":{"url":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/pulls/43","id":59214094,"html_url":"https://github.com/GoogleCloudPlatform/nodejs-getting-started/pull/43","diff_url":"https://github.com/GoogleCloudPlatform/nodejs-getting-started/pull/43.diff","patch_url":"https://github.com/GoogleCloudPlatform/nodejs-getting-started/pull/43.patch","issue_url":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/issues/43","number":43,"state":"open","locked":false,"title":"Re-organized tests. Added more tests.","user":{"login":"jmdobry","id":1213510,"avatar_url":"https://avatars.githubusercontent.com/u/1213510?v=3","gravatar_id":"","url":"https://api.github.com/users/jmdobry","html_url":"https://github.com/jmdobry","followers_url":"https://api.github.com/users/jmdobry/followers","following_url":"https://api.github.com/users/jmdobry/following{/other_user}","gists_url":"https://api.github.com/users/jmdobry/gists{/gist_id}","starred_url":"https://api.github.com/users/jmdobry/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jmdobry/subscriptions","organizations_url":"https://api.github.com/users/jmdobry/orgs","repos_url":"https://api.github.com/users/jmdobry/repos","events_url":"https://api.github.com/users/jmdobry/events{/privacy}","received_events_url":"https://api.github.com/users/jmdobry/received_events","type":"User","site_admin":false},"body":"","created_at":"2016-02-12T18:48:09Z","updated_at":"2016-02-24T00:24:20Z","closed_at":null,"merged_at":null,"merge_commit_sha":"c403eee6073b315b348664a731f214d78c3426ed","assignee":{"login":"jsimonweb","id":2709164,"avatar_url":"https://avatars.githubusercontent.com/u/2709164?v=3","gravatar_id":"","url":"https://api.github.com/users/jsimonweb","html_url":"https://github.com/jsimonweb","followers_url":"https://api.github.com/users/jsimonweb/followers","following_url":"https://api.github.com/users/jsimonweb/following{/other_user}","gists_url":"https://api.github.com/users/jsimonweb/gists{/gist_id}","starred_url":"https://api.github.com/users/jsimonweb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jsimonweb/subscriptions","organizations_url":"https://api.github.com/users/jsimonweb/orgs","repos_url":"https://api.github.com/users/jsimonweb/repos","events_url":"https://api.github.com/users/jsimonweb/events{/privacy}","received_events_url":"https://api.github.com/users/jsimonweb/received_events","type":"User","site_admin":false},"milestone":null,"commits_url":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/pulls/43/commits","review_comments_url":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/pulls/43/comments","review_comment_url":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/pulls/comments{/number}","comments_url":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/issues/43/comments","statuses_url":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/statuses/96b5d10b15af68d52e037ead9ca0e40e4295b258","head":{"label":"GoogleCloudPlatform:tests","ref":"tests","sha":"96b5d10b15af68d52e037ead9ca0e40e4295b258","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":35293089,"name":"nodejs-getting-started","full_name":"GoogleCloudPlatform/nodejs-getting-started","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/nodejs-getting-started","description":"A tutorial for creating a complete application using Node.js on Google Cloud Platform","fork":false,"url":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started","forks_url":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/forks","keys_url":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/keys{/key_id}","collaborators_url":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/teams","hooks_url":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/hooks","issue_events_url":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/issues/events{/number}","events_url":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/events","assignees_url":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/assignees{/user}","branches_url":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/branches{/branch}","tags_url":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/tags","blobs_url":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/git/refs{/sha}","trees_url":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/git/trees{/sha}","statuses_url":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/statuses/{sha}","languages_url":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/languages","stargazers_url":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/stargazers","contributors_url":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/contributors","subscribers_url":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/subscribers","subscription_url":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/subscription","commits_url":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/commits{/sha}","git_commits_url":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/git/commits{/sha}","comments_url":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/comments{/number}","issue_comment_url":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/issues/comments{/number}","contents_url":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/contents/{+path}","compare_url":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/compare/{base}...{head}","merges_url":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/merges","archive_url":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/downloads","issues_url":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/issues{/number}","pulls_url":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/pulls{/number}","milestones_url":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/milestones{/number}","notifications_url":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/labels{/name}","releases_url":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/releases{/id}","deployments_url":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/deployments","created_at":"2015-05-08T17:41:34Z","updated_at":"2016-02-22T16:16:58Z","pushed_at":"2016-02-23T20:10:10Z","git_url":"git://github.com/GoogleCloudPlatform/nodejs-getting-started.git","ssh_url":"git@github.com:GoogleCloudPlatform/nodejs-getting-started.git","clone_url":"https://github.com/GoogleCloudPlatform/nodejs-getting-started.git","svn_url":"https://github.com/GoogleCloudPlatform/nodejs-getting-started","homepage":"https://cloud.google.com/nodejs","size":260,"stargazers_count":76,"watchers_count":76,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":44,"mirror_url":null,"open_issues_count":2,"forks":44,"open_issues":2,"watchers":76,"default_branch":"master"}},"base":{"label":"GoogleCloudPlatform:master","ref":"master","sha":"54f4f6e537b06e43609eb079eb8090ffc2ecbe83","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":35293089,"name":"nodejs-getting-started","full_name":"GoogleCloudPlatform/nodejs-getting-started","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/nodejs-getting-started","description":"A tutorial for creating a complete application using Node.js on Google Cloud Platform","fork":false,"url":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started","forks_url":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/forks","keys_url":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/keys{/key_id}","collaborators_url":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/teams","hooks_url":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/hooks","issue_events_url":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/issues/events{/number}","events_url":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/events","assignees_url":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/assignees{/user}","branches_url":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/branches{/branch}","tags_url":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/tags","blobs_url":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/git/refs{/sha}","trees_url":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/git/trees{/sha}","statuses_url":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/statuses/{sha}","languages_url":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/languages","stargazers_url":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/stargazers","contributors_url":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/contributors","subscribers_url":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/subscribers","subscription_url":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/subscription","commits_url":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/commits{/sha}","git_commits_url":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/git/commits{/sha}","comments_url":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/comments{/number}","issue_comment_url":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/issues/comments{/number}","contents_url":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/contents/{+path}","compare_url":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/compare/{base}...{head}","merges_url":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/merges","archive_url":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/downloads","issues_url":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/issues{/number}","pulls_url":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/pulls{/number}","milestones_url":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/milestones{/number}","notifications_url":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/labels{/name}","releases_url":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/releases{/id}","deployments_url":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/deployments","created_at":"2015-05-08T17:41:34Z","updated_at":"2016-02-22T16:16:58Z","pushed_at":"2016-02-23T20:10:10Z","git_url":"git://github.com/GoogleCloudPlatform/nodejs-getting-started.git","ssh_url":"git@github.com:GoogleCloudPlatform/nodejs-getting-started.git","clone_url":"https://github.com/GoogleCloudPlatform/nodejs-getting-started.git","svn_url":"https://github.com/GoogleCloudPlatform/nodejs-getting-started","homepage":"https://cloud.google.com/nodejs","size":260,"stargazers_count":76,"watchers_count":76,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":44,"mirror_url":null,"open_issues_count":2,"forks":44,"open_issues":2,"watchers":76,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/pulls/43"},"html":{"href":"https://github.com/GoogleCloudPlatform/nodejs-getting-started/pull/43"},"issue":{"href":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/issues/43"},"comments":{"href":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/issues/43/comments"},"review_comments":{"href":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/pulls/43/comments"},"review_comment":{"href":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/pulls/43/commits"},"statuses":{"href":"https://api.github.com/repos/GoogleCloudPlatform/nodejs-getting-started/statuses/96b5d10b15af68d52e037ead9ca0e40e4295b258"}}}}