{"action":"created","comment":{"url":"https://api.github.com/repos/RocketChat/Rocket.Chat/pulls/comments/107167730","pull_request_review_id":28122597,"id":107167730,"diff_hunk":"@@ -0,0 +1,152 @@\n+class GoogleVision {\n+\tconstructor() {\n+\t\tthis.storage = Npm.require('@google-cloud/storage');\n+\t\tthis.vision = Npm.require('@google-cloud/vision');\n+\t\tthis.storageClient = {};\n+\t\tthis.visionClient = {};\n+\t\tthis.enabled = RocketChat.settings.get('GoogleVision_Enable');\n+\t\tthis.serviceAccount = {};\n+\t\tRocketChat.settings.get('GoogleVision_Enable', (key, value) => {\n+\t\t\tthis.enabled = value;\n+\t\t});\n+\t\tRocketChat.settings.get('GoogleVision_ServiceAccount', (key, value) => {\n+\t\t\ttry {\n+\t\t\t\tthis.serviceAccount = JSON.parse(value);\n+\t\t\t\tthis.storageClient = this.storage({ credentials: this.serviceAccount });\n+\t\t\t\tthis.visionClient = this.vision({ credentials: this.serviceAccount });\n+\t\t\t} catch (e) {\n+\t\t\t\tthis.serviceAccount = {};\n+\t\t\t}\n+\t\t});\n+\t\tRocketChat.settings.get('GoogleVision_Block_Adult_Images', (key, value) => {\n+\t\t\tif (value) {\n+\t\t\t\tRocketChat.callbacks.add('beforeSaveMessage', this.blockUnsafeImages.bind(this), RocketChat.callbacks.priority.MEDIUM, 'googlevision-blockunsafe');\n+\t\t\t} else {\n+\t\t\t\tRocketChat.callbacks.remove('beforeSaveMessage', 'googlevision-blockunsafe');\n+\t\t\t}\n+\t\t});\n+\t\tRocketChat.callbacks.add('afterFileUpload', this.annotate.bind(this));\n+\t}\n+\n+\tincCallCount(count) {\n+\t\tconst currentMonth = new Date().getMonth();\n+\t\tconst maxMonthlyCalls = RocketChat.settings.get('GoogleVision_Max_Monthly_Calls') || 0;\n+\t\tif (maxMonthlyCalls > 0) {\n+\t\t\tif (RocketChat.settings.get('GoogleVision_Current_Month') !== currentMonth) {\n+\t\t\t\tRocketChat.settings.set('GoogleVision_Current_Month', currentMonth);\n+\t\t\t\tif (count > maxMonthlyCalls) {\n+\t\t\t\t\treturn false;\n+\t\t\t\t}\n+\t\t\t} else if (count + (RocketChat.settings.get('GoogleVision_Current_Month_Calls') || 0) > maxMonthlyCalls) {\n+\t\t\t\treturn false;\n+\t\t\t}\n+\t\t}\n+\t\tRocketChat.models.Settings.update({ _id: 'GoogleVision_Current_Month_Calls' }, { $inc: { value: count } });\n+\t\treturn true;\n+\t}\n+\n+\tblockUnsafeImages(message) {\n+\t\tif (this.enabled && this.serviceAccount && message && message.file && message.file._id) {\n+\t\t\tconst file = RocketChat.models.Uploads.findOne({ _id: message.file._id });\n+\t\t\tif (file && file.type && file.type.indexOf('image') !== -1 && file.store === 'googleCloudStorage' && file.googleCloudStorage) {\n+\t\t\t\tif (this.incCallCount(1)) {\n+\t\t\t\t\tconst bucket = this.storageClient.bucket(file.googleCloudStorage.bucket);\n+\t\t\t\t\tconst bucketFile = bucket.file(`${file.googleCloudStorage.path}${file._id}`);\n+\t\t\t\t\tconst results = Meteor.wrapAsync(this.visionClient.detectSafeSearch, this.visionClient)(bucketFile);\n+\t\t\t\t\tif (results && results.adult === true) {\n+\t\t\t\t\t\tdelete message.attachments[0];\n+\t\t\t\t\t\tconst user = RocketChat.models.Users.findOneById(message.u && message.u._id);\n+\t\t\t\t\t\tif (user) {\n+\t\t\t\t\t\t\tRocketChat.Notifications.notifyUser(user._id, 'message', {\n+\t\t\t\t\t\t\t\t_id: Random.id(),\n+\t\t\t\t\t\t\t\trid: message.rid,\n+\t\t\t\t\t\t\t\tts: new Date,\n+\t\t\t\t\t\t\t\tmsg: TAPi18n.__('Adult_images_are_not_allowed', {}, user.language)\n+\t\t\t\t\t\t\t});\n+\t\t\t\t\t\t}\n+\t\t\t\t\t\tthrow new Error('GoogleVisionError: Image blocked');\n+\t\t\t\t\t}\n+\t\t\t\t} else {\n+\t\t\t\t\tconsole.log('Google Vision: Usage limit exceeded');\n+\t\t\t\t}\n+\t\t\t\treturn message;\n+\t\t\t}\n+\t\t}\n+\t}\n+\n+\tannotate({ message }) {\n+\t\tconst visionTypes = [];\n+\t\tif (RocketChat.settings.get('GoogleVision_Type_Document')) {\n+\t\t\tvisionTypes.push('document');\n+\t\t}\n+\t\tif (RocketChat.settings.get('GoogleVision_Type_Faces')) {\n+\t\t\tvisionTypes.push('faces');\n+\t\t}\n+\t\tif (RocketChat.settings.get('GoogleVision_Type_Landmarks')) {\n+\t\t\tvisionTypes.push('landmarks');\n+\t\t}\n+\t\tif (RocketChat.settings.get('GoogleVision_Type_Labels')) {\n+\t\t\tvisionTypes.push('labels');\n+\t\t}\n+\t\tif (RocketChat.settings.get('GoogleVision_Type_Logos')) {\n+\t\t\tvisionTypes.push('logos');\n+\t\t}\n+\t\tif (RocketChat.settings.get('GoogleVision_Type_Properties')) {\n+\t\t\tvisionTypes.push('properties');\n+\t\t}\n+\t\tif (RocketChat.settings.get('GoogleVision_Type_SafeSearch')) {\n+\t\t\tvisionTypes.push('safeSearch');\n+\t\t}\n+\t\tif (RocketChat.settings.get('GoogleVision_Type_Similar')) {\n+\t\t\tvisionTypes.push('similar');\n+\t\t}\n+\t\tif (this.enabled && this.serviceAccount && visionTypes.length > 0 && message.file && message.file._id) {\n+\t\t\tconst file = RocketChat.models.Uploads.findOne({ _id: message.file._id });\n+\t\t\tif (file && file.type && file.type.indexOf('image') !== -1 && file.store === 'googleCloudStorage' && file.googleCloudStorage) {\n+\t\t\t\tif (this.incCallCount(visionTypes.length)) {\n+\t\t\t\t\tconst bucket = this.storageClient.bucket(file.googleCloudStorage.bucket);\n+\t\t\t\t\tconst bucketFile = bucket.file(`${file.googleCloudStorage.path}${file._id}`);\n+\t\t\t\t\tthis.visionClient.detect(bucketFile, visionTypes, Meteor.bindEnvironment((error, results) => {\n+\t\t\t\t\t\tif (!error) {\n+\t\t\t\t\t\t\tRocketChat.models.Messages.setGoogleVisionData(message._id, this.getAnnotations(visionTypes, results));\n+\t\t\t\t\t\t} else {\n+\t\t\t\t\t\t\tconsole.trace('GoogleVision error: ', error.stack);\n+\t\t\t\t\t\t}\n+\t\t\t\t\t}));\n+\t\t\t\t} else {\n+\t\t\t\t\tconsole.log('Google Vision: Usage limit exceeded');\n+\t\t\t\t}\n+\t\t\t}\n+\t\t}\n+\t}\n+\n+\tgetAnnotations(visionTypes, visionData) {\n+\t\tif (visionTypes.length === 1) {\n+\t\t\t_visionData = {};\n+\t\t\t_visionData[`${visionTypes[0]}`] = visionData;\n+\t\t\tvisionData = _visionData;\n+\t\t}\n+\t\tconst results = {};\n+\t\tfor (const index in visionData) {\n+\t\t\tif (visionData.hasOwnProperty(index)) {\n+\t\t\t\tswitch (index) {\n+\t\t\t\t\tcase 'faces':\n+\t\t\t\t\tcase 'landmarks':\n+\t\t\t\t\tcase 'labels':\n+\t\t\t\t\tcase 'similar':\n+\t\t\t\t\tcase 'logos':\n+\t\t\t\t\t\tresults[index] = (results[index] || []).concat(visionData[index] || []);\n+\t\t\t\t\t\tbreak;\n+\t\t\t\t\tcase 'safeSearch':\n+\t\t\t\t\t\tresults['safeSearch'] = visionData['safeSearch'];\n+\t\t\t\t\tcase 'properties':","path":"packages/rocketchat-google-vision/server/googlevision.js","position":142,"original_position":142,"commit_id":"bbf59aed3c9ea6841881e577df62dab8cb024f1b","original_commit_id":"bbf59aed3c9ea6841881e577df62dab8cb024f1b","user":{"login":"codacy-bot","id":19940114,"avatar_url":"https://avatars2.githubusercontent.com/u/19940114?v=3","gravatar_id":"","url":"https://api.github.com/users/codacy-bot","html_url":"https://github.com/codacy-bot","followers_url":"https://api.github.com/users/codacy-bot/followers","following_url":"https://api.github.com/users/codacy-bot/following{/other_user}","gists_url":"https://api.github.com/users/codacy-bot/gists{/gist_id}","starred_url":"https://api.github.com/users/codacy-bot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/codacy-bot/subscriptions","organizations_url":"https://api.github.com/users/codacy-bot/orgs","repos_url":"https://api.github.com/users/codacy-bot/repos","events_url":"https://api.github.com/users/codacy-bot/events{/privacy}","received_events_url":"https://api.github.com/users/codacy-bot/received_events","type":"User","site_admin":false},"body":"![Codacy](https://www.codacy.com/assets/images/favicon.png) Issue found: [Expected a 'break' statement before 'case'. (no-fallthrough)](https://www.codacy.com/app/RocketChat/Rocket-Chat/pullRequest?prid=550657)","created_at":"2017-03-21T14:23:34Z","updated_at":"2017-03-21T14:23:34Z","html_url":"https://github.com/RocketChat/Rocket.Chat/pull/6301#discussion_r107167730","pull_request_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/pulls/6301","_links":{"self":{"href":"https://api.github.com/repos/RocketChat/Rocket.Chat/pulls/comments/107167730"},"html":{"href":"https://github.com/RocketChat/Rocket.Chat/pull/6301#discussion_r107167730"},"pull_request":{"href":"https://api.github.com/repos/RocketChat/Rocket.Chat/pulls/6301"}}},"pull_request":{"url":"https://api.github.com/repos/RocketChat/Rocket.Chat/pulls/6301","id":109803579,"html_url":"https://github.com/RocketChat/Rocket.Chat/pull/6301","diff_url":"https://github.com/RocketChat/Rocket.Chat/pull/6301.diff","patch_url":"https://github.com/RocketChat/Rocket.Chat/pull/6301.patch","issue_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/issues/6301","number":6301,"state":"open","locked":false,"title":"Google vision","user":{"login":"marceloschmidt","id":1986378,"avatar_url":"https://avatars1.githubusercontent.com/u/1986378?v=3","gravatar_id":"","url":"https://api.github.com/users/marceloschmidt","html_url":"https://github.com/marceloschmidt","followers_url":"https://api.github.com/users/marceloschmidt/followers","following_url":"https://api.github.com/users/marceloschmidt/following{/other_user}","gists_url":"https://api.github.com/users/marceloschmidt/gists{/gist_id}","starred_url":"https://api.github.com/users/marceloschmidt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/marceloschmidt/subscriptions","organizations_url":"https://api.github.com/users/marceloschmidt/orgs","repos_url":"https://api.github.com/users/marceloschmidt/repos","events_url":"https://api.github.com/users/marceloschmidt/events{/privacy}","received_events_url":"https://api.github.com/users/marceloschmidt/received_events","type":"User","site_admin":false},"body":"<!-- INSTRUCTION: Keep the line below to notify all core developers about this new PR -->\r\n@RocketChat/core \r\n\r\n<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->\r\nCloses #6019\r\n\r\n<!-- INSTRUCTION: Tell us more about your PR with screen shots if you can -->\r\n![image](https://cloud.githubusercontent.com/assets/1986378/23728006/427ed480-0439-11e7-9aa7-65151956e86b.png)\r\n","created_at":"2017-03-08T22:56:15Z","updated_at":"2017-03-21T14:23:34Z","closed_at":null,"merged_at":null,"merge_commit_sha":"beaf797bdf942f4d94ace6fc10d78c499e05e325","assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/RocketChat/Rocket.Chat/milestones/64","html_url":"https://github.com/RocketChat/Rocket.Chat/milestone/64","labels_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/milestones/64/labels","id":2316625,"number":64,"title":"Google Cloud Next 17","description":"","creator":{"login":"engelgabriel","id":1000217,"avatar_url":"https://avatars0.githubusercontent.com/u/1000217?v=3","gravatar_id":"","url":"https://api.github.com/users/engelgabriel","html_url":"https://github.com/engelgabriel","followers_url":"https://api.github.com/users/engelgabriel/followers","following_url":"https://api.github.com/users/engelgabriel/following{/other_user}","gists_url":"https://api.github.com/users/engelgabriel/gists{/gist_id}","starred_url":"https://api.github.com/users/engelgabriel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/engelgabriel/subscriptions","organizations_url":"https://api.github.com/users/engelgabriel/orgs","repos_url":"https://api.github.com/users/engelgabriel/repos","events_url":"https://api.github.com/users/engelgabriel/events{/privacy}","received_events_url":"https://api.github.com/users/engelgabriel/received_events","type":"User","site_admin":false},"open_issues":10,"closed_issues":0,"state":"open","created_at":"2017-02-12T15:30:16Z","updated_at":"2017-03-20T14:51:42Z","due_on":"2017-03-08T08:00:00Z","closed_at":null},"commits_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/pulls/6301/commits","review_comments_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/pulls/6301/comments","review_comment_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/pulls/comments{/number}","comments_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/issues/6301/comments","statuses_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/statuses/bbf59aed3c9ea6841881e577df62dab8cb024f1b","head":{"label":"RocketChat:google-vision","ref":"google-vision","sha":"bbf59aed3c9ea6841881e577df62dab8cb024f1b","user":{"login":"RocketChat","id":12508788,"avatar_url":"https://avatars2.githubusercontent.com/u/12508788?v=3","gravatar_id":"","url":"https://api.github.com/users/RocketChat","html_url":"https://github.com/RocketChat","followers_url":"https://api.github.com/users/RocketChat/followers","following_url":"https://api.github.com/users/RocketChat/following{/other_user}","gists_url":"https://api.github.com/users/RocketChat/gists{/gist_id}","starred_url":"https://api.github.com/users/RocketChat/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/RocketChat/subscriptions","organizations_url":"https://api.github.com/users/RocketChat/orgs","repos_url":"https://api.github.com/users/RocketChat/repos","events_url":"https://api.github.com/users/RocketChat/events{/privacy}","received_events_url":"https://api.github.com/users/RocketChat/received_events","type":"Organization","site_admin":false},"repo":{"id":35866694,"name":"Rocket.Chat","full_name":"RocketChat/Rocket.Chat","owner":{"login":"RocketChat","id":12508788,"avatar_url":"https://avatars2.githubusercontent.com/u/12508788?v=3","gravatar_id":"","url":"https://api.github.com/users/RocketChat","html_url":"https://github.com/RocketChat","followers_url":"https://api.github.com/users/RocketChat/followers","following_url":"https://api.github.com/users/RocketChat/following{/other_user}","gists_url":"https://api.github.com/users/RocketChat/gists{/gist_id}","starred_url":"https://api.github.com/users/RocketChat/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/RocketChat/subscriptions","organizations_url":"https://api.github.com/users/RocketChat/orgs","repos_url":"https://api.github.com/users/RocketChat/repos","events_url":"https://api.github.com/users/RocketChat/events{/privacy}","received_events_url":"https://api.github.com/users/RocketChat/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/RocketChat/Rocket.Chat","description":"Have your own Slack like online chat, built with Meteor.","fork":false,"url":"https://api.github.com/repos/RocketChat/Rocket.Chat","forks_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/forks","keys_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/keys{/key_id}","collaborators_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/teams","hooks_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/hooks","issue_events_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/issues/events{/number}","events_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/events","assignees_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/assignees{/user}","branches_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/branches{/branch}","tags_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/tags","blobs_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/git/refs{/sha}","trees_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/git/trees{/sha}","statuses_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/statuses/{sha}","languages_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/languages","stargazers_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/stargazers","contributors_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/contributors","subscribers_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/subscribers","subscription_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/subscription","commits_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/commits{/sha}","git_commits_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/git/commits{/sha}","comments_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/comments{/number}","issue_comment_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/issues/comments{/number}","contents_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/contents/{+path}","compare_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/compare/{base}...{head}","merges_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/merges","archive_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/downloads","issues_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/issues{/number}","pulls_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/pulls{/number}","milestones_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/milestones{/number}","notifications_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/labels{/name}","releases_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/releases{/id}","deployments_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/deployments","created_at":"2015-05-19T07:36:09Z","updated_at":"2017-03-21T10:17:30Z","pushed_at":"2017-03-21T14:05:51Z","git_url":"git://github.com/RocketChat/Rocket.Chat.git","ssh_url":"git@github.com:RocketChat/Rocket.Chat.git","clone_url":"https://github.com/RocketChat/Rocket.Chat.git","svn_url":"https://github.com/RocketChat/Rocket.Chat","homepage":"https://rocket.chat/","size":46317,"stargazers_count":11435,"watchers_count":11435,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":2421,"mirror_url":null,"open_issues_count":1745,"forks":2421,"open_issues":1745,"watchers":11435,"default_branch":"develop"}},"base":{"label":"RocketChat:develop","ref":"develop","sha":"50ee03b13a9a05dd807572705a0bf3ae838e031d","user":{"login":"RocketChat","id":12508788,"avatar_url":"https://avatars2.githubusercontent.com/u/12508788?v=3","gravatar_id":"","url":"https://api.github.com/users/RocketChat","html_url":"https://github.com/RocketChat","followers_url":"https://api.github.com/users/RocketChat/followers","following_url":"https://api.github.com/users/RocketChat/following{/other_user}","gists_url":"https://api.github.com/users/RocketChat/gists{/gist_id}","starred_url":"https://api.github.com/users/RocketChat/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/RocketChat/subscriptions","organizations_url":"https://api.github.com/users/RocketChat/orgs","repos_url":"https://api.github.com/users/RocketChat/repos","events_url":"https://api.github.com/users/RocketChat/events{/privacy}","received_events_url":"https://api.github.com/users/RocketChat/received_events","type":"Organization","site_admin":false},"repo":{"id":35866694,"name":"Rocket.Chat","full_name":"RocketChat/Rocket.Chat","owner":{"login":"RocketChat","id":12508788,"avatar_url":"https://avatars2.githubusercontent.com/u/12508788?v=3","gravatar_id":"","url":"https://api.github.com/users/RocketChat","html_url":"https://github.com/RocketChat","followers_url":"https://api.github.com/users/RocketChat/followers","following_url":"https://api.github.com/users/RocketChat/following{/other_user}","gists_url":"https://api.github.com/users/RocketChat/gists{/gist_id}","starred_url":"https://api.github.com/users/RocketChat/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/RocketChat/subscriptions","organizations_url":"https://api.github.com/users/RocketChat/orgs","repos_url":"https://api.github.com/users/RocketChat/repos","events_url":"https://api.github.com/users/RocketChat/events{/privacy}","received_events_url":"https://api.github.com/users/RocketChat/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/RocketChat/Rocket.Chat","description":"Have your own Slack like online chat, built with Meteor.","fork":false,"url":"https://api.github.com/repos/RocketChat/Rocket.Chat","forks_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/forks","keys_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/keys{/key_id}","collaborators_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/teams","hooks_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/hooks","issue_events_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/issues/events{/number}","events_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/events","assignees_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/assignees{/user}","branches_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/branches{/branch}","tags_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/tags","blobs_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/git/refs{/sha}","trees_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/git/trees{/sha}","statuses_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/statuses/{sha}","languages_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/languages","stargazers_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/stargazers","contributors_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/contributors","subscribers_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/subscribers","subscription_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/subscription","commits_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/commits{/sha}","git_commits_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/git/commits{/sha}","comments_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/comments{/number}","issue_comment_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/issues/comments{/number}","contents_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/contents/{+path}","compare_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/compare/{base}...{head}","merges_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/merges","archive_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/downloads","issues_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/issues{/number}","pulls_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/pulls{/number}","milestones_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/milestones{/number}","notifications_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/labels{/name}","releases_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/releases{/id}","deployments_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/deployments","created_at":"2015-05-19T07:36:09Z","updated_at":"2017-03-21T10:17:30Z","pushed_at":"2017-03-21T14:05:51Z","git_url":"git://github.com/RocketChat/Rocket.Chat.git","ssh_url":"git@github.com:RocketChat/Rocket.Chat.git","clone_url":"https://github.com/RocketChat/Rocket.Chat.git","svn_url":"https://github.com/RocketChat/Rocket.Chat","homepage":"https://rocket.chat/","size":46317,"stargazers_count":11435,"watchers_count":11435,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":2421,"mirror_url":null,"open_issues_count":1745,"forks":2421,"open_issues":1745,"watchers":11435,"default_branch":"develop"}},"_links":{"self":{"href":"https://api.github.com/repos/RocketChat/Rocket.Chat/pulls/6301"},"html":{"href":"https://github.com/RocketChat/Rocket.Chat/pull/6301"},"issue":{"href":"https://api.github.com/repos/RocketChat/Rocket.Chat/issues/6301"},"comments":{"href":"https://api.github.com/repos/RocketChat/Rocket.Chat/issues/6301/comments"},"review_comments":{"href":"https://api.github.com/repos/RocketChat/Rocket.Chat/pulls/6301/comments"},"review_comment":{"href":"https://api.github.com/repos/RocketChat/Rocket.Chat/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/RocketChat/Rocket.Chat/pulls/6301/commits"},"statuses":{"href":"https://api.github.com/repos/RocketChat/Rocket.Chat/statuses/bbf59aed3c9ea6841881e577df62dab8cb024f1b"}}}}
{"actor":{"display_login":"codacy-bot"}}