{"action":"created","comment":{"url":"https://api.github.com/repos/mozilla/zamboni/pulls/comments/25622065","id":25622065,"diff_hunk":"@@ -0,0 +1,3 @@\n+ALTER TABLE `comm_thread_cc`\n+    MODIFY COLUMN `user_id` int(11) unsigned NULL,\n+    ADD COLUMN `nonuser_email` varchar(255) NULL;","path":"migrations/898-comm-cc-nonuser.sql","position":3,"original_position":3,"commit_id":"47102e2f32b29c148e3f593b854e445bc543e5f1","original_commit_id":"47102e2f32b29c148e3f593b854e445bc543e5f1","user":{"login":"ngokevin","id":674727,"avatar_url":"https://avatars.githubusercontent.com/u/674727?v=3","gravatar_id":"","url":"https://api.github.com/users/ngokevin","html_url":"https://github.com/ngokevin","followers_url":"https://api.github.com/users/ngokevin/followers","following_url":"https://api.github.com/users/ngokevin/following{/other_user}","gists_url":"https://api.github.com/users/ngokevin/gists{/gist_id}","starred_url":"https://api.github.com/users/ngokevin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ngokevin/subscriptions","organizations_url":"https://api.github.com/users/ngokevin/orgs","repos_url":"https://api.github.com/users/ngokevin/repos","events_url":"https://api.github.com/users/ngokevin/events{/privacy}","received_events_url":"https://api.github.com/users/ngokevin/received_events","type":"User","site_admin":false},"body":"How about additional logic to remove CCs if the Mozilla contact is removed?","created_at":"2015-03-02T18:13:06Z","updated_at":"2015-03-02T18:13:06Z","html_url":"https://github.com/mozilla/zamboni/pull/2951#discussion_r25622065","pull_request_url":"https://api.github.com/repos/mozilla/zamboni/pulls/2951","_links":{"self":{"href":"https://api.github.com/repos/mozilla/zamboni/pulls/comments/25622065"},"html":{"href":"https://github.com/mozilla/zamboni/pull/2951#discussion_r25622065"},"pull_request":{"href":"https://api.github.com/repos/mozilla/zamboni/pulls/2951"}}},"pull_request":{"url":"https://api.github.com/repos/mozilla/zamboni/pulls/2951","id":30212569,"html_url":"https://github.com/mozilla/zamboni/pull/2951","diff_url":"https://github.com/mozilla/zamboni/pull/2951.diff","patch_url":"https://github.com/mozilla/zamboni/pull/2951.patch","issue_url":"https://api.github.com/repos/mozilla/zamboni/issues/2951","number":2951,"state":"open","locked":false,"title":"have comm email moz contacts that don't have mkt accounts (bug 1132010)","user":{"login":"ngokevin","id":674727,"avatar_url":"https://avatars.githubusercontent.com/u/674727?v=3","gravatar_id":"","url":"https://api.github.com/users/ngokevin","html_url":"https://github.com/ngokevin","followers_url":"https://api.github.com/users/ngokevin/followers","following_url":"https://api.github.com/users/ngokevin/following{/other_user}","gists_url":"https://api.github.com/users/ngokevin/gists{/gist_id}","starred_url":"https://api.github.com/users/ngokevin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ngokevin/subscriptions","organizations_url":"https://api.github.com/users/ngokevin/orgs","repos_url":"https://api.github.com/users/ngokevin/repos","events_url":"https://api.github.com/users/ngokevin/events{/privacy}","received_events_url":"https://api.github.com/users/ngokevin/received_events","type":"User","site_admin":false},"body":"Commbadge was built assuming everyone involved had Marketplace accounts, which had the benefit of generating nice Reply-To tokens. Not the case. Some Mozilla contacts aren't registered with us.\r\n\r\n- Add a flat email field to CommThreadCC\r\n- CommThreadCC determines who gets emailed upon a creation of a note/comment.\r\n- When a note is created, we check for Mozilla contacts without accounts and generate a CommThreadCC with that flat email field.\r\n- When emailing, transform the nonuser CommThreadCC to be a recipient without a token \r\n- If a Mozilla contact ends up creating an email, we will delete the old CommThreadCC with a flat email field, and generate one that points to the user\r\n\r\nSome catches:\r\n\r\n- Mozilla contacts w/o user accounts will not have an option to Reply-To the email. Although the email template will state they can\r\n\r\nr? well, my Python and context of the Comm system is rusty :)","created_at":"2015-02-28T00:14:55Z","updated_at":"2015-03-02T18:13:06Z","closed_at":null,"merged_at":null,"merge_commit_sha":"23e263b9bd9deb9631771b1187f0771e127c173f","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/mozilla/zamboni/pulls/2951/commits","review_comments_url":"https://api.github.com/repos/mozilla/zamboni/pulls/2951/comments","review_comment_url":"https://api.github.com/repos/mozilla/zamboni/pulls/comments{/number}","comments_url":"https://api.github.com/repos/mozilla/zamboni/issues/2951/comments","statuses_url":"https://api.github.com/repos/mozilla/zamboni/statuses/47102e2f32b29c148e3f593b854e445bc543e5f1","head":{"label":"ngokevin:commmozcontact","ref":"commmozcontact","sha":"47102e2f32b29c148e3f593b854e445bc543e5f1","user":{"login":"ngokevin","id":674727,"avatar_url":"https://avatars.githubusercontent.com/u/674727?v=3","gravatar_id":"","url":"https://api.github.com/users/ngokevin","html_url":"https://github.com/ngokevin","followers_url":"https://api.github.com/users/ngokevin/followers","following_url":"https://api.github.com/users/ngokevin/following{/other_user}","gists_url":"https://api.github.com/users/ngokevin/gists{/gist_id}","starred_url":"https://api.github.com/users/ngokevin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ngokevin/subscriptions","organizations_url":"https://api.github.com/users/ngokevin/orgs","repos_url":"https://api.github.com/users/ngokevin/repos","events_url":"https://api.github.com/users/ngokevin/events{/privacy}","received_events_url":"https://api.github.com/users/ngokevin/received_events","type":"User","site_admin":false},"repo":{"id":4227957,"name":"zamboni","full_name":"ngokevin/zamboni","owner":{"login":"ngokevin","id":674727,"avatar_url":"https://avatars.githubusercontent.com/u/674727?v=3","gravatar_id":"","url":"https://api.github.com/users/ngokevin","html_url":"https://github.com/ngokevin","followers_url":"https://api.github.com/users/ngokevin/followers","following_url":"https://api.github.com/users/ngokevin/following{/other_user}","gists_url":"https://api.github.com/users/ngokevin/gists{/gist_id}","starred_url":"https://api.github.com/users/ngokevin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ngokevin/subscriptions","organizations_url":"https://api.github.com/users/ngokevin/orgs","repos_url":"https://api.github.com/users/ngokevin/repos","events_url":"https://api.github.com/users/ngokevin/events{/privacy}","received_events_url":"https://api.github.com/users/ngokevin/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/ngokevin/zamboni","description":"A clandestine operation to make AMO happy","fork":true,"url":"https://api.github.com/repos/ngokevin/zamboni","forks_url":"https://api.github.com/repos/ngokevin/zamboni/forks","keys_url":"https://api.github.com/repos/ngokevin/zamboni/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ngokevin/zamboni/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ngokevin/zamboni/teams","hooks_url":"https://api.github.com/repos/ngokevin/zamboni/hooks","issue_events_url":"https://api.github.com/repos/ngokevin/zamboni/issues/events{/number}","events_url":"https://api.github.com/repos/ngokevin/zamboni/events","assignees_url":"https://api.github.com/repos/ngokevin/zamboni/assignees{/user}","branches_url":"https://api.github.com/repos/ngokevin/zamboni/branches{/branch}","tags_url":"https://api.github.com/repos/ngokevin/zamboni/tags","blobs_url":"https://api.github.com/repos/ngokevin/zamboni/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ngokevin/zamboni/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ngokevin/zamboni/git/refs{/sha}","trees_url":"https://api.github.com/repos/ngokevin/zamboni/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ngokevin/zamboni/statuses/{sha}","languages_url":"https://api.github.com/repos/ngokevin/zamboni/languages","stargazers_url":"https://api.github.com/repos/ngokevin/zamboni/stargazers","contributors_url":"https://api.github.com/repos/ngokevin/zamboni/contributors","subscribers_url":"https://api.github.com/repos/ngokevin/zamboni/subscribers","subscription_url":"https://api.github.com/repos/ngokevin/zamboni/subscription","commits_url":"https://api.github.com/repos/ngokevin/zamboni/commits{/sha}","git_commits_url":"https://api.github.com/repos/ngokevin/zamboni/git/commits{/sha}","comments_url":"https://api.github.com/repos/ngokevin/zamboni/comments{/number}","issue_comment_url":"https://api.github.com/repos/ngokevin/zamboni/issues/comments{/number}","contents_url":"https://api.github.com/repos/ngokevin/zamboni/contents/{+path}","compare_url":"https://api.github.com/repos/ngokevin/zamboni/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ngokevin/zamboni/merges","archive_url":"https://api.github.com/repos/ngokevin/zamboni/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ngokevin/zamboni/downloads","issues_url":"https://api.github.com/repos/ngokevin/zamboni/issues{/number}","pulls_url":"https://api.github.com/repos/ngokevin/zamboni/pulls{/number}","milestones_url":"https://api.github.com/repos/ngokevin/zamboni/milestones{/number}","notifications_url":"https://api.github.com/repos/ngokevin/zamboni/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ngokevin/zamboni/labels{/name}","releases_url":"https://api.github.com/repos/ngokevin/zamboni/releases{/id}","created_at":"2012-05-04T18:44:23Z","updated_at":"2014-07-02T20:29:57Z","pushed_at":"2015-02-28T00:11:51Z","git_url":"git://github.com/ngokevin/zamboni.git","ssh_url":"git@github.com:ngokevin/zamboni.git","clone_url":"https://github.com/ngokevin/zamboni.git","svn_url":"https://github.com/ngokevin/zamboni","homepage":"http://mozilla.github.com/zamboni/","size":329395,"stargazers_count":1,"watchers_count":1,"language":"Python","has_issues":false,"has_downloads":false,"has_wiki":false,"has_pages":true,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":1,"default_branch":"master"}},"base":{"label":"mozilla:master","ref":"master","sha":"daf41e178e2a04820864c42067c6b999d838f609","user":{"login":"mozilla","id":131524,"avatar_url":"https://avatars.githubusercontent.com/u/131524?v=3","gravatar_id":"","url":"https://api.github.com/users/mozilla","html_url":"https://github.com/mozilla","followers_url":"https://api.github.com/users/mozilla/followers","following_url":"https://api.github.com/users/mozilla/following{/other_user}","gists_url":"https://api.github.com/users/mozilla/gists{/gist_id}","starred_url":"https://api.github.com/users/mozilla/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mozilla/subscriptions","organizations_url":"https://api.github.com/users/mozilla/orgs","repos_url":"https://api.github.com/users/mozilla/repos","events_url":"https://api.github.com/users/mozilla/events{/privacy}","received_events_url":"https://api.github.com/users/mozilla/received_events","type":"Organization","site_admin":false},"repo":{"id":347655,"name":"zamboni","full_name":"mozilla/zamboni","owner":{"login":"mozilla","id":131524,"avatar_url":"https://avatars.githubusercontent.com/u/131524?v=3","gravatar_id":"","url":"https://api.github.com/users/mozilla","html_url":"https://github.com/mozilla","followers_url":"https://api.github.com/users/mozilla/followers","following_url":"https://api.github.com/users/mozilla/following{/other_user}","gists_url":"https://api.github.com/users/mozilla/gists{/gist_id}","starred_url":"https://api.github.com/users/mozilla/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mozilla/subscriptions","organizations_url":"https://api.github.com/users/mozilla/orgs","repos_url":"https://api.github.com/users/mozilla/repos","events_url":"https://api.github.com/users/mozilla/events{/privacy}","received_events_url":"https://api.github.com/users/mozilla/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/mozilla/zamboni","description":"Backend for the Firefox Marketplace","fork":false,"url":"https://api.github.com/repos/mozilla/zamboni","forks_url":"https://api.github.com/repos/mozilla/zamboni/forks","keys_url":"https://api.github.com/repos/mozilla/zamboni/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mozilla/zamboni/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mozilla/zamboni/teams","hooks_url":"https://api.github.com/repos/mozilla/zamboni/hooks","issue_events_url":"https://api.github.com/repos/mozilla/zamboni/issues/events{/number}","events_url":"https://api.github.com/repos/mozilla/zamboni/events","assignees_url":"https://api.github.com/repos/mozilla/zamboni/assignees{/user}","branches_url":"https://api.github.com/repos/mozilla/zamboni/branches{/branch}","tags_url":"https://api.github.com/repos/mozilla/zamboni/tags","blobs_url":"https://api.github.com/repos/mozilla/zamboni/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mozilla/zamboni/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mozilla/zamboni/git/refs{/sha}","trees_url":"https://api.github.com/repos/mozilla/zamboni/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mozilla/zamboni/statuses/{sha}","languages_url":"https://api.github.com/repos/mozilla/zamboni/languages","stargazers_url":"https://api.github.com/repos/mozilla/zamboni/stargazers","contributors_url":"https://api.github.com/repos/mozilla/zamboni/contributors","subscribers_url":"https://api.github.com/repos/mozilla/zamboni/subscribers","subscription_url":"https://api.github.com/repos/mozilla/zamboni/subscription","commits_url":"https://api.github.com/repos/mozilla/zamboni/commits{/sha}","git_commits_url":"https://api.github.com/repos/mozilla/zamboni/git/commits{/sha}","comments_url":"https://api.github.com/repos/mozilla/zamboni/comments{/number}","issue_comment_url":"https://api.github.com/repos/mozilla/zamboni/issues/comments{/number}","contents_url":"https://api.github.com/repos/mozilla/zamboni/contents/{+path}","compare_url":"https://api.github.com/repos/mozilla/zamboni/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mozilla/zamboni/merges","archive_url":"https://api.github.com/repos/mozilla/zamboni/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mozilla/zamboni/downloads","issues_url":"https://api.github.com/repos/mozilla/zamboni/issues{/number}","pulls_url":"https://api.github.com/repos/mozilla/zamboni/pulls{/number}","milestones_url":"https://api.github.com/repos/mozilla/zamboni/milestones{/number}","notifications_url":"https://api.github.com/repos/mozilla/zamboni/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mozilla/zamboni/labels{/name}","releases_url":"https://api.github.com/repos/mozilla/zamboni/releases{/id}","created_at":"2009-10-23T19:35:34Z","updated_at":"2015-03-02T18:01:29Z","pushed_at":"2015-03-02T18:06:32Z","git_url":"git://github.com/mozilla/zamboni.git","ssh_url":"git@github.com:mozilla/zamboni.git","clone_url":"https://github.com/mozilla/zamboni.git","svn_url":"https://github.com/mozilla/zamboni","homepage":"http://marketplace.readthedocs.org/en/latest/topics/backend.html","size":390147,"stargazers_count":454,"watchers_count":454,"language":"Python","has_issues":false,"has_downloads":false,"has_wiki":false,"has_pages":false,"forks_count":238,"mirror_url":null,"open_issues_count":20,"forks":238,"open_issues":20,"watchers":454,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/mozilla/zamboni/pulls/2951"},"html":{"href":"https://github.com/mozilla/zamboni/pull/2951"},"issue":{"href":"https://api.github.com/repos/mozilla/zamboni/issues/2951"},"comments":{"href":"https://api.github.com/repos/mozilla/zamboni/issues/2951/comments"},"review_comments":{"href":"https://api.github.com/repos/mozilla/zamboni/pulls/2951/comments"},"review_comment":{"href":"https://api.github.com/repos/mozilla/zamboni/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/mozilla/zamboni/pulls/2951/commits"},"statuses":{"href":"https://api.github.com/repos/mozilla/zamboni/statuses/47102e2f32b29c148e3f593b854e445bc543e5f1"}}}}