{"action":"created","comment":{"url":"https://api.github.com/repos/ts-3156/egotter/pulls/comments/69254272","id":69254272,"diff_hunk":"@@ -0,0 +1,262 @@\n+require 'active_support/concern'\n+\n+module Concerns::TwitterUser::Api\n+  extend ActiveSupport::Concern\n+\n+  included do\n+    def one_sided_following\n+      ExTwitter::Client.new.one_sided_following(self)\n+    end\n+\n+    def one_sided_followers\n+      ExTwitter::Client.new.one_sided_followers(self)\n+    end\n+\n+    def mutual_friends\n+      ExTwitter::Client.new.mutual_friends(self)\n+    end\n+\n+    def common_friends(other)\n+      return [] if other.blank?\n+      ExTwitter::Client.new.common_friends(self, other)\n+    end\n+\n+    def common_followers(other)\n+      return [] if other.blank?\n+      ExTwitter::Client.new.common_followers(self, other)\n+    end\n+\n+    def removing\n+      return [] if TwitterUser.where(uid: uid, user_id: user_id).limit(2).pluck(:id).size < 2\n+      TwitterUser.where(uid: uid, user_id: user_id).order(created_at: :asc).each_cons(2).map do |old_one, new_one|\n+        ExTwitter::Client.new.removing(old_one, new_one)\n+      end.flatten\n+    end\n+\n+    def removed\n+      return [] if TwitterUser.where(uid: uid, user_id: user_id).limit(2).pluck(:id).size < 2\n+      TwitterUser.where(uid: uid, user_id: user_id).order(created_at: :asc).each_cons(2).map do |old_one, new_one|\n+        ExTwitter::Client.new.removed(old_one, new_one)\n+      end.flatten\n+    end\n+\n+    def replying(options = {})\n+      begin\n+        client.replying(__uid_i, options.merge(tweets: statuses)).map { |u| u.uid = u.id; u }\n+      rescue => e\n+        logger.warn \"#{self.class}##{__method__} #{e.class} #{e.message}\"\n+        []\n+      end\n+    end\n+\n+    def replied(options = {})\n+      if ego_surfing? && mentions.any?\n+        result = mentions.map { |m| m.user }.map { |u| u.uid = u.id; u }\n+        (options.has_key?(:uniq) && !options[:uniq]) ? result : result.uniq { |u| u.id.to_i }\n+      else\n+        _client = ExTwitter::Client.new\n+        uids = _client._extract_uids(search_results, options)\n+        _client._extract_users(search_results, uids, options).map { |u| u.uid = u.id; u }\n+      end\n+    end\n+\n+    def favoriting(options = {})\n+      client.favoriting(__uid_i, options.merge(favorites: favorites)).map { |u| u.uid = u.id; u }\n+    end\n+\n+    def inactive_friends\n+      ExTwitter::Client.new._extract_inactive_users(friends, authorized: ego_surfing?)\n+    end\n+\n+    def inactive_followers\n+      ExTwitter::Client.new._extract_inactive_users(followers, authorized: ego_surfing?)\n+    end\n+\n+    def clusters_belong_to\n+      text = statuses.map{|s| s.text }.join(' ')\n+      ExTwitter::Client.new.clusters_belong_to(text)\n+    end\n+\n+    def close_friends(options = {})\n+      min = options.has_key?(:min) ? options.delete(:min) : 1\n+      client.close_friends(__uid_i, options.merge(\n+        min: min,\n+        replying: replying(options.merge(uniq: false)),\n+        replied: replied(uniq: false),\n+        favoriting: favoriting(options.merge(uniq: false)))\n+      ).map { |u| u.uid = u.id; u }\n+    end\n+\n+    def inactive_friends_graph\n+      inactive_friends_size = inactive_friends.size\n+      friends_size = friends_count\n+      [\n+        {name: I18n.t('legend.inactive_friends'), y: (inactive_friends_size.to_f / friends_size * 100)},\n+        {name: I18n.t('legend.not_inactive_friends'), y: ((friends_size - inactive_friends_size).to_f / friends_size * 100)}\n+      ]\n+    end\n+\n+    def inactive_followers_graph\n+      inactive_followers_size = inactive_followers.size\n+      followers_size = followers_count\n+      [\n+        {name: I18n.t('legend.inactive_followers'), y: (inactive_followers_size.to_f / followers_size * 100)},\n+        {name: I18n.t('legend.not_inactive_followers'), y: ((followers_size - inactive_followers_size).to_f / followers_size * 100)}\n+      ]\n+    end\n+\n+    def removing_graph\n+      large_rate = [removing.size * 10, 100].min\n+      [\n+        {name: I18n.t('legend.large'), y: large_rate},\n+        {name: I18n.t('legend.small'), y: 100 - large_rate}\n+      ]\n+    end\n+\n+    def removed_graph\n+      large_rate = [removed.size * 10, 100].min\n+      [\n+        {name: I18n.t('legend.large'), y: large_rate},\n+        {name: I18n.t('legend.small'), y: 100 - large_rate}\n+      ]\n+    end\n+\n+    def replying_graph\n+      friends_size = friends_count\n+      replying_size = replying.size\n+      [\n+        {name: I18n.t('legend.replying'), y: (replying_size.to_f / friends_size * 100)},\n+        {name: I18n.t('legend.others'), y: ((friends_size - replying_size).to_f / friends_size * 100)}\n+      ]\n+    end\n+\n+    def replied_graph\n+      followers_size = followers_count\n+      replied_size = replied.size\n+      [\n+        {name: I18n.t('legend.replying'), y: (replied_size.to_f / followers_size * 100)},\n+        {name: I18n.t('legend.others'), y: ((followers_size - replied_size).to_f / followers_size * 100)}\n+      ]\n+    end\n+\n+    def favoriting_graph\n+      friends_size = friends_count\n+      favoriting_size = favoriting.size\n+      [\n+        {name: I18n.t('legend.favoriting'), y: (favoriting_size.to_f / friends_size * 100)},\n+        {name: I18n.t('legend.others'), y: ((friends_size - favoriting_size).to_f / friends_size * 100)}\n+      ]\n+    end\n+\n+    def close_friends_graph(options = {})\n+      items = close_friends(options.merge(min: 0))\n+      items_size = items.size\n+      good = percentile_index(items, 0.10) + 1\n+      not_so_bad = percentile_index(items, 0.50) + 1\n+      so_so = percentile_index(items, 1.0) + 1\n+      [\n+        {name: I18n.t('legend.close_friends'), y: (good.to_f / items_size * 100), drilldown: 'good', sliced: true, selected: true},\n+        {name: I18n.t('legend.friends'), y: ((not_so_bad - good).to_f / items_size * 100), drilldown: 'not_so_bad'},\n+        {name: I18n.t('legend.acquaintance'), y: ((so_so - (good + not_so_bad)).to_f / items_size * 100), drilldown: 'so_so'}\n+      ]\n+      # drilldown_series = [\n+      #   {name: 'good', id: 'good', data: items.slice(0, good - 1).map { |i| [i.screen_name, i.score] }},\n+      #   {name: 'not_so_bad', id: 'not_so_bad', data: items.slice(good, not_so_bad - 1).map { |i| [i.screen_name, i.score] }},\n+      #   {name: 'so_so', id: 'so_so', data: items.slice(not_so_bad, so_so - 1).map { |i| [i.screen_name, i.score] }},\n+      # ]\n+    end\n+\n+    def one_sided_following_graph\n+      friends_size = friends.size\n+      one_sided_size = one_sided_following.size\n+      [\n+        {name: I18n.t('legend.one_sided_following'), y: (one_sided_size.to_f / friends_size * 100)},\n+        {name: I18n.t('legend.others'), y: ((friends_size - one_sided_size).to_f / friends_size * 100)}\n+      ]\n+    end\n+\n+    def one_sided_followers_graph\n+      followers_size = followers.size\n+      one_sided_size = one_sided_followers.size\n+      [\n+        {name: I18n.t('legend.one_sided_followers'), y: (one_sided_size.to_f / followers_size * 100)},\n+        {name: I18n.t('legend.others'), y: ((followers_size - one_sided_size).to_f / followers_size * 100)}\n+      ]\n+    end\n+\n+    def mutual_friends_rate\n+      friendship_size = friends_count + followers_count\n+      return [0.0, 0.0, 0.0] if friendship_size == 0\n+      [\n+        mutual_friends.size.to_f / friendship_size * 100,\n+        one_sided_following.size.to_f / friendship_size * 100,\n+        one_sided_followers.size.to_f / friendship_size * 100\n+      ]\n+    end\n+\n+    def mutual_friends_graph\n+      rates = mutual_friends_rate\n+      sliced = rates[0] < 25\n+      [\n+        {name: I18n.t('legend.mutual_friends'), y: rates[0], sliced: sliced, selected: sliced},\n+        {name: I18n.t('legend.one_sided_following'), y: rates[1]},\n+        {name: I18n.t('legend.one_sided_followers'), y: rates[2]}\n+      ]\n+    end\n+\n+    def common_friends_graph(other)\n+      friends_size = friends.size\n+      common_friends_size = common_friends(other).size\n+      [\n+        {name: I18n.t('legend.common_friends'), y: (common_friends_size.to_f / friends_size * 100)},","path":"app/models/concerns/twitter_user/api.rb","position":211,"original_position":211,"commit_id":"17f10c0ec73e8c90f5122a77dc83bae8bda2a87c","original_commit_id":"17f10c0ec73e8c90f5122a77dc83bae8bda2a87c","user":{"login":"ts-3156","id":649961,"avatar_url":"https://avatars.githubusercontent.com/u/649961?v=3","gravatar_id":"","url":"https://api.github.com/users/ts-3156","html_url":"https://github.com/ts-3156","followers_url":"https://api.github.com/users/ts-3156/followers","following_url":"https://api.github.com/users/ts-3156/following{/other_user}","gists_url":"https://api.github.com/users/ts-3156/gists{/gist_id}","starred_url":"https://api.github.com/users/ts-3156/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ts-3156/subscriptions","organizations_url":"https://api.github.com/users/ts-3156/orgs","repos_url":"https://api.github.com/users/ts-3156/repos","events_url":"https://api.github.com/users/ts-3156/events{/privacy}","received_events_url":"https://api.github.com/users/ts-3156/received_events","type":"User","site_admin":false},"body":"__[rubocop]__\n* Space inside { missing. [:ref](https://github.com/bbatsov/ruby-style-guide#spaces-operators)\n* Line is too long. [100/80] [:ref](https://github.com/bbatsov/ruby-style-guide#80-character-limits)\n* Space inside } missing. [:ref](https://github.com/bbatsov/ruby-style-guide#spaces-operators)","created_at":"2016-07-01T06:18:31Z","updated_at":"2016-07-01T06:18:31Z","html_url":"https://github.com/ts-3156/egotter/pull/1#discussion_r69254272","pull_request_url":"https://api.github.com/repos/ts-3156/egotter/pulls/1","_links":{"self":{"href":"https://api.github.com/repos/ts-3156/egotter/pulls/comments/69254272"},"html":{"href":"https://github.com/ts-3156/egotter/pull/1#discussion_r69254272"},"pull_request":{"href":"https://api.github.com/repos/ts-3156/egotter/pulls/1"}}},"pull_request":{"url":"https://api.github.com/repos/ts-3156/egotter/pulls/1","id":74815920,"html_url":"https://github.com/ts-3156/egotter/pull/1","diff_url":"https://github.com/ts-3156/egotter/pull/1.diff","patch_url":"https://github.com/ts-3156/egotter/pull/1.patch","issue_url":"https://api.github.com/repos/ts-3156/egotter/issues/1","number":1,"state":"open","locked":false,"title":"Use separated extwitter","user":{"login":"ts-3156","id":649961,"avatar_url":"https://avatars.githubusercontent.com/u/649961?v=3","gravatar_id":"","url":"https://api.github.com/users/ts-3156","html_url":"https://github.com/ts-3156","followers_url":"https://api.github.com/users/ts-3156/followers","following_url":"https://api.github.com/users/ts-3156/following{/other_user}","gists_url":"https://api.github.com/users/ts-3156/gists{/gist_id}","starred_url":"https://api.github.com/users/ts-3156/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ts-3156/subscriptions","organizations_url":"https://api.github.com/users/ts-3156/orgs","repos_url":"https://api.github.com/users/ts-3156/repos","events_url":"https://api.github.com/users/ts-3156/events{/privacy}","received_events_url":"https://api.github.com/users/ts-3156/received_events","type":"User","site_admin":false},"body":"- [x] use separated ex_twitter\r\n- [ ] fetch replying and replied effectively\r\n- [ ] save tweets in redis instead of mysql to save storage spaces","created_at":"2016-06-22T16:30:54Z","updated_at":"2016-07-01T06:18:31Z","closed_at":null,"merged_at":null,"merge_commit_sha":"8e95bc484dea5c2c935d04e0cf29bb1e1c4950f2","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/ts-3156/egotter/pulls/1/commits","review_comments_url":"https://api.github.com/repos/ts-3156/egotter/pulls/1/comments","review_comment_url":"https://api.github.com/repos/ts-3156/egotter/pulls/comments{/number}","comments_url":"https://api.github.com/repos/ts-3156/egotter/issues/1/comments","statuses_url":"https://api.github.com/repos/ts-3156/egotter/statuses/17f10c0ec73e8c90f5122a77dc83bae8bda2a87c","head":{"label":"ts-3156:use_separated_extwitter","ref":"use_separated_extwitter","sha":"17f10c0ec73e8c90f5122a77dc83bae8bda2a87c","user":{"login":"ts-3156","id":649961,"avatar_url":"https://avatars.githubusercontent.com/u/649961?v=3","gravatar_id":"","url":"https://api.github.com/users/ts-3156","html_url":"https://github.com/ts-3156","followers_url":"https://api.github.com/users/ts-3156/followers","following_url":"https://api.github.com/users/ts-3156/following{/other_user}","gists_url":"https://api.github.com/users/ts-3156/gists{/gist_id}","starred_url":"https://api.github.com/users/ts-3156/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ts-3156/subscriptions","organizations_url":"https://api.github.com/users/ts-3156/orgs","repos_url":"https://api.github.com/users/ts-3156/repos","events_url":"https://api.github.com/users/ts-3156/events{/privacy}","received_events_url":"https://api.github.com/users/ts-3156/received_events","type":"User","site_admin":false},"repo":{"id":48939315,"name":"egotter","full_name":"ts-3156/egotter","owner":{"login":"ts-3156","id":649961,"avatar_url":"https://avatars.githubusercontent.com/u/649961?v=3","gravatar_id":"","url":"https://api.github.com/users/ts-3156","html_url":"https://github.com/ts-3156","followers_url":"https://api.github.com/users/ts-3156/followers","following_url":"https://api.github.com/users/ts-3156/following{/other_user}","gists_url":"https://api.github.com/users/ts-3156/gists{/gist_id}","starred_url":"https://api.github.com/users/ts-3156/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ts-3156/subscriptions","organizations_url":"https://api.github.com/users/ts-3156/orgs","repos_url":"https://api.github.com/users/ts-3156/repos","events_url":"https://api.github.com/users/ts-3156/events{/privacy}","received_events_url":"https://api.github.com/users/ts-3156/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/ts-3156/egotter","description":"Egotter","fork":false,"url":"https://api.github.com/repos/ts-3156/egotter","forks_url":"https://api.github.com/repos/ts-3156/egotter/forks","keys_url":"https://api.github.com/repos/ts-3156/egotter/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ts-3156/egotter/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ts-3156/egotter/teams","hooks_url":"https://api.github.com/repos/ts-3156/egotter/hooks","issue_events_url":"https://api.github.com/repos/ts-3156/egotter/issues/events{/number}","events_url":"https://api.github.com/repos/ts-3156/egotter/events","assignees_url":"https://api.github.com/repos/ts-3156/egotter/assignees{/user}","branches_url":"https://api.github.com/repos/ts-3156/egotter/branches{/branch}","tags_url":"https://api.github.com/repos/ts-3156/egotter/tags","blobs_url":"https://api.github.com/repos/ts-3156/egotter/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ts-3156/egotter/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ts-3156/egotter/git/refs{/sha}","trees_url":"https://api.github.com/repos/ts-3156/egotter/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ts-3156/egotter/statuses/{sha}","languages_url":"https://api.github.com/repos/ts-3156/egotter/languages","stargazers_url":"https://api.github.com/repos/ts-3156/egotter/stargazers","contributors_url":"https://api.github.com/repos/ts-3156/egotter/contributors","subscribers_url":"https://api.github.com/repos/ts-3156/egotter/subscribers","subscription_url":"https://api.github.com/repos/ts-3156/egotter/subscription","commits_url":"https://api.github.com/repos/ts-3156/egotter/commits{/sha}","git_commits_url":"https://api.github.com/repos/ts-3156/egotter/git/commits{/sha}","comments_url":"https://api.github.com/repos/ts-3156/egotter/comments{/number}","issue_comment_url":"https://api.github.com/repos/ts-3156/egotter/issues/comments{/number}","contents_url":"https://api.github.com/repos/ts-3156/egotter/contents/{+path}","compare_url":"https://api.github.com/repos/ts-3156/egotter/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ts-3156/egotter/merges","archive_url":"https://api.github.com/repos/ts-3156/egotter/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ts-3156/egotter/downloads","issues_url":"https://api.github.com/repos/ts-3156/egotter/issues{/number}","pulls_url":"https://api.github.com/repos/ts-3156/egotter/pulls{/number}","milestones_url":"https://api.github.com/repos/ts-3156/egotter/milestones{/number}","notifications_url":"https://api.github.com/repos/ts-3156/egotter/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ts-3156/egotter/labels{/name}","releases_url":"https://api.github.com/repos/ts-3156/egotter/releases{/id}","deployments_url":"https://api.github.com/repos/ts-3156/egotter/deployments","created_at":"2016-01-03T08:33:06Z","updated_at":"2016-02-20T03:52:42Z","pushed_at":"2016-07-01T06:16:58Z","git_url":"git://github.com/ts-3156/egotter.git","ssh_url":"git@github.com:ts-3156/egotter.git","clone_url":"https://github.com/ts-3156/egotter.git","svn_url":"https://github.com/ts-3156/egotter","homepage":"http://egotter.com","size":1790,"stargazers_count":0,"watchers_count":0,"language":"Ruby","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":1,"forks":0,"open_issues":1,"watchers":0,"default_branch":"master"}},"base":{"label":"ts-3156:master","ref":"master","sha":"d8a86df5e432b2715e142f9c7b02fe84729149e6","user":{"login":"ts-3156","id":649961,"avatar_url":"https://avatars.githubusercontent.com/u/649961?v=3","gravatar_id":"","url":"https://api.github.com/users/ts-3156","html_url":"https://github.com/ts-3156","followers_url":"https://api.github.com/users/ts-3156/followers","following_url":"https://api.github.com/users/ts-3156/following{/other_user}","gists_url":"https://api.github.com/users/ts-3156/gists{/gist_id}","starred_url":"https://api.github.com/users/ts-3156/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ts-3156/subscriptions","organizations_url":"https://api.github.com/users/ts-3156/orgs","repos_url":"https://api.github.com/users/ts-3156/repos","events_url":"https://api.github.com/users/ts-3156/events{/privacy}","received_events_url":"https://api.github.com/users/ts-3156/received_events","type":"User","site_admin":false},"repo":{"id":48939315,"name":"egotter","full_name":"ts-3156/egotter","owner":{"login":"ts-3156","id":649961,"avatar_url":"https://avatars.githubusercontent.com/u/649961?v=3","gravatar_id":"","url":"https://api.github.com/users/ts-3156","html_url":"https://github.com/ts-3156","followers_url":"https://api.github.com/users/ts-3156/followers","following_url":"https://api.github.com/users/ts-3156/following{/other_user}","gists_url":"https://api.github.com/users/ts-3156/gists{/gist_id}","starred_url":"https://api.github.com/users/ts-3156/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ts-3156/subscriptions","organizations_url":"https://api.github.com/users/ts-3156/orgs","repos_url":"https://api.github.com/users/ts-3156/repos","events_url":"https://api.github.com/users/ts-3156/events{/privacy}","received_events_url":"https://api.github.com/users/ts-3156/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/ts-3156/egotter","description":"Egotter","fork":false,"url":"https://api.github.com/repos/ts-3156/egotter","forks_url":"https://api.github.com/repos/ts-3156/egotter/forks","keys_url":"https://api.github.com/repos/ts-3156/egotter/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ts-3156/egotter/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ts-3156/egotter/teams","hooks_url":"https://api.github.com/repos/ts-3156/egotter/hooks","issue_events_url":"https://api.github.com/repos/ts-3156/egotter/issues/events{/number}","events_url":"https://api.github.com/repos/ts-3156/egotter/events","assignees_url":"https://api.github.com/repos/ts-3156/egotter/assignees{/user}","branches_url":"https://api.github.com/repos/ts-3156/egotter/branches{/branch}","tags_url":"https://api.github.com/repos/ts-3156/egotter/tags","blobs_url":"https://api.github.com/repos/ts-3156/egotter/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ts-3156/egotter/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ts-3156/egotter/git/refs{/sha}","trees_url":"https://api.github.com/repos/ts-3156/egotter/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ts-3156/egotter/statuses/{sha}","languages_url":"https://api.github.com/repos/ts-3156/egotter/languages","stargazers_url":"https://api.github.com/repos/ts-3156/egotter/stargazers","contributors_url":"https://api.github.com/repos/ts-3156/egotter/contributors","subscribers_url":"https://api.github.com/repos/ts-3156/egotter/subscribers","subscription_url":"https://api.github.com/repos/ts-3156/egotter/subscription","commits_url":"https://api.github.com/repos/ts-3156/egotter/commits{/sha}","git_commits_url":"https://api.github.com/repos/ts-3156/egotter/git/commits{/sha}","comments_url":"https://api.github.com/repos/ts-3156/egotter/comments{/number}","issue_comment_url":"https://api.github.com/repos/ts-3156/egotter/issues/comments{/number}","contents_url":"https://api.github.com/repos/ts-3156/egotter/contents/{+path}","compare_url":"https://api.github.com/repos/ts-3156/egotter/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ts-3156/egotter/merges","archive_url":"https://api.github.com/repos/ts-3156/egotter/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ts-3156/egotter/downloads","issues_url":"https://api.github.com/repos/ts-3156/egotter/issues{/number}","pulls_url":"https://api.github.com/repos/ts-3156/egotter/pulls{/number}","milestones_url":"https://api.github.com/repos/ts-3156/egotter/milestones{/number}","notifications_url":"https://api.github.com/repos/ts-3156/egotter/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ts-3156/egotter/labels{/name}","releases_url":"https://api.github.com/repos/ts-3156/egotter/releases{/id}","deployments_url":"https://api.github.com/repos/ts-3156/egotter/deployments","created_at":"2016-01-03T08:33:06Z","updated_at":"2016-02-20T03:52:42Z","pushed_at":"2016-07-01T06:16:58Z","git_url":"git://github.com/ts-3156/egotter.git","ssh_url":"git@github.com:ts-3156/egotter.git","clone_url":"https://github.com/ts-3156/egotter.git","svn_url":"https://github.com/ts-3156/egotter","homepage":"http://egotter.com","size":1790,"stargazers_count":0,"watchers_count":0,"language":"Ruby","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":1,"forks":0,"open_issues":1,"watchers":0,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/ts-3156/egotter/pulls/1"},"html":{"href":"https://github.com/ts-3156/egotter/pull/1"},"issue":{"href":"https://api.github.com/repos/ts-3156/egotter/issues/1"},"comments":{"href":"https://api.github.com/repos/ts-3156/egotter/issues/1/comments"},"review_comments":{"href":"https://api.github.com/repos/ts-3156/egotter/pulls/1/comments"},"review_comment":{"href":"https://api.github.com/repos/ts-3156/egotter/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/ts-3156/egotter/pulls/1/commits"},"statuses":{"href":"https://api.github.com/repos/ts-3156/egotter/statuses/17f10c0ec73e8c90f5122a77dc83bae8bda2a87c"}}}}
{"actor":{"display_login":"ts-3156"}}