{"action":"created","comment":{"url":"https://api.github.com/repos/fxsjy/ins/pulls/comments/38268984","id":38268984,"diff_hunk":"@@ -0,0 +1,1001 @@\n+put 000 000000000","path":"sandbox/op1.txt","position":1,"original_position":1,"commit_id":"40353d1d468d1cec05fdef1adbbdde1dacae84d2","original_commit_id":"40353d1d468d1cec05fdef1adbbdde1dacae84d2","user":{"login":"fxsjy","id":167837,"avatar_url":"https://avatars.githubusercontent.com/u/167837?v=3","gravatar_id":"","url":"https://api.github.com/users/fxsjy","html_url":"https://github.com/fxsjy","followers_url":"https://api.github.com/users/fxsjy/followers","following_url":"https://api.github.com/users/fxsjy/following{/other_user}","gists_url":"https://api.github.com/users/fxsjy/gists{/gist_id}","starred_url":"https://api.github.com/users/fxsjy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fxsjy/subscriptions","organizations_url":"https://api.github.com/users/fxsjy/orgs","repos_url":"https://api.github.com/users/fxsjy/repos","events_url":"https://api.github.com/users/fxsjy/events{/privacy}","received_events_url":"https://api.github.com/users/fxsjy/received_events","type":"User","site_admin":false},"body":"这个txt最好不要提交到git, 改由脚本生成。","created_at":"2015-08-30T06:25:53Z","updated_at":"2015-08-30T06:25:53Z","html_url":"https://github.com/fxsjy/ins/pull/15#discussion_r38268984","pull_request_url":"https://api.github.com/repos/fxsjy/ins/pulls/15","_links":{"self":{"href":"https://api.github.com/repos/fxsjy/ins/pulls/comments/38268984"},"html":{"href":"https://github.com/fxsjy/ins/pull/15#discussion_r38268984"},"pull_request":{"href":"https://api.github.com/repos/fxsjy/ins/pulls/15"}}},"pull_request":{"url":"https://api.github.com/repos/fxsjy/ins/pulls/15","id":43481345,"html_url":"https://github.com/fxsjy/ins/pull/15","diff_url":"https://github.com/fxsjy/ins/pull/15.diff","patch_url":"https://github.com/fxsjy/ins/pull/15.patch","issue_url":"https://api.github.com/repos/fxsjy/ins/issues/15","number":15,"state":"open","locked":false,"title":"Add user control to separate the resource","user":{"login":"Kai-Zhang","id":6784823,"avatar_url":"https://avatars.githubusercontent.com/u/6784823?v=3","gravatar_id":"","url":"https://api.github.com/users/Kai-Zhang","html_url":"https://github.com/Kai-Zhang","followers_url":"https://api.github.com/users/Kai-Zhang/followers","following_url":"https://api.github.com/users/Kai-Zhang/following{/other_user}","gists_url":"https://api.github.com/users/Kai-Zhang/gists{/gist_id}","starred_url":"https://api.github.com/users/Kai-Zhang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Kai-Zhang/subscriptions","organizations_url":"https://api.github.com/users/Kai-Zhang/orgs","repos_url":"https://api.github.com/users/Kai-Zhang/repos","events_url":"https://api.github.com/users/Kai-Zhang/events{/privacy}","received_events_url":"https://api.github.com/users/Kai-Zhang/received_events","type":"User","site_admin":false},"body":"### What's new:\r\n1. Add user_manager to perform authentication.\r\n2. Add storage_manager to manage the data access for different users.\r\n3. Modify rpc proto to identify the user during each operation.\r\n4. Add unittest and test script.\r\n\r\n### Note:\r\n1. Logged user will get a unique user id for identification.\r\n2. Ins node use leveldb to hold users' information. The password will be encrypted using sha-1 in sdk, so the node simply check if the hash is the same and won't hold the plaintext of password.\r\n3. Since modified proto only add optional data field, and storage manager supports anonymous access, the patch should be compatible with the original version.","created_at":"2015-08-27T05:43:48Z","updated_at":"2015-08-30T06:25:53Z","closed_at":null,"merged_at":null,"merge_commit_sha":"c6a4abf737725998851974782c117cafea48a70c","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/fxsjy/ins/pulls/15/commits","review_comments_url":"https://api.github.com/repos/fxsjy/ins/pulls/15/comments","review_comment_url":"https://api.github.com/repos/fxsjy/ins/pulls/comments{/number}","comments_url":"https://api.github.com/repos/fxsjy/ins/issues/15/comments","statuses_url":"https://api.github.com/repos/fxsjy/ins/statuses/40353d1d468d1cec05fdef1adbbdde1dacae84d2","head":{"label":"Kai-Zhang:master","ref":"master","sha":"40353d1d468d1cec05fdef1adbbdde1dacae84d2","user":{"login":"Kai-Zhang","id":6784823,"avatar_url":"https://avatars.githubusercontent.com/u/6784823?v=3","gravatar_id":"","url":"https://api.github.com/users/Kai-Zhang","html_url":"https://github.com/Kai-Zhang","followers_url":"https://api.github.com/users/Kai-Zhang/followers","following_url":"https://api.github.com/users/Kai-Zhang/following{/other_user}","gists_url":"https://api.github.com/users/Kai-Zhang/gists{/gist_id}","starred_url":"https://api.github.com/users/Kai-Zhang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Kai-Zhang/subscriptions","organizations_url":"https://api.github.com/users/Kai-Zhang/orgs","repos_url":"https://api.github.com/users/Kai-Zhang/repos","events_url":"https://api.github.com/users/Kai-Zhang/events{/privacy}","received_events_url":"https://api.github.com/users/Kai-Zhang/received_events","type":"User","site_admin":false},"repo":{"id":40653409,"name":"ins","full_name":"Kai-Zhang/ins","owner":{"login":"Kai-Zhang","id":6784823,"avatar_url":"https://avatars.githubusercontent.com/u/6784823?v=3","gravatar_id":"","url":"https://api.github.com/users/Kai-Zhang","html_url":"https://github.com/Kai-Zhang","followers_url":"https://api.github.com/users/Kai-Zhang/followers","following_url":"https://api.github.com/users/Kai-Zhang/following{/other_user}","gists_url":"https://api.github.com/users/Kai-Zhang/gists{/gist_id}","starred_url":"https://api.github.com/users/Kai-Zhang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Kai-Zhang/subscriptions","organizations_url":"https://api.github.com/users/Kai-Zhang/orgs","repos_url":"https://api.github.com/users/Kai-Zhang/repos","events_url":"https://api.github.com/users/Kai-Zhang/events{/privacy}","received_events_url":"https://api.github.com/users/Kai-Zhang/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/Kai-Zhang/ins","description":"iNexus, coordinate large scale services","fork":true,"url":"https://api.github.com/repos/Kai-Zhang/ins","forks_url":"https://api.github.com/repos/Kai-Zhang/ins/forks","keys_url":"https://api.github.com/repos/Kai-Zhang/ins/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Kai-Zhang/ins/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Kai-Zhang/ins/teams","hooks_url":"https://api.github.com/repos/Kai-Zhang/ins/hooks","issue_events_url":"https://api.github.com/repos/Kai-Zhang/ins/issues/events{/number}","events_url":"https://api.github.com/repos/Kai-Zhang/ins/events","assignees_url":"https://api.github.com/repos/Kai-Zhang/ins/assignees{/user}","branches_url":"https://api.github.com/repos/Kai-Zhang/ins/branches{/branch}","tags_url":"https://api.github.com/repos/Kai-Zhang/ins/tags","blobs_url":"https://api.github.com/repos/Kai-Zhang/ins/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Kai-Zhang/ins/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Kai-Zhang/ins/git/refs{/sha}","trees_url":"https://api.github.com/repos/Kai-Zhang/ins/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Kai-Zhang/ins/statuses/{sha}","languages_url":"https://api.github.com/repos/Kai-Zhang/ins/languages","stargazers_url":"https://api.github.com/repos/Kai-Zhang/ins/stargazers","contributors_url":"https://api.github.com/repos/Kai-Zhang/ins/contributors","subscribers_url":"https://api.github.com/repos/Kai-Zhang/ins/subscribers","subscription_url":"https://api.github.com/repos/Kai-Zhang/ins/subscription","commits_url":"https://api.github.com/repos/Kai-Zhang/ins/commits{/sha}","git_commits_url":"https://api.github.com/repos/Kai-Zhang/ins/git/commits{/sha}","comments_url":"https://api.github.com/repos/Kai-Zhang/ins/comments{/number}","issue_comment_url":"https://api.github.com/repos/Kai-Zhang/ins/issues/comments{/number}","contents_url":"https://api.github.com/repos/Kai-Zhang/ins/contents/{+path}","compare_url":"https://api.github.com/repos/Kai-Zhang/ins/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Kai-Zhang/ins/merges","archive_url":"https://api.github.com/repos/Kai-Zhang/ins/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Kai-Zhang/ins/downloads","issues_url":"https://api.github.com/repos/Kai-Zhang/ins/issues{/number}","pulls_url":"https://api.github.com/repos/Kai-Zhang/ins/pulls{/number}","milestones_url":"https://api.github.com/repos/Kai-Zhang/ins/milestones{/number}","notifications_url":"https://api.github.com/repos/Kai-Zhang/ins/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Kai-Zhang/ins/labels{/name}","releases_url":"https://api.github.com/repos/Kai-Zhang/ins/releases{/id}","created_at":"2015-08-13T10:41:09Z","updated_at":"2015-08-13T10:41:09Z","pushed_at":"2015-08-28T06:19:16Z","git_url":"git://github.com/Kai-Zhang/ins.git","ssh_url":"git@github.com:Kai-Zhang/ins.git","clone_url":"https://github.com/Kai-Zhang/ins.git","svn_url":"https://github.com/Kai-Zhang/ins","homepage":"","size":3355,"stargazers_count":0,"watchers_count":0,"language":"C++","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"fxsjy:master","ref":"master","sha":"c7a69ed6a208e283468eeb470b536645ad18a05c","user":{"login":"fxsjy","id":167837,"avatar_url":"https://avatars.githubusercontent.com/u/167837?v=3","gravatar_id":"","url":"https://api.github.com/users/fxsjy","html_url":"https://github.com/fxsjy","followers_url":"https://api.github.com/users/fxsjy/followers","following_url":"https://api.github.com/users/fxsjy/following{/other_user}","gists_url":"https://api.github.com/users/fxsjy/gists{/gist_id}","starred_url":"https://api.github.com/users/fxsjy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fxsjy/subscriptions","organizations_url":"https://api.github.com/users/fxsjy/orgs","repos_url":"https://api.github.com/users/fxsjy/repos","events_url":"https://api.github.com/users/fxsjy/events{/privacy}","received_events_url":"https://api.github.com/users/fxsjy/received_events","type":"User","site_admin":false},"repo":{"id":35104997,"name":"ins","full_name":"fxsjy/ins","owner":{"login":"fxsjy","id":167837,"avatar_url":"https://avatars.githubusercontent.com/u/167837?v=3","gravatar_id":"","url":"https://api.github.com/users/fxsjy","html_url":"https://github.com/fxsjy","followers_url":"https://api.github.com/users/fxsjy/followers","following_url":"https://api.github.com/users/fxsjy/following{/other_user}","gists_url":"https://api.github.com/users/fxsjy/gists{/gist_id}","starred_url":"https://api.github.com/users/fxsjy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fxsjy/subscriptions","organizations_url":"https://api.github.com/users/fxsjy/orgs","repos_url":"https://api.github.com/users/fxsjy/repos","events_url":"https://api.github.com/users/fxsjy/events{/privacy}","received_events_url":"https://api.github.com/users/fxsjy/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/fxsjy/ins","description":"iNexus, coordinate large scale services","fork":false,"url":"https://api.github.com/repos/fxsjy/ins","forks_url":"https://api.github.com/repos/fxsjy/ins/forks","keys_url":"https://api.github.com/repos/fxsjy/ins/keys{/key_id}","collaborators_url":"https://api.github.com/repos/fxsjy/ins/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/fxsjy/ins/teams","hooks_url":"https://api.github.com/repos/fxsjy/ins/hooks","issue_events_url":"https://api.github.com/repos/fxsjy/ins/issues/events{/number}","events_url":"https://api.github.com/repos/fxsjy/ins/events","assignees_url":"https://api.github.com/repos/fxsjy/ins/assignees{/user}","branches_url":"https://api.github.com/repos/fxsjy/ins/branches{/branch}","tags_url":"https://api.github.com/repos/fxsjy/ins/tags","blobs_url":"https://api.github.com/repos/fxsjy/ins/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/fxsjy/ins/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/fxsjy/ins/git/refs{/sha}","trees_url":"https://api.github.com/repos/fxsjy/ins/git/trees{/sha}","statuses_url":"https://api.github.com/repos/fxsjy/ins/statuses/{sha}","languages_url":"https://api.github.com/repos/fxsjy/ins/languages","stargazers_url":"https://api.github.com/repos/fxsjy/ins/stargazers","contributors_url":"https://api.github.com/repos/fxsjy/ins/contributors","subscribers_url":"https://api.github.com/repos/fxsjy/ins/subscribers","subscription_url":"https://api.github.com/repos/fxsjy/ins/subscription","commits_url":"https://api.github.com/repos/fxsjy/ins/commits{/sha}","git_commits_url":"https://api.github.com/repos/fxsjy/ins/git/commits{/sha}","comments_url":"https://api.github.com/repos/fxsjy/ins/comments{/number}","issue_comment_url":"https://api.github.com/repos/fxsjy/ins/issues/comments{/number}","contents_url":"https://api.github.com/repos/fxsjy/ins/contents/{+path}","compare_url":"https://api.github.com/repos/fxsjy/ins/compare/{base}...{head}","merges_url":"https://api.github.com/repos/fxsjy/ins/merges","archive_url":"https://api.github.com/repos/fxsjy/ins/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/fxsjy/ins/downloads","issues_url":"https://api.github.com/repos/fxsjy/ins/issues{/number}","pulls_url":"https://api.github.com/repos/fxsjy/ins/pulls{/number}","milestones_url":"https://api.github.com/repos/fxsjy/ins/milestones{/number}","notifications_url":"https://api.github.com/repos/fxsjy/ins/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/fxsjy/ins/labels{/name}","releases_url":"https://api.github.com/repos/fxsjy/ins/releases{/id}","created_at":"2015-05-05T14:33:02Z","updated_at":"2015-08-22T07:50:02Z","pushed_at":"2015-08-29T10:07:30Z","git_url":"git://github.com/fxsjy/ins.git","ssh_url":"git@github.com:fxsjy/ins.git","clone_url":"https://github.com/fxsjy/ins.git","svn_url":"https://github.com/fxsjy/ins","homepage":"","size":3628,"stargazers_count":29,"watchers_count":29,"language":"C++","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":14,"mirror_url":null,"open_issues_count":1,"forks":14,"open_issues":1,"watchers":29,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/fxsjy/ins/pulls/15"},"html":{"href":"https://github.com/fxsjy/ins/pull/15"},"issue":{"href":"https://api.github.com/repos/fxsjy/ins/issues/15"},"comments":{"href":"https://api.github.com/repos/fxsjy/ins/issues/15/comments"},"review_comments":{"href":"https://api.github.com/repos/fxsjy/ins/pulls/15/comments"},"review_comment":{"href":"https://api.github.com/repos/fxsjy/ins/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/fxsjy/ins/pulls/15/commits"},"statuses":{"href":"https://api.github.com/repos/fxsjy/ins/statuses/40353d1d468d1cec05fdef1adbbdde1dacae84d2"}}}}