{"action":"created","comment":{"url":"https://api.github.com/repos/zulip/zulip/pulls/comments/90925530","pull_request_review_id":11438983,"id":90925530,"diff_hunk":"@@ -537,7 +537,7 @@ inline.breaks = merge({}, inline.gfm, {\n inline.zulip = merge({}, inline.breaks, {\n   emoji: /^:([A-Za-z0-9_\\-\\+]+?):/,\n   unicodeemoji: /^(\\ud83c[\\udf00-\\udfff]|\\ud83d[\\udc00-\\ude4f]|\\ud83d[\\ude80-\\udeff]|[\\u2600-\\u26FF]|[\\u2700-\\u27BF])/,\n-  usermention: /^(@(?:\\*\\*([^\\*]+)?\\*\\*|(\\w+)?))/m, // Match multi-word string between @** ** or match any one-word\n+  usermention: /^(@(?:\\*\\*([^\\*]+)+\\*\\*|(\\w+)+))/m, // Match multi-word string between @** ** or match any one-word","path":"static/third/marked/lib/marked.js","position":5,"original_position":5,"commit_id":"a24183667fb2fab8f5e03ae781c013c5544c9b43","original_commit_id":"a24183667fb2fab8f5e03ae781c013c5544c9b43","user":{"login":"pweaver","id":611620,"avatar_url":"https://avatars.githubusercontent.com/u/611620?v=3","gravatar_id":"","url":"https://api.github.com/users/pweaver","html_url":"https://github.com/pweaver","followers_url":"https://api.github.com/users/pweaver/followers","following_url":"https://api.github.com/users/pweaver/following{/other_user}","gists_url":"https://api.github.com/users/pweaver/gists{/gist_id}","starred_url":"https://api.github.com/users/pweaver/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pweaver/subscriptions","organizations_url":"https://api.github.com/users/pweaver/orgs","repos_url":"https://api.github.com/users/pweaver/repos","events_url":"https://api.github.com/users/pweaver/events{/privacy}","received_events_url":"https://api.github.com/users/pweaver/received_events","type":"User","site_admin":false},"body":"The parenthesis are for group capturing. See https://docs.python.org/2/howto/regex.html#grouping\r\nThe ?: Tells python to not capture the middle group.","created_at":"2016-12-05T18:28:08Z","updated_at":"2016-12-05T18:28:08Z","html_url":"https://github.com/zulip/zulip/pull/2602#discussion_r90925530","pull_request_url":"https://api.github.com/repos/zulip/zulip/pulls/2602","_links":{"self":{"href":"https://api.github.com/repos/zulip/zulip/pulls/comments/90925530"},"html":{"href":"https://github.com/zulip/zulip/pull/2602#discussion_r90925530"},"pull_request":{"href":"https://api.github.com/repos/zulip/zulip/pulls/2602"}}},"pull_request":{"url":"https://api.github.com/repos/zulip/zulip/pulls/2602","id":96559940,"html_url":"https://github.com/zulip/zulip/pull/2602","diff_url":"https://github.com/zulip/zulip/pull/2602.diff","patch_url":"https://github.com/zulip/zulip/pull/2602.patch","issue_url":"https://api.github.com/repos/zulip/zulip/issues/2602","number":2602,"state":"open","locked":false,"title":"bug fix: Handle empty at-mentions gracefully.","user":{"login":"YagoGG","id":7356565,"avatar_url":"https://avatars.githubusercontent.com/u/7356565?v=3","gravatar_id":"","url":"https://api.github.com/users/YagoGG","html_url":"https://github.com/YagoGG","followers_url":"https://api.github.com/users/YagoGG/followers","following_url":"https://api.github.com/users/YagoGG/following{/other_user}","gists_url":"https://api.github.com/users/YagoGG/gists{/gist_id}","starred_url":"https://api.github.com/users/YagoGG/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/YagoGG/subscriptions","organizations_url":"https://api.github.com/users/YagoGG/orgs","repos_url":"https://api.github.com/users/YagoGG/repos","events_url":"https://api.github.com/users/YagoGG/events{/privacy}","received_events_url":"https://api.github.com/users/YagoGG/received_events","type":"User","site_admin":false},"body":"An exception in the webapp was trown when an empty mention was sent.\r\nExamples of problematic messages are \"@\" or \"@****\".\r\n\r\nIn order to fix this, the regex that identifies mentions has been modified, so it now requires the mention to have a \"content\" (by replacing the ? quantifier by +).","created_at":"2016-12-05T16:19:41Z","updated_at":"2016-12-05T18:28:08Z","closed_at":null,"merged_at":null,"merge_commit_sha":"4cf358025566531aa3b37c97a9642135a85e9d71","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/zulip/zulip/pulls/2602/commits","review_comments_url":"https://api.github.com/repos/zulip/zulip/pulls/2602/comments","review_comment_url":"https://api.github.com/repos/zulip/zulip/pulls/comments{/number}","comments_url":"https://api.github.com/repos/zulip/zulip/issues/2602/comments","statuses_url":"https://api.github.com/repos/zulip/zulip/statuses/a24183667fb2fab8f5e03ae781c013c5544c9b43","head":{"label":"YagoGG:task-empty-at-mention","ref":"task-empty-at-mention","sha":"a24183667fb2fab8f5e03ae781c013c5544c9b43","user":{"login":"YagoGG","id":7356565,"avatar_url":"https://avatars.githubusercontent.com/u/7356565?v=3","gravatar_id":"","url":"https://api.github.com/users/YagoGG","html_url":"https://github.com/YagoGG","followers_url":"https://api.github.com/users/YagoGG/followers","following_url":"https://api.github.com/users/YagoGG/following{/other_user}","gists_url":"https://api.github.com/users/YagoGG/gists{/gist_id}","starred_url":"https://api.github.com/users/YagoGG/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/YagoGG/subscriptions","organizations_url":"https://api.github.com/users/YagoGG/orgs","repos_url":"https://api.github.com/users/YagoGG/repos","events_url":"https://api.github.com/users/YagoGG/events{/privacy}","received_events_url":"https://api.github.com/users/YagoGG/received_events","type":"User","site_admin":false},"repo":{"id":75532570,"name":"zulip","full_name":"YagoGG/zulip","owner":{"login":"YagoGG","id":7356565,"avatar_url":"https://avatars.githubusercontent.com/u/7356565?v=3","gravatar_id":"","url":"https://api.github.com/users/YagoGG","html_url":"https://github.com/YagoGG","followers_url":"https://api.github.com/users/YagoGG/followers","following_url":"https://api.github.com/users/YagoGG/following{/other_user}","gists_url":"https://api.github.com/users/YagoGG/gists{/gist_id}","starred_url":"https://api.github.com/users/YagoGG/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/YagoGG/subscriptions","organizations_url":"https://api.github.com/users/YagoGG/orgs","repos_url":"https://api.github.com/users/YagoGG/repos","events_url":"https://api.github.com/users/YagoGG/events{/privacy}","received_events_url":"https://api.github.com/users/YagoGG/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/YagoGG/zulip","description":"Zulip server - powerful open source group chat","fork":true,"url":"https://api.github.com/repos/YagoGG/zulip","forks_url":"https://api.github.com/repos/YagoGG/zulip/forks","keys_url":"https://api.github.com/repos/YagoGG/zulip/keys{/key_id}","collaborators_url":"https://api.github.com/repos/YagoGG/zulip/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/YagoGG/zulip/teams","hooks_url":"https://api.github.com/repos/YagoGG/zulip/hooks","issue_events_url":"https://api.github.com/repos/YagoGG/zulip/issues/events{/number}","events_url":"https://api.github.com/repos/YagoGG/zulip/events","assignees_url":"https://api.github.com/repos/YagoGG/zulip/assignees{/user}","branches_url":"https://api.github.com/repos/YagoGG/zulip/branches{/branch}","tags_url":"https://api.github.com/repos/YagoGG/zulip/tags","blobs_url":"https://api.github.com/repos/YagoGG/zulip/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/YagoGG/zulip/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/YagoGG/zulip/git/refs{/sha}","trees_url":"https://api.github.com/repos/YagoGG/zulip/git/trees{/sha}","statuses_url":"https://api.github.com/repos/YagoGG/zulip/statuses/{sha}","languages_url":"https://api.github.com/repos/YagoGG/zulip/languages","stargazers_url":"https://api.github.com/repos/YagoGG/zulip/stargazers","contributors_url":"https://api.github.com/repos/YagoGG/zulip/contributors","subscribers_url":"https://api.github.com/repos/YagoGG/zulip/subscribers","subscription_url":"https://api.github.com/repos/YagoGG/zulip/subscription","commits_url":"https://api.github.com/repos/YagoGG/zulip/commits{/sha}","git_commits_url":"https://api.github.com/repos/YagoGG/zulip/git/commits{/sha}","comments_url":"https://api.github.com/repos/YagoGG/zulip/comments{/number}","issue_comment_url":"https://api.github.com/repos/YagoGG/zulip/issues/comments{/number}","contents_url":"https://api.github.com/repos/YagoGG/zulip/contents/{+path}","compare_url":"https://api.github.com/repos/YagoGG/zulip/compare/{base}...{head}","merges_url":"https://api.github.com/repos/YagoGG/zulip/merges","archive_url":"https://api.github.com/repos/YagoGG/zulip/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/YagoGG/zulip/downloads","issues_url":"https://api.github.com/repos/YagoGG/zulip/issues{/number}","pulls_url":"https://api.github.com/repos/YagoGG/zulip/pulls{/number}","milestones_url":"https://api.github.com/repos/YagoGG/zulip/milestones{/number}","notifications_url":"https://api.github.com/repos/YagoGG/zulip/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/YagoGG/zulip/labels{/name}","releases_url":"https://api.github.com/repos/YagoGG/zulip/releases{/id}","deployments_url":"https://api.github.com/repos/YagoGG/zulip/deployments","created_at":"2016-12-04T11:10:51Z","updated_at":"2016-12-04T11:11:01Z","pushed_at":"2016-12-05T16:19:19Z","git_url":"git://github.com/YagoGG/zulip.git","ssh_url":"git@github.com:YagoGG/zulip.git","clone_url":"https://github.com/YagoGG/zulip.git","svn_url":"https://github.com/YagoGG/zulip","homepage":"","size":121600,"stargazers_count":0,"watchers_count":0,"language":"Python","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":"zulip:master","ref":"master","sha":"f354892ba451bb6614d46d0b862ca4619a79d90e","user":{"login":"zulip","id":4921959,"avatar_url":"https://avatars.githubusercontent.com/u/4921959?v=3","gravatar_id":"","url":"https://api.github.com/users/zulip","html_url":"https://github.com/zulip","followers_url":"https://api.github.com/users/zulip/followers","following_url":"https://api.github.com/users/zulip/following{/other_user}","gists_url":"https://api.github.com/users/zulip/gists{/gist_id}","starred_url":"https://api.github.com/users/zulip/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zulip/subscriptions","organizations_url":"https://api.github.com/users/zulip/orgs","repos_url":"https://api.github.com/users/zulip/repos","events_url":"https://api.github.com/users/zulip/events{/privacy}","received_events_url":"https://api.github.com/users/zulip/received_events","type":"Organization","site_admin":false},"repo":{"id":43160685,"name":"zulip","full_name":"zulip/zulip","owner":{"login":"zulip","id":4921959,"avatar_url":"https://avatars.githubusercontent.com/u/4921959?v=3","gravatar_id":"","url":"https://api.github.com/users/zulip","html_url":"https://github.com/zulip","followers_url":"https://api.github.com/users/zulip/followers","following_url":"https://api.github.com/users/zulip/following{/other_user}","gists_url":"https://api.github.com/users/zulip/gists{/gist_id}","starred_url":"https://api.github.com/users/zulip/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zulip/subscriptions","organizations_url":"https://api.github.com/users/zulip/orgs","repos_url":"https://api.github.com/users/zulip/repos","events_url":"https://api.github.com/users/zulip/events{/privacy}","received_events_url":"https://api.github.com/users/zulip/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/zulip/zulip","description":"Zulip server - powerful open source group chat","fork":false,"url":"https://api.github.com/repos/zulip/zulip","forks_url":"https://api.github.com/repos/zulip/zulip/forks","keys_url":"https://api.github.com/repos/zulip/zulip/keys{/key_id}","collaborators_url":"https://api.github.com/repos/zulip/zulip/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/zulip/zulip/teams","hooks_url":"https://api.github.com/repos/zulip/zulip/hooks","issue_events_url":"https://api.github.com/repos/zulip/zulip/issues/events{/number}","events_url":"https://api.github.com/repos/zulip/zulip/events","assignees_url":"https://api.github.com/repos/zulip/zulip/assignees{/user}","branches_url":"https://api.github.com/repos/zulip/zulip/branches{/branch}","tags_url":"https://api.github.com/repos/zulip/zulip/tags","blobs_url":"https://api.github.com/repos/zulip/zulip/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/zulip/zulip/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/zulip/zulip/git/refs{/sha}","trees_url":"https://api.github.com/repos/zulip/zulip/git/trees{/sha}","statuses_url":"https://api.github.com/repos/zulip/zulip/statuses/{sha}","languages_url":"https://api.github.com/repos/zulip/zulip/languages","stargazers_url":"https://api.github.com/repos/zulip/zulip/stargazers","contributors_url":"https://api.github.com/repos/zulip/zulip/contributors","subscribers_url":"https://api.github.com/repos/zulip/zulip/subscribers","subscription_url":"https://api.github.com/repos/zulip/zulip/subscription","commits_url":"https://api.github.com/repos/zulip/zulip/commits{/sha}","git_commits_url":"https://api.github.com/repos/zulip/zulip/git/commits{/sha}","comments_url":"https://api.github.com/repos/zulip/zulip/comments{/number}","issue_comment_url":"https://api.github.com/repos/zulip/zulip/issues/comments{/number}","contents_url":"https://api.github.com/repos/zulip/zulip/contents/{+path}","compare_url":"https://api.github.com/repos/zulip/zulip/compare/{base}...{head}","merges_url":"https://api.github.com/repos/zulip/zulip/merges","archive_url":"https://api.github.com/repos/zulip/zulip/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/zulip/zulip/downloads","issues_url":"https://api.github.com/repos/zulip/zulip/issues{/number}","pulls_url":"https://api.github.com/repos/zulip/zulip/pulls{/number}","milestones_url":"https://api.github.com/repos/zulip/zulip/milestones{/number}","notifications_url":"https://api.github.com/repos/zulip/zulip/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/zulip/zulip/labels{/name}","releases_url":"https://api.github.com/repos/zulip/zulip/releases{/id}","deployments_url":"https://api.github.com/repos/zulip/zulip/deployments","created_at":"2015-09-25T16:37:25Z","updated_at":"2016-12-05T09:54:10Z","pushed_at":"2016-12-05T18:21:52Z","git_url":"git://github.com/zulip/zulip.git","ssh_url":"git@github.com:zulip/zulip.git","clone_url":"https://github.com/zulip/zulip.git","svn_url":"https://github.com/zulip/zulip","homepage":"","size":134219,"stargazers_count":4319,"watchers_count":4319,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":886,"mirror_url":null,"open_issues_count":628,"forks":886,"open_issues":628,"watchers":4319,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/zulip/zulip/pulls/2602"},"html":{"href":"https://github.com/zulip/zulip/pull/2602"},"issue":{"href":"https://api.github.com/repos/zulip/zulip/issues/2602"},"comments":{"href":"https://api.github.com/repos/zulip/zulip/issues/2602/comments"},"review_comments":{"href":"https://api.github.com/repos/zulip/zulip/pulls/2602/comments"},"review_comment":{"href":"https://api.github.com/repos/zulip/zulip/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/zulip/zulip/pulls/2602/commits"},"statuses":{"href":"https://api.github.com/repos/zulip/zulip/statuses/a24183667fb2fab8f5e03ae781c013c5544c9b43"}}}}
{"actor":{"display_login":"pweaver"}}