GitHub PullRequestReviewCommentEvent at 2014-07-26 09:57:55
Repository: share-system-team2
Actor: gvaldambrini
Payload: {"action":"created","comment":{"url":"https://api.github.com/repos/corso-python-prato/share-system-team2/pulls/comments/15433181","id":15433181,"diff_hunk":"@@ -41,6 +43,41 @@ def load_cfg(cfg_path=CONFIG_FILEPATH):\n     print 'Loaded default configuration for socket'\n \n \n+def validate_email(address):\n+    \"\"\"\n+    Validate an email address according to http://www.regular-expressions.info/email.html.\n+    :param address: str\n+    :return: bool\n+    \"\"\"\n+    # WARNING: it seems a not 100%-exhaustive email address validation.\n+    # source: http://www.regular-expressions.info/email.html\n+    regexp = r'\\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}\\b'\n+    return bool(re.search(regexp, address, re.IGNORECASE))","path":"client/client_cmdmanager.py","position":22,"original_position":22,"commit_id":"16daf63dc5b2548f4ad300d90afad4159e45fc1c","original_commit_id":"16daf63dc5b2548f4ad300d90afad4159e45fc1c","user":{"login":"gvaldambrini","id":2461921,"avatar_url":"https://avatars.githubusercontent.com/u/2461921?","gravatar_id":"2f88df6f3daf65f67c3a12d8c6569273","url":"https://api.github.com/users/gvaldambrini","html_url":"https://github.com/gvaldambrini","followers_url":"https://api.github.com/users/gvaldambrini/followers","following_url":"https://api.github.com/users/gvaldambrini/following{/other_user}","gists_url":"https://api.github.com/users/gvaldambrini/gists{/gist_id}","starred_url":"https://api.github.com/users/gvaldambrini/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gvaldambrini/subscriptions","organizations_url":"https://api.github.com/users/gvaldambrini/orgs","repos_url":"https://api.github.com/users/gvaldambrini/repos","events_url":"https://api.github.com/users/gvaldambrini/events{/privacy}","received_events_url":"https://api.github.com/users/gvaldambrini/received_events","type":"User","site_admin":false},"body":"Potrebbe valer la pena estrarre la regexp e compilarla in un oggetto globale, che poi userai qua per farne il search, quindi ad esempio qualcosa come:\r\n```\r\nEMAIL_REG_OBJ = re.compile(r'\\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}\\b', re.IGNORECASE)\r\n```","created_at":"2014-07-26T09:57:55Z","updated_at":"2014-07-26T09:57:55Z","html_url":"https://github.com/corso-python-prato/share-system-team2/pull/49#discussion_r15433181","pull_request_url":"https://api.github.com/repos/corso-python-prato/share-system-team2/pulls/49","_links":{"self":{"href":"https://api.github.com/repos/corso-python-prato/share-system-team2/pulls/comments/15433181"},"html":{"href":"https://github.com/corso-python-prato/share-system-team2/pull/49#discussion_r15433181"},"pull_request":{"href":"https://api.github.com/repos/corso-python-prato/share-system-team2/pulls/49"}}},"pull_request":{"url":"https://api.github.com/repos/corso-python-prato/share-system-team2/pulls/49","id":18893062,"html_url":"https://github.com/corso-python-prato/share-system-team2/pull/49","diff_url":"https://github.com/corso-python-prato/share-system-team2/pull/49.diff","patch_url":"https://github.com/corso-python-prato/share-system-team2/pull/49.patch","issue_url":"https://api.github.com/repos/corso-python-prato/share-system-team2/issues/49","number":49,"state":"open","title":"Password recovery","user":{"login":"iacopy","id":4771794,"avatar_url":"https://avatars.githubusercontent.com/u/4771794?","gravatar_id":"79a0057d7d4de0f64eac0b10a6e7f518","url":"https://api.github.com/users/iacopy","html_url":"https://github.com/iacopy","followers_url":"https://api.github.com/users/iacopy/followers","following_url":"https://api.github.com/users/iacopy/following{/other_user}","gists_url":"https://api.github.com/users/iacopy/gists{/gist_id}","starred_url":"https://api.github.com/users/iacopy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/iacopy/subscriptions","organizations_url":"https://api.github.com/users/iacopy/orgs","repos_url":"https://api.github.com/users/iacopy/repos","events_url":"https://api.github.com/users/iacopy/events{/privacy}","received_events_url":"https://api.github.com/users/iacopy/received_events","type":"User","site_admin":false},"body":"","created_at":"2014-07-25T12:36:57Z","updated_at":"2014-07-26T09:57:55Z","closed_at":null,"merged_at":null,"merge_commit_sha":"e822d0612fa3d0656114ddfde4cc9513d655fb97","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/corso-python-prato/share-system-team2/pulls/49/commits","review_comments_url":"https://api.github.com/repos/corso-python-prato/share-system-team2/pulls/49/comments","review_comment_url":"https://api.github.com/repos/corso-python-prato/share-system-team2/pulls/comments/{number}","comments_url":"https://api.github.com/repos/corso-python-prato/share-system-team2/issues/49/comments","statuses_url":"https://api.github.com/repos/corso-python-prato/share-system-team2/statuses/16daf63dc5b2548f4ad300d90afad4159e45fc1c","head":{"label":"iacopy:password-recovery","ref":"password-recovery","sha":"16daf63dc5b2548f4ad300d90afad4159e45fc1c","user":{"login":"iacopy","id":4771794,"avatar_url":"https://avatars.githubusercontent.com/u/4771794?","gravatar_id":"79a0057d7d4de0f64eac0b10a6e7f518","url":"https://api.github.com/users/iacopy","html_url":"https://github.com/iacopy","followers_url":"https://api.github.com/users/iacopy/followers","following_url":"https://api.github.com/users/iacopy/following{/other_user}","gists_url":"https://api.github.com/users/iacopy/gists{/gist_id}","starred_url":"https://api.github.com/users/iacopy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/iacopy/subscriptions","organizations_url":"https://api.github.com/users/iacopy/orgs","repos_url":"https://api.github.com/users/iacopy/repos","events_url":"https://api.github.com/users/iacopy/events{/privacy}","received_events_url":"https://api.github.com/users/iacopy/received_events","type":"User","site_admin":false},"repo":{"id":21490063,"name":"share-system-team2","full_name":"iacopy/share-system-team2","owner":{"login":"iacopy","id":4771794,"avatar_url":"https://avatars.githubusercontent.com/u/4771794?","gravatar_id":"79a0057d7d4de0f64eac0b10a6e7f518","url":"https://api.github.com/users/iacopy","html_url":"https://github.com/iacopy","followers_url":"https://api.github.com/users/iacopy/followers","following_url":"https://api.github.com/users/iacopy/following{/other_user}","gists_url":"https://api.github.com/users/iacopy/gists{/gist_id}","starred_url":"https://api.github.com/users/iacopy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/iacopy/subscriptions","organizations_url":"https://api.github.com/users/iacopy/orgs","repos_url":"https://api.github.com/users/iacopy/repos","events_url":"https://api.github.com/users/iacopy/events{/privacy}","received_events_url":"https://api.github.com/users/iacopy/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/iacopy/share-system-team2","description":"","fork":true,"url":"https://api.github.com/repos/iacopy/share-system-team2","forks_url":"https://api.github.com/repos/iacopy/share-system-team2/forks","keys_url":"https://api.github.com/repos/iacopy/share-system-team2/keys{/key_id}","collaborators_url":"https://api.github.com/repos/iacopy/share-system-team2/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/iacopy/share-system-team2/teams","hooks_url":"https://api.github.com/repos/iacopy/share-system-team2/hooks","issue_events_url":"https://api.github.com/repos/iacopy/share-system-team2/issues/events{/number}","events_url":"https://api.github.com/repos/iacopy/share-system-team2/events","assignees_url":"https://api.github.com/repos/iacopy/share-system-team2/assignees{/user}","branches_url":"https://api.github.com/repos/iacopy/share-system-team2/branches{/branch}","tags_url":"https://api.github.com/repos/iacopy/share-system-team2/tags","blobs_url":"https://api.github.com/repos/iacopy/share-system-team2/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/iacopy/share-system-team2/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/iacopy/share-system-team2/git/refs{/sha}","trees_url":"https://api.github.com/repos/iacopy/share-system-team2/git/trees{/sha}","statuses_url":"https://api.github.com/repos/iacopy/share-system-team2/statuses/{sha}","languages_url":"https://api.github.com/repos/iacopy/share-system-team2/languages","stargazers_url":"https://api.github.com/repos/iacopy/share-system-team2/stargazers","contributors_url":"https://api.github.com/repos/iacopy/share-system-team2/contributors","subscribers_url":"https://api.github.com/repos/iacopy/share-system-team2/subscribers","subscription_url":"https://api.github.com/repos/iacopy/share-system-team2/subscription","commits_url":"https://api.github.com/repos/iacopy/share-system-team2/commits{/sha}","git_commits_url":"https://api.github.com/repos/iacopy/share-system-team2/git/commits{/sha}","comments_url":"https://api.github.com/repos/iacopy/share-system-team2/comments{/number}","issue_comment_url":"https://api.github.com/repos/iacopy/share-system-team2/issues/comments/{number}","contents_url":"https://api.github.com/repos/iacopy/share-system-team2/contents/{+path}","compare_url":"https://api.github.com/repos/iacopy/share-system-team2/compare/{base}...{head}","merges_url":"https://api.github.com/repos/iacopy/share-system-team2/merges","archive_url":"https://api.github.com/repos/iacopy/share-system-team2/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/iacopy/share-system-team2/downloads","issues_url":"https://api.github.com/repos/iacopy/share-system-team2/issues{/number}","pulls_url":"https://api.github.com/repos/iacopy/share-system-team2/pulls{/number}","milestones_url":"https://api.github.com/repos/iacopy/share-system-team2/milestones{/number}","notifications_url":"https://api.github.com/repos/iacopy/share-system-team2/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/iacopy/share-system-team2/labels{/name}","releases_url":"https://api.github.com/repos/iacopy/share-system-team2/releases{/id}","created_at":"2014-07-04T08:09:27Z","updated_at":"2014-07-10T08:57:45Z","pushed_at":"2014-07-25T15:41:50Z","git_url":"git://github.com/iacopy/share-system-team2.git","ssh_url":"git@github.com:iacopy/share-system-team2.git","clone_url":"https://github.com/iacopy/share-system-team2.git","svn_url":"https://github.com/iacopy/share-system-team2","homepage":null,"size":853,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_downloads":true,"has_wiki":true,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"corso-python-prato:master","ref":"master","sha":"6389d11a538c5be95cedcc8fa9d419160f06a83a","user":{"login":"corso-python-prato","id":7722179,"avatar_url":"https://avatars.githubusercontent.com/u/7722179?","gravatar_id":null,"url":"https://api.github.com/users/corso-python-prato","html_url":"https://github.com/corso-python-prato","followers_url":"https://api.github.com/users/corso-python-prato/followers","following_url":"https://api.github.com/users/corso-python-prato/following{/other_user}","gists_url":"https://api.github.com/users/corso-python-prato/gists{/gist_id}","starred_url":"https://api.github.com/users/corso-python-prato/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/corso-python-prato/subscriptions","organizations_url":"https://api.github.com/users/corso-python-prato/orgs","repos_url":"https://api.github.com/users/corso-python-prato/repos","events_url":"https://api.github.com/users/corso-python-prato/events{/privacy}","received_events_url":"https://api.github.com/users/corso-python-prato/received_events","type":"Organization","site_admin":false},"repo":{"id":20299137,"name":"share-system-team2","full_name":"corso-python-prato/share-system-team2","owner":{"login":"corso-python-prato","id":7722179,"avatar_url":"https://avatars.githubusercontent.com/u/7722179?","gravatar_id":null,"url":"https://api.github.com/users/corso-python-prato","html_url":"https://github.com/corso-python-prato","followers_url":"https://api.github.com/users/corso-python-prato/followers","following_url":"https://api.github.com/users/corso-python-prato/following{/other_user}","gists_url":"https://api.github.com/users/corso-python-prato/gists{/gist_id}","starred_url":"https://api.github.com/users/corso-python-prato/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/corso-python-prato/subscriptions","organizations_url":"https://api.github.com/users/corso-python-prato/orgs","repos_url":"https://api.github.com/users/corso-python-prato/repos","events_url":"https://api.github.com/users/corso-python-prato/events{/privacy}","received_events_url":"https://api.github.com/users/corso-python-prato/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/corso-python-prato/share-system-team2","description":"","fork":false,"url":"https://api.github.com/repos/corso-python-prato/share-system-team2","forks_url":"https://api.github.com/repos/corso-python-prato/share-system-team2/forks","keys_url":"https://api.github.com/repos/corso-python-prato/share-system-team2/keys{/key_id}","collaborators_url":"https://api.github.com/repos/corso-python-prato/share-system-team2/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/corso-python-prato/share-system-team2/teams","hooks_url":"https://api.github.com/repos/corso-python-prato/share-system-team2/hooks","issue_events_url":"https://api.github.com/repos/corso-python-prato/share-system-team2/issues/events{/number}","events_url":"https://api.github.com/repos/corso-python-prato/share-system-team2/events","assignees_url":"https://api.github.com/repos/corso-python-prato/share-system-team2/assignees{/user}","branches_url":"https://api.github.com/repos/corso-python-prato/share-system-team2/branches{/branch}","tags_url":"https://api.github.com/repos/corso-python-prato/share-system-team2/tags","blobs_url":"https://api.github.com/repos/corso-python-prato/share-system-team2/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/corso-python-prato/share-system-team2/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/corso-python-prato/share-system-team2/git/refs{/sha}","trees_url":"https://api.github.com/repos/corso-python-prato/share-system-team2/git/trees{/sha}","statuses_url":"https://api.github.com/repos/corso-python-prato/share-system-team2/statuses/{sha}","languages_url":"https://api.github.com/repos/corso-python-prato/share-system-team2/languages","stargazers_url":"https://api.github.com/repos/corso-python-prato/share-system-team2/stargazers","contributors_url":"https://api.github.com/repos/corso-python-prato/share-system-team2/contributors","subscribers_url":"https://api.github.com/repos/corso-python-prato/share-system-team2/subscribers","subscription_url":"https://api.github.com/repos/corso-python-prato/share-system-team2/subscription","commits_url":"https://api.github.com/repos/corso-python-prato/share-system-team2/commits{/sha}","git_commits_url":"https://api.github.com/repos/corso-python-prato/share-system-team2/git/commits{/sha}","comments_url":"https://api.github.com/repos/corso-python-prato/share-system-team2/comments{/number}","issue_comment_url":"https://api.github.com/repos/corso-python-prato/share-system-team2/issues/comments/{number}","contents_url":"https://api.github.com/repos/corso-python-prato/share-system-team2/contents/{+path}","compare_url":"https://api.github.com/repos/corso-python-prato/share-system-team2/compare/{base}...{head}","merges_url":"https://api.github.com/repos/corso-python-prato/share-system-team2/merges","archive_url":"https://api.github.com/repos/corso-python-prato/share-system-team2/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/corso-python-prato/share-system-team2/downloads","issues_url":"https://api.github.com/repos/corso-python-prato/share-system-team2/issues{/number}","pulls_url":"https://api.github.com/repos/corso-python-prato/share-system-team2/pulls{/number}","milestones_url":"https://api.github.com/repos/corso-python-prato/share-system-team2/milestones{/number}","notifications_url":"https://api.github.com/repos/corso-python-prato/share-system-team2/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/corso-python-prato/share-system-team2/labels{/name}","releases_url":"https://api.github.com/repos/corso-python-prato/share-system-team2/releases{/id}","created_at":"2014-05-29T15:50:08Z","updated_at":"2014-07-21T21:57:58Z","pushed_at":"2014-07-22T19:22:00Z","git_url":"git://github.com/corso-python-prato/share-system-team2.git","ssh_url":"git@github.com:corso-python-prato/share-system-team2.git","clone_url":"https://github.com/corso-python-prato/share-system-team2.git","svn_url":"https://github.com/corso-python-prato/share-system-team2","homepage":null,"size":3045,"stargazers_count":2,"watchers_count":2,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"forks_count":8,"mirror_url":null,"open_issues_count":27,"forks":8,"open_issues":27,"watchers":2,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/corso-python-prato/share-system-team2/pulls/49"},"html":{"href":"https://github.com/corso-python-prato/share-system-team2/pull/49"},"issue":{"href":"https://api.github.com/repos/corso-python-prato/share-system-team2/issues/49"},"comments":{"href":"https://api.github.com/repos/corso-python-prato/share-system-team2/issues/49/comments"},"review_comments":{"href":"https://api.github.com/repos/corso-python-prato/share-system-team2/pulls/49/comments"},"review_comment":{"href":"https://api.github.com/repos/corso-python-prato/share-system-team2/pulls/comments/{number}"},"commits":{"href":"https://api.github.com/repos/corso-python-prato/share-system-team2/pulls/49/commits"},"statuses":{"href":"https://api.github.com/repos/corso-python-prato/share-system-team2/statuses/16daf63dc5b2548f4ad300d90afad4159e45fc1c"}}}}