{"action":"created","comment":{"url":"https://api.github.com/repos/shadowsocks/shadowsocks/pulls/comments/100084862","pull_request_review_id":20779284,"id":100084862,"diff_hunk":"@@ -0,0 +1,33 @@\n+#!/usr/bin/env python\n+# -*- coding: utf-8 -*-\n+\n+from __future__ import absolute_import, division, print_function, \\\n+    with_statement\n+\n+import logging\n+import os\n+import sys\n+\n+path = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))\n+sys.path.insert(0, path)\n+from shadowsocks.eventloop import EventLoop\n+from shadowsocks.tcprelay import TcpRelay, TcpRelayClientHanler\n+\n+\n+FORMATTER = '%(asctime)s - %(levelname)s - %(message)s'\n+LOGGING_LEVEL = logging.INFO\n+logging.basicConfig(level=LOGGING_LEVEL, format=FORMATTER)\n+\n+LISTEN_ADDR = ('127.0.0.1', 7070)\n+REMOTE_ADDR = ('104.129.176.124', 9000)","path":"shadowsocks/client.py","position":22,"original_position":22,"commit_id":"710c93291e23494732294b0fb37b3b8518ed4fc8","original_commit_id":"710c93291e23494732294b0fb37b3b8518ed4fc8","user":{"login":"celeron533","id":3608762,"avatar_url":"https://avatars.githubusercontent.com/u/3608762?v=3","gravatar_id":"","url":"https://api.github.com/users/celeron533","html_url":"https://github.com/celeron533","followers_url":"https://api.github.com/users/celeron533/followers","following_url":"https://api.github.com/users/celeron533/following{/other_user}","gists_url":"https://api.github.com/users/celeron533/gists{/gist_id}","starred_url":"https://api.github.com/users/celeron533/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/celeron533/subscriptions","organizations_url":"https://api.github.com/users/celeron533/orgs","repos_url":"https://api.github.com/users/celeron533/repos","events_url":"https://api.github.com/users/celeron533/events{/privacy}","received_events_url":"https://api.github.com/users/celeron533/received_events","type":"User","site_admin":false},"body":"然而pull request是公开给大众的，这样所有的人都可以对这段代码指点江山~~","created_at":"2017-02-08T15:04:36Z","updated_at":"2017-02-08T15:04:36Z","html_url":"https://github.com/shadowsocks/shadowsocks/pull/756#discussion_r100084862","pull_request_url":"https://api.github.com/repos/shadowsocks/shadowsocks/pulls/756","_links":{"self":{"href":"https://api.github.com/repos/shadowsocks/shadowsocks/pulls/comments/100084862"},"html":{"href":"https://github.com/shadowsocks/shadowsocks/pull/756#discussion_r100084862"},"pull_request":{"href":"https://api.github.com/repos/shadowsocks/shadowsocks/pulls/756"}}},"pull_request":{"url":"https://api.github.com/repos/shadowsocks/shadowsocks/pulls/756","id":105213155,"html_url":"https://github.com/shadowsocks/shadowsocks/pull/756","diff_url":"https://github.com/shadowsocks/shadowsocks/pull/756.diff","patch_url":"https://github.com/shadowsocks/shadowsocks/pull/756.patch","issue_url":"https://api.github.com/repos/shadowsocks/shadowsocks/issues/756","number":756,"state":"closed","locked":false,"title":"just for learn","user":{"login":"huashengdun","id":909962,"avatar_url":"https://avatars.githubusercontent.com/u/909962?v=3","gravatar_id":"","url":"https://api.github.com/users/huashengdun","html_url":"https://github.com/huashengdun","followers_url":"https://api.github.com/users/huashengdun/followers","following_url":"https://api.github.com/users/huashengdun/following{/other_user}","gists_url":"https://api.github.com/users/huashengdun/gists{/gist_id}","starred_url":"https://api.github.com/users/huashengdun/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/huashengdun/subscriptions","organizations_url":"https://api.github.com/users/huashengdun/orgs","repos_url":"https://api.github.com/users/huashengdun/repos","events_url":"https://api.github.com/users/huashengdun/events{/privacy}","received_events_url":"https://api.github.com/users/huashengdun/received_events","type":"User","site_admin":false},"body":"","created_at":"2017-02-08T13:07:14Z","updated_at":"2017-02-08T15:04:36Z","closed_at":"2017-02-08T13:28:09Z","merged_at":null,"merge_commit_sha":"0fdd2fec83cfb312d9cd5ca522cf02b6214ca6ea","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/shadowsocks/shadowsocks/pulls/756/commits","review_comments_url":"https://api.github.com/repos/shadowsocks/shadowsocks/pulls/756/comments","review_comment_url":"https://api.github.com/repos/shadowsocks/shadowsocks/pulls/comments{/number}","comments_url":"https://api.github.com/repos/shadowsocks/shadowsocks/issues/756/comments","statuses_url":"https://api.github.com/repos/shadowsocks/shadowsocks/statuses/710c93291e23494732294b0fb37b3b8518ed4fc8","head":{"label":"huashengdun:temporary","ref":"temporary","sha":"710c93291e23494732294b0fb37b3b8518ed4fc8","user":{"login":"huashengdun","id":909962,"avatar_url":"https://avatars.githubusercontent.com/u/909962?v=3","gravatar_id":"","url":"https://api.github.com/users/huashengdun","html_url":"https://github.com/huashengdun","followers_url":"https://api.github.com/users/huashengdun/followers","following_url":"https://api.github.com/users/huashengdun/following{/other_user}","gists_url":"https://api.github.com/users/huashengdun/gists{/gist_id}","starred_url":"https://api.github.com/users/huashengdun/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/huashengdun/subscriptions","organizations_url":"https://api.github.com/users/huashengdun/orgs","repos_url":"https://api.github.com/users/huashengdun/repos","events_url":"https://api.github.com/users/huashengdun/events{/privacy}","received_events_url":"https://api.github.com/users/huashengdun/received_events","type":"User","site_admin":false},"repo":null},"base":{"label":"shadowsocks:master","ref":"master","sha":"ad39d957d7608030c64fded74bee122e37f33146","user":{"login":"shadowsocks","id":3006190,"avatar_url":"https://avatars.githubusercontent.com/u/3006190?v=3","gravatar_id":"","url":"https://api.github.com/users/shadowsocks","html_url":"https://github.com/shadowsocks","followers_url":"https://api.github.com/users/shadowsocks/followers","following_url":"https://api.github.com/users/shadowsocks/following{/other_user}","gists_url":"https://api.github.com/users/shadowsocks/gists{/gist_id}","starred_url":"https://api.github.com/users/shadowsocks/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/shadowsocks/subscriptions","organizations_url":"https://api.github.com/users/shadowsocks/orgs","repos_url":"https://api.github.com/users/shadowsocks/repos","events_url":"https://api.github.com/users/shadowsocks/events{/privacy}","received_events_url":"https://api.github.com/users/shadowsocks/received_events","type":"Organization","site_admin":false},"repo":{"id":4086616,"name":"shadowsocks","full_name":"shadowsocks/shadowsocks","owner":{"login":"shadowsocks","id":3006190,"avatar_url":"https://avatars.githubusercontent.com/u/3006190?v=3","gravatar_id":"","url":"https://api.github.com/users/shadowsocks","html_url":"https://github.com/shadowsocks","followers_url":"https://api.github.com/users/shadowsocks/followers","following_url":"https://api.github.com/users/shadowsocks/following{/other_user}","gists_url":"https://api.github.com/users/shadowsocks/gists{/gist_id}","starred_url":"https://api.github.com/users/shadowsocks/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/shadowsocks/subscriptions","organizations_url":"https://api.github.com/users/shadowsocks/orgs","repos_url":"https://api.github.com/users/shadowsocks/repos","events_url":"https://api.github.com/users/shadowsocks/events{/privacy}","received_events_url":"https://api.github.com/users/shadowsocks/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/shadowsocks/shadowsocks","description":null,"fork":false,"url":"https://api.github.com/repos/shadowsocks/shadowsocks","forks_url":"https://api.github.com/repos/shadowsocks/shadowsocks/forks","keys_url":"https://api.github.com/repos/shadowsocks/shadowsocks/keys{/key_id}","collaborators_url":"https://api.github.com/repos/shadowsocks/shadowsocks/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/shadowsocks/shadowsocks/teams","hooks_url":"https://api.github.com/repos/shadowsocks/shadowsocks/hooks","issue_events_url":"https://api.github.com/repos/shadowsocks/shadowsocks/issues/events{/number}","events_url":"https://api.github.com/repos/shadowsocks/shadowsocks/events","assignees_url":"https://api.github.com/repos/shadowsocks/shadowsocks/assignees{/user}","branches_url":"https://api.github.com/repos/shadowsocks/shadowsocks/branches{/branch}","tags_url":"https://api.github.com/repos/shadowsocks/shadowsocks/tags","blobs_url":"https://api.github.com/repos/shadowsocks/shadowsocks/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/shadowsocks/shadowsocks/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/shadowsocks/shadowsocks/git/refs{/sha}","trees_url":"https://api.github.com/repos/shadowsocks/shadowsocks/git/trees{/sha}","statuses_url":"https://api.github.com/repos/shadowsocks/shadowsocks/statuses/{sha}","languages_url":"https://api.github.com/repos/shadowsocks/shadowsocks/languages","stargazers_url":"https://api.github.com/repos/shadowsocks/shadowsocks/stargazers","contributors_url":"https://api.github.com/repos/shadowsocks/shadowsocks/contributors","subscribers_url":"https://api.github.com/repos/shadowsocks/shadowsocks/subscribers","subscription_url":"https://api.github.com/repos/shadowsocks/shadowsocks/subscription","commits_url":"https://api.github.com/repos/shadowsocks/shadowsocks/commits{/sha}","git_commits_url":"https://api.github.com/repos/shadowsocks/shadowsocks/git/commits{/sha}","comments_url":"https://api.github.com/repos/shadowsocks/shadowsocks/comments{/number}","issue_comment_url":"https://api.github.com/repos/shadowsocks/shadowsocks/issues/comments{/number}","contents_url":"https://api.github.com/repos/shadowsocks/shadowsocks/contents/{+path}","compare_url":"https://api.github.com/repos/shadowsocks/shadowsocks/compare/{base}...{head}","merges_url":"https://api.github.com/repos/shadowsocks/shadowsocks/merges","archive_url":"https://api.github.com/repos/shadowsocks/shadowsocks/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/shadowsocks/shadowsocks/downloads","issues_url":"https://api.github.com/repos/shadowsocks/shadowsocks/issues{/number}","pulls_url":"https://api.github.com/repos/shadowsocks/shadowsocks/pulls{/number}","milestones_url":"https://api.github.com/repos/shadowsocks/shadowsocks/milestones{/number}","notifications_url":"https://api.github.com/repos/shadowsocks/shadowsocks/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/shadowsocks/shadowsocks/labels{/name}","releases_url":"https://api.github.com/repos/shadowsocks/shadowsocks/releases{/id}","deployments_url":"https://api.github.com/repos/shadowsocks/shadowsocks/deployments","created_at":"2012-04-20T13:10:49Z","updated_at":"2017-02-08T11:22:57Z","pushed_at":"2017-02-08T13:07:15Z","git_url":"git://github.com/shadowsocks/shadowsocks.git","ssh_url":"git@github.com:shadowsocks/shadowsocks.git","clone_url":"https://github.com/shadowsocks/shadowsocks.git","svn_url":"https://github.com/shadowsocks/shadowsocks","homepage":"","size":852,"stargazers_count":16191,"watchers_count":16191,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":10047,"mirror_url":null,"open_issues_count":78,"forks":10047,"open_issues":78,"watchers":16191,"default_branch":"rm"}},"_links":{"self":{"href":"https://api.github.com/repos/shadowsocks/shadowsocks/pulls/756"},"html":{"href":"https://github.com/shadowsocks/shadowsocks/pull/756"},"issue":{"href":"https://api.github.com/repos/shadowsocks/shadowsocks/issues/756"},"comments":{"href":"https://api.github.com/repos/shadowsocks/shadowsocks/issues/756/comments"},"review_comments":{"href":"https://api.github.com/repos/shadowsocks/shadowsocks/pulls/756/comments"},"review_comment":{"href":"https://api.github.com/repos/shadowsocks/shadowsocks/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/shadowsocks/shadowsocks/pulls/756/commits"},"statuses":{"href":"https://api.github.com/repos/shadowsocks/shadowsocks/statuses/710c93291e23494732294b0fb37b3b8518ed4fc8"}}}}
{"actor":{"display_login":"celeron533"}}