{"action":"created","comment":{"url":"https://api.github.com/repos/sv-bootcamp/goober/pulls/comments/87549056","pull_request_review_id":8157617,"id":87549056,"diff_hunk":"@@ -0,0 +1,220 @@\n+import test from 'tape';\n+import AuthToken, {TOKEN_TYPE} from './../../../server/auth-token';\n+import AuthController from '../../../server/auth/controllers';\n+import {GRANT_TYPE} from '../../../server/auth/models';\n+import {FacebookManager, USER_TYPE} from '../../../server/users/models';\n+import {STATE, ENTITY} from '../../../server/key-utils';\n+import db, {clearDB} from '../../../server/database';\n+import bcrypt from '../../../server/bcrypt';\n+import httpMocks from 'node-mocks-http';\n+import config from 'config';\n+\n+test('refresh token', t => {\n+  const mockUser = {\n+    user: 'mockUserKey'\n+  };\n+  AuthToken.encode(TOKEN_TYPE.REFRESH, mockUser)\n+    .then((mockRefreshToken) => {\n+      const expected = {\n+        accessToken: {\n+          type: TOKEN_TYPE.ACCESS,\n+          user: mockUser.user\n+        },\n+        refreshToken: {\n+          type: TOKEN_TYPE.REFRESH,\n+          user: mockUser.user\n+        }\n+      };\n+      const req = httpMocks.createRequest({\n+        method: 'POST',\n+        url: '/users',\n+        body: {refreshToken: mockRefreshToken}\n+      });\n+      const res = httpMocks.createResponse();\n+\n+      AuthController.refreshToken(req, res, () => {\n+        const tokenSet = res._getData();\n+        const accessToken = AuthToken.decode(TOKEN_TYPE.ACCESS, tokenSet.accessToken);\n+        const refreshToken = AuthToken.decode(TOKEN_TYPE.REFRESH, tokenSet.refreshToken);\n+        Promise.all([accessToken, refreshToken])\n+        .then(decodedSet => {\n+          const decodedAccessToken = decodedSet[0];\n+          const decodedRefreshToken = decodedSet[1];\n+          t.equal(decodedAccessToken.type, expected.accessToken.type,\n+            'should be same token type');\n+          t.equal(decodedAccessToken.user, expected.accessToken.user,\n+            'should be same user');\n+          t.equal(decodedRefreshToken.type, expected.refreshToken.type,\n+            'should be same token type');\n+          t.equal(decodedRefreshToken.user, expected.refreshToken.user,\n+            'should be same user');\n+          t.end();\n+        })\n+        .catch(err => {\n+          t.fail(err);\n+          t.end();\n+        });\n+      });\n+    });\n+});\n+test('grant anonymous user in userController', t => {\n+  const mockUserSecret = 'userSecret';\n+  const mockUser = {\n+    key: 'userKey',\n+    type: USER_TYPE.ANONYMOUS\n+  };\n+  const mockUserIdxKey = `${ENTITY.USER}-${STATE.ALIVE}-${ENTITY.ANONYMOUS}-${mockUserSecret}`;\n+\n+  const expected = {\n+    accessToken: {\n+      type: TOKEN_TYPE.ACCESS,\n+      user: mockUser.key\n+    },\n+    refreshToken: {\n+      type: TOKEN_TYPE.REFRESH,\n+      user: mockUser.key\n+    }\n+  };\n+\n+  bcrypt.hash(mockUserSecret)\n+    .then(hash => {\n+      mockUser.secret = hash;\n+    })\n+    .then(clearDB)\n+    .then(() => {\n+      return new Promise((resolve, reject) => {\n+        db.put(mockUser.key, mockUser, err => {\n+          if (err) {\n+            return reject(err);\n+          }\n+          return resolve();\n+        });\n+      });\n+    })\n+    .then(() => {\n+      return new Promise((resolve, reject) => {\n+        db.put(mockUserIdxKey, {key: mockUser.key}, err => {\n+          if (err) {\n+            return reject(err);\n+          }\n+          return resolve();\n+        });\n+      });\n+    })\n+    .then(() => {\n+      const req = httpMocks.createRequest({\n+        method: 'POST',\n+        url: '/auth/grant',\n+        body: {\n+          grantType: GRANT_TYPE.ANONYMOUS,\n+          secret: mockUserSecret\n+        }\n+      });\n+      const res = httpMocks.createResponse();\n+      return AuthController.grant(req, res, (err) => {\n+        if (err) {\n+          return t.end(err);\n+        }\n+        const tokenSet = res._getData();\n+        const accessToken = AuthToken.decode(TOKEN_TYPE.ACCESS, tokenSet.accessToken);\n+        const refreshToken = AuthToken.decode(TOKEN_TYPE.REFRESH, tokenSet.refreshToken);\n+        return Promise.all([accessToken, refreshToken])\n+          .then(decodedSet => {\n+            const decodedAccessToken = decodedSet[0];\n+            const decodedRefreshToken = decodedSet[1];\n+            t.equal(decodedAccessToken.type, expected.accessToken.type,\n+              'should be same token type');\n+            t.equal(decodedAccessToken.user, expected.accessToken.user,\n+              'should be same user');\n+            t.equal(decodedRefreshToken.type, expected.refreshToken.type,\n+              'should be same token type');\n+            t.equal(decodedRefreshToken.user, expected.refreshToken.user,\n+              'should be same user');\n+            t.end();\n+          });\n+      });\n+    })\n+    .catch(err => {\n+      t.fail();\n+      t.end(err);\n+    });\n+});\n+test('grant facebook user in controller', t => {\n+  const mockUser = {\n+    key: 'userKey',\n+    type: USER_TYPE.FACEBOOK,\n+    facebookId: process.env.FACEBOOK_TEST_ID || config.FACEBOOK_TEST_ID\n+  };\n+  const mockUserIdxKey = `${ENTITY.USER}-${STATE.ALIVE}` +","path":"src/test/node/auth/controllers.js","position":148,"original_position":148,"commit_id":"7b1eb9bc56fa9507c55b64072fb6531c47f0eb68","original_commit_id":"fdc40679af7056f429bb502e45977151e639d309","user":{"login":"festinalente91","id":8946248,"avatar_url":"https://avatars.githubusercontent.com/u/8946248?v=3","gravatar_id":"","url":"https://api.github.com/users/festinalente91","html_url":"https://github.com/festinalente91","followers_url":"https://api.github.com/users/festinalente91/followers","following_url":"https://api.github.com/users/festinalente91/following{/other_user}","gists_url":"https://api.github.com/users/festinalente91/gists{/gist_id}","starred_url":"https://api.github.com/users/festinalente91/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/festinalente91/subscriptions","organizations_url":"https://api.github.com/users/festinalente91/orgs","repos_url":"https://api.github.com/users/festinalente91/repos","events_url":"https://api.github.com/users/festinalente91/events{/privacy}","received_events_url":"https://api.github.com/users/festinalente91/received_events","type":"User","site_admin":false},"body":"@ovekyc special thanks to lint error :)","created_at":"2016-11-11T07:48:21Z","updated_at":"2016-11-11T07:48:21Z","html_url":"https://github.com/sv-bootcamp/goober/pull/100#discussion_r87549056","pull_request_url":"https://api.github.com/repos/sv-bootcamp/goober/pulls/100","_links":{"self":{"href":"https://api.github.com/repos/sv-bootcamp/goober/pulls/comments/87549056"},"html":{"href":"https://github.com/sv-bootcamp/goober/pull/100#discussion_r87549056"},"pull_request":{"href":"https://api.github.com/repos/sv-bootcamp/goober/pulls/100"}}},"pull_request":{"url":"https://api.github.com/repos/sv-bootcamp/goober/pulls/100","id":92112631,"html_url":"https://github.com/sv-bootcamp/goober/pull/100","diff_url":"https://github.com/sv-bootcamp/goober/pull/100.diff","patch_url":"https://github.com/sv-bootcamp/goober/pull/100.patch","issue_url":"https://api.github.com/repos/sv-bootcamp/goober/issues/100","number":100,"state":"open","locked":false,"title":"Auth/signup","user":{"login":"festinalente91","id":8946248,"avatar_url":"https://avatars.githubusercontent.com/u/8946248?v=3","gravatar_id":"","url":"https://api.github.com/users/festinalente91","html_url":"https://github.com/festinalente91","followers_url":"https://api.github.com/users/festinalente91/followers","following_url":"https://api.github.com/users/festinalente91/following{/other_user}","gists_url":"https://api.github.com/users/festinalente91/gists{/gist_id}","starred_url":"https://api.github.com/users/festinalente91/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/festinalente91/subscriptions","organizations_url":"https://api.github.com/users/festinalente91/orgs","repos_url":"https://api.github.com/users/festinalente91/repos","events_url":"https://api.github.com/users/festinalente91/events{/privacy}","received_events_url":"https://api.github.com/users/festinalente91/received_events","type":"User","site_admin":false},"body":"* This is on going pull request, but for the sharing temperary requested.\r\n- updated JWT token\r\n- added generating token, refreshing token.\r\n- added signup\r\n- added authentication. About to use check token validation before use api","created_at":"2016-11-03T08:46:19Z","updated_at":"2016-11-11T07:48:21Z","closed_at":null,"merged_at":null,"merge_commit_sha":"bb14d027058411f6938f3787f17e48fd086ad530","assignee":{"login":"fguy","id":1557628,"avatar_url":"https://avatars.githubusercontent.com/u/1557628?v=3","gravatar_id":"","url":"https://api.github.com/users/fguy","html_url":"https://github.com/fguy","followers_url":"https://api.github.com/users/fguy/followers","following_url":"https://api.github.com/users/fguy/following{/other_user}","gists_url":"https://api.github.com/users/fguy/gists{/gist_id}","starred_url":"https://api.github.com/users/fguy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fguy/subscriptions","organizations_url":"https://api.github.com/users/fguy/orgs","repos_url":"https://api.github.com/users/fguy/repos","events_url":"https://api.github.com/users/fguy/events{/privacy}","received_events_url":"https://api.github.com/users/fguy/received_events","type":"User","site_admin":false},"assignees":[{"login":"fguy","id":1557628,"avatar_url":"https://avatars.githubusercontent.com/u/1557628?v=3","gravatar_id":"","url":"https://api.github.com/users/fguy","html_url":"https://github.com/fguy","followers_url":"https://api.github.com/users/fguy/followers","following_url":"https://api.github.com/users/fguy/following{/other_user}","gists_url":"https://api.github.com/users/fguy/gists{/gist_id}","starred_url":"https://api.github.com/users/fguy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fguy/subscriptions","organizations_url":"https://api.github.com/users/fguy/orgs","repos_url":"https://api.github.com/users/fguy/repos","events_url":"https://api.github.com/users/fguy/events{/privacy}","received_events_url":"https://api.github.com/users/fguy/received_events","type":"User","site_admin":false},{"login":"festinalente91","id":8946248,"avatar_url":"https://avatars.githubusercontent.com/u/8946248?v=3","gravatar_id":"","url":"https://api.github.com/users/festinalente91","html_url":"https://github.com/festinalente91","followers_url":"https://api.github.com/users/festinalente91/followers","following_url":"https://api.github.com/users/festinalente91/following{/other_user}","gists_url":"https://api.github.com/users/festinalente91/gists{/gist_id}","starred_url":"https://api.github.com/users/festinalente91/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/festinalente91/subscriptions","organizations_url":"https://api.github.com/users/festinalente91/orgs","repos_url":"https://api.github.com/users/festinalente91/repos","events_url":"https://api.github.com/users/festinalente91/events{/privacy}","received_events_url":"https://api.github.com/users/festinalente91/received_events","type":"User","site_admin":false},{"login":"lyw0149","id":10323205,"avatar_url":"https://avatars.githubusercontent.com/u/10323205?v=3","gravatar_id":"","url":"https://api.github.com/users/lyw0149","html_url":"https://github.com/lyw0149","followers_url":"https://api.github.com/users/lyw0149/followers","following_url":"https://api.github.com/users/lyw0149/following{/other_user}","gists_url":"https://api.github.com/users/lyw0149/gists{/gist_id}","starred_url":"https://api.github.com/users/lyw0149/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lyw0149/subscriptions","organizations_url":"https://api.github.com/users/lyw0149/orgs","repos_url":"https://api.github.com/users/lyw0149/repos","events_url":"https://api.github.com/users/lyw0149/events{/privacy}","received_events_url":"https://api.github.com/users/lyw0149/received_events","type":"User","site_admin":false},{"login":"ovekyc","id":13380251,"avatar_url":"https://avatars.githubusercontent.com/u/13380251?v=3","gravatar_id":"","url":"https://api.github.com/users/ovekyc","html_url":"https://github.com/ovekyc","followers_url":"https://api.github.com/users/ovekyc/followers","following_url":"https://api.github.com/users/ovekyc/following{/other_user}","gists_url":"https://api.github.com/users/ovekyc/gists{/gist_id}","starred_url":"https://api.github.com/users/ovekyc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ovekyc/subscriptions","organizations_url":"https://api.github.com/users/ovekyc/orgs","repos_url":"https://api.github.com/users/ovekyc/repos","events_url":"https://api.github.com/users/ovekyc/events{/privacy}","received_events_url":"https://api.github.com/users/ovekyc/received_events","type":"User","site_admin":false},{"login":"ochanje210","id":16204807,"avatar_url":"https://avatars.githubusercontent.com/u/16204807?v=3","gravatar_id":"","url":"https://api.github.com/users/ochanje210","html_url":"https://github.com/ochanje210","followers_url":"https://api.github.com/users/ochanje210/followers","following_url":"https://api.github.com/users/ochanje210/following{/other_user}","gists_url":"https://api.github.com/users/ochanje210/gists{/gist_id}","starred_url":"https://api.github.com/users/ochanje210/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ochanje210/subscriptions","organizations_url":"https://api.github.com/users/ochanje210/orgs","repos_url":"https://api.github.com/users/ochanje210/repos","events_url":"https://api.github.com/users/ochanje210/events{/privacy}","received_events_url":"https://api.github.com/users/ochanje210/received_events","type":"User","site_admin":false},{"login":"shberry16","id":20808444,"avatar_url":"https://avatars.githubusercontent.com/u/20808444?v=3","gravatar_id":"","url":"https://api.github.com/users/shberry16","html_url":"https://github.com/shberry16","followers_url":"https://api.github.com/users/shberry16/followers","following_url":"https://api.github.com/users/shberry16/following{/other_user}","gists_url":"https://api.github.com/users/shberry16/gists{/gist_id}","starred_url":"https://api.github.com/users/shberry16/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/shberry16/subscriptions","organizations_url":"https://api.github.com/users/shberry16/orgs","repos_url":"https://api.github.com/users/shberry16/repos","events_url":"https://api.github.com/users/shberry16/events{/privacy}","received_events_url":"https://api.github.com/users/shberry16/received_events","type":"User","site_admin":false},{"login":"HewonJeong","id":20923534,"avatar_url":"https://avatars.githubusercontent.com/u/20923534?v=3","gravatar_id":"","url":"https://api.github.com/users/HewonJeong","html_url":"https://github.com/HewonJeong","followers_url":"https://api.github.com/users/HewonJeong/followers","following_url":"https://api.github.com/users/HewonJeong/following{/other_user}","gists_url":"https://api.github.com/users/HewonJeong/gists{/gist_id}","starred_url":"https://api.github.com/users/HewonJeong/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/HewonJeong/subscriptions","organizations_url":"https://api.github.com/users/HewonJeong/orgs","repos_url":"https://api.github.com/users/HewonJeong/repos","events_url":"https://api.github.com/users/HewonJeong/events{/privacy}","received_events_url":"https://api.github.com/users/HewonJeong/received_events","type":"User","site_admin":false}],"milestone":null,"commits_url":"https://api.github.com/repos/sv-bootcamp/goober/pulls/100/commits","review_comments_url":"https://api.github.com/repos/sv-bootcamp/goober/pulls/100/comments","review_comment_url":"https://api.github.com/repos/sv-bootcamp/goober/pulls/comments{/number}","comments_url":"https://api.github.com/repos/sv-bootcamp/goober/issues/100/comments","statuses_url":"https://api.github.com/repos/sv-bootcamp/goober/statuses/7b1eb9bc56fa9507c55b64072fb6531c47f0eb68","head":{"label":"sv-bootcamp:auth/signup","ref":"auth/signup","sha":"7b1eb9bc56fa9507c55b64072fb6531c47f0eb68","user":{"login":"sv-bootcamp","id":20648483,"avatar_url":"https://avatars.githubusercontent.com/u/20648483?v=3","gravatar_id":"","url":"https://api.github.com/users/sv-bootcamp","html_url":"https://github.com/sv-bootcamp","followers_url":"https://api.github.com/users/sv-bootcamp/followers","following_url":"https://api.github.com/users/sv-bootcamp/following{/other_user}","gists_url":"https://api.github.com/users/sv-bootcamp/gists{/gist_id}","starred_url":"https://api.github.com/users/sv-bootcamp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sv-bootcamp/subscriptions","organizations_url":"https://api.github.com/users/sv-bootcamp/orgs","repos_url":"https://api.github.com/users/sv-bootcamp/repos","events_url":"https://api.github.com/users/sv-bootcamp/events{/privacy}","received_events_url":"https://api.github.com/users/sv-bootcamp/received_events","type":"Organization","site_admin":false},"repo":{"id":66620161,"name":"goober","full_name":"sv-bootcamp/goober","owner":{"login":"sv-bootcamp","id":20648483,"avatar_url":"https://avatars.githubusercontent.com/u/20648483?v=3","gravatar_id":"","url":"https://api.github.com/users/sv-bootcamp","html_url":"https://github.com/sv-bootcamp","followers_url":"https://api.github.com/users/sv-bootcamp/followers","following_url":"https://api.github.com/users/sv-bootcamp/following{/other_user}","gists_url":"https://api.github.com/users/sv-bootcamp/gists{/gist_id}","starred_url":"https://api.github.com/users/sv-bootcamp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sv-bootcamp/subscriptions","organizations_url":"https://api.github.com/users/sv-bootcamp/orgs","repos_url":"https://api.github.com/users/sv-bootcamp/repos","events_url":"https://api.github.com/users/sv-bootcamp/events{/privacy}","received_events_url":"https://api.github.com/users/sv-bootcamp/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/sv-bootcamp/goober","description":null,"fork":false,"url":"https://api.github.com/repos/sv-bootcamp/goober","forks_url":"https://api.github.com/repos/sv-bootcamp/goober/forks","keys_url":"https://api.github.com/repos/sv-bootcamp/goober/keys{/key_id}","collaborators_url":"https://api.github.com/repos/sv-bootcamp/goober/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/sv-bootcamp/goober/teams","hooks_url":"https://api.github.com/repos/sv-bootcamp/goober/hooks","issue_events_url":"https://api.github.com/repos/sv-bootcamp/goober/issues/events{/number}","events_url":"https://api.github.com/repos/sv-bootcamp/goober/events","assignees_url":"https://api.github.com/repos/sv-bootcamp/goober/assignees{/user}","branches_url":"https://api.github.com/repos/sv-bootcamp/goober/branches{/branch}","tags_url":"https://api.github.com/repos/sv-bootcamp/goober/tags","blobs_url":"https://api.github.com/repos/sv-bootcamp/goober/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/sv-bootcamp/goober/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/sv-bootcamp/goober/git/refs{/sha}","trees_url":"https://api.github.com/repos/sv-bootcamp/goober/git/trees{/sha}","statuses_url":"https://api.github.com/repos/sv-bootcamp/goober/statuses/{sha}","languages_url":"https://api.github.com/repos/sv-bootcamp/goober/languages","stargazers_url":"https://api.github.com/repos/sv-bootcamp/goober/stargazers","contributors_url":"https://api.github.com/repos/sv-bootcamp/goober/contributors","subscribers_url":"https://api.github.com/repos/sv-bootcamp/goober/subscribers","subscription_url":"https://api.github.com/repos/sv-bootcamp/goober/subscription","commits_url":"https://api.github.com/repos/sv-bootcamp/goober/commits{/sha}","git_commits_url":"https://api.github.com/repos/sv-bootcamp/goober/git/commits{/sha}","comments_url":"https://api.github.com/repos/sv-bootcamp/goober/comments{/number}","issue_comment_url":"https://api.github.com/repos/sv-bootcamp/goober/issues/comments{/number}","contents_url":"https://api.github.com/repos/sv-bootcamp/goober/contents/{+path}","compare_url":"https://api.github.com/repos/sv-bootcamp/goober/compare/{base}...{head}","merges_url":"https://api.github.com/repos/sv-bootcamp/goober/merges","archive_url":"https://api.github.com/repos/sv-bootcamp/goober/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/sv-bootcamp/goober/downloads","issues_url":"https://api.github.com/repos/sv-bootcamp/goober/issues{/number}","pulls_url":"https://api.github.com/repos/sv-bootcamp/goober/pulls{/number}","milestones_url":"https://api.github.com/repos/sv-bootcamp/goober/milestones{/number}","notifications_url":"https://api.github.com/repos/sv-bootcamp/goober/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/sv-bootcamp/goober/labels{/name}","releases_url":"https://api.github.com/repos/sv-bootcamp/goober/releases{/id}","deployments_url":"https://api.github.com/repos/sv-bootcamp/goober/deployments","created_at":"2016-08-26T05:47:45Z","updated_at":"2016-11-07T00:54:37Z","pushed_at":"2016-11-11T07:23:42Z","git_url":"git://github.com/sv-bootcamp/goober.git","ssh_url":"git@github.com:sv-bootcamp/goober.git","clone_url":"https://github.com/sv-bootcamp/goober.git","svn_url":"https://github.com/sv-bootcamp/goober","homepage":null,"size":561,"stargazers_count":3,"watchers_count":3,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":4,"forks":0,"open_issues":4,"watchers":3,"default_branch":"master"}},"base":{"label":"sv-bootcamp:master","ref":"master","sha":"e750530631ccfa2f222602980c77fbe54b102fd1","user":{"login":"sv-bootcamp","id":20648483,"avatar_url":"https://avatars.githubusercontent.com/u/20648483?v=3","gravatar_id":"","url":"https://api.github.com/users/sv-bootcamp","html_url":"https://github.com/sv-bootcamp","followers_url":"https://api.github.com/users/sv-bootcamp/followers","following_url":"https://api.github.com/users/sv-bootcamp/following{/other_user}","gists_url":"https://api.github.com/users/sv-bootcamp/gists{/gist_id}","starred_url":"https://api.github.com/users/sv-bootcamp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sv-bootcamp/subscriptions","organizations_url":"https://api.github.com/users/sv-bootcamp/orgs","repos_url":"https://api.github.com/users/sv-bootcamp/repos","events_url":"https://api.github.com/users/sv-bootcamp/events{/privacy}","received_events_url":"https://api.github.com/users/sv-bootcamp/received_events","type":"Organization","site_admin":false},"repo":{"id":66620161,"name":"goober","full_name":"sv-bootcamp/goober","owner":{"login":"sv-bootcamp","id":20648483,"avatar_url":"https://avatars.githubusercontent.com/u/20648483?v=3","gravatar_id":"","url":"https://api.github.com/users/sv-bootcamp","html_url":"https://github.com/sv-bootcamp","followers_url":"https://api.github.com/users/sv-bootcamp/followers","following_url":"https://api.github.com/users/sv-bootcamp/following{/other_user}","gists_url":"https://api.github.com/users/sv-bootcamp/gists{/gist_id}","starred_url":"https://api.github.com/users/sv-bootcamp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sv-bootcamp/subscriptions","organizations_url":"https://api.github.com/users/sv-bootcamp/orgs","repos_url":"https://api.github.com/users/sv-bootcamp/repos","events_url":"https://api.github.com/users/sv-bootcamp/events{/privacy}","received_events_url":"https://api.github.com/users/sv-bootcamp/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/sv-bootcamp/goober","description":null,"fork":false,"url":"https://api.github.com/repos/sv-bootcamp/goober","forks_url":"https://api.github.com/repos/sv-bootcamp/goober/forks","keys_url":"https://api.github.com/repos/sv-bootcamp/goober/keys{/key_id}","collaborators_url":"https://api.github.com/repos/sv-bootcamp/goober/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/sv-bootcamp/goober/teams","hooks_url":"https://api.github.com/repos/sv-bootcamp/goober/hooks","issue_events_url":"https://api.github.com/repos/sv-bootcamp/goober/issues/events{/number}","events_url":"https://api.github.com/repos/sv-bootcamp/goober/events","assignees_url":"https://api.github.com/repos/sv-bootcamp/goober/assignees{/user}","branches_url":"https://api.github.com/repos/sv-bootcamp/goober/branches{/branch}","tags_url":"https://api.github.com/repos/sv-bootcamp/goober/tags","blobs_url":"https://api.github.com/repos/sv-bootcamp/goober/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/sv-bootcamp/goober/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/sv-bootcamp/goober/git/refs{/sha}","trees_url":"https://api.github.com/repos/sv-bootcamp/goober/git/trees{/sha}","statuses_url":"https://api.github.com/repos/sv-bootcamp/goober/statuses/{sha}","languages_url":"https://api.github.com/repos/sv-bootcamp/goober/languages","stargazers_url":"https://api.github.com/repos/sv-bootcamp/goober/stargazers","contributors_url":"https://api.github.com/repos/sv-bootcamp/goober/contributors","subscribers_url":"https://api.github.com/repos/sv-bootcamp/goober/subscribers","subscription_url":"https://api.github.com/repos/sv-bootcamp/goober/subscription","commits_url":"https://api.github.com/repos/sv-bootcamp/goober/commits{/sha}","git_commits_url":"https://api.github.com/repos/sv-bootcamp/goober/git/commits{/sha}","comments_url":"https://api.github.com/repos/sv-bootcamp/goober/comments{/number}","issue_comment_url":"https://api.github.com/repos/sv-bootcamp/goober/issues/comments{/number}","contents_url":"https://api.github.com/repos/sv-bootcamp/goober/contents/{+path}","compare_url":"https://api.github.com/repos/sv-bootcamp/goober/compare/{base}...{head}","merges_url":"https://api.github.com/repos/sv-bootcamp/goober/merges","archive_url":"https://api.github.com/repos/sv-bootcamp/goober/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/sv-bootcamp/goober/downloads","issues_url":"https://api.github.com/repos/sv-bootcamp/goober/issues{/number}","pulls_url":"https://api.github.com/repos/sv-bootcamp/goober/pulls{/number}","milestones_url":"https://api.github.com/repos/sv-bootcamp/goober/milestones{/number}","notifications_url":"https://api.github.com/repos/sv-bootcamp/goober/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/sv-bootcamp/goober/labels{/name}","releases_url":"https://api.github.com/repos/sv-bootcamp/goober/releases{/id}","deployments_url":"https://api.github.com/repos/sv-bootcamp/goober/deployments","created_at":"2016-08-26T05:47:45Z","updated_at":"2016-11-07T00:54:37Z","pushed_at":"2016-11-11T07:23:42Z","git_url":"git://github.com/sv-bootcamp/goober.git","ssh_url":"git@github.com:sv-bootcamp/goober.git","clone_url":"https://github.com/sv-bootcamp/goober.git","svn_url":"https://github.com/sv-bootcamp/goober","homepage":null,"size":561,"stargazers_count":3,"watchers_count":3,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":4,"forks":0,"open_issues":4,"watchers":3,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/sv-bootcamp/goober/pulls/100"},"html":{"href":"https://github.com/sv-bootcamp/goober/pull/100"},"issue":{"href":"https://api.github.com/repos/sv-bootcamp/goober/issues/100"},"comments":{"href":"https://api.github.com/repos/sv-bootcamp/goober/issues/100/comments"},"review_comments":{"href":"https://api.github.com/repos/sv-bootcamp/goober/pulls/100/comments"},"review_comment":{"href":"https://api.github.com/repos/sv-bootcamp/goober/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/sv-bootcamp/goober/pulls/100/commits"},"statuses":{"href":"https://api.github.com/repos/sv-bootcamp/goober/statuses/7b1eb9bc56fa9507c55b64072fb6531c47f0eb68"}}}}
{"actor":{"display_login":"festinalente91"}}