{"action":"created","comment":{"url":"https://api.github.com/repos/starcity-properties/blueprints/pulls/comments/210024380","pull_request_review_id":146154358,"id":210024380,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIxMDAyNDM4MA==","diff_hunk":"@@ -169,7 +170,9 @@\n \n \n (defstate reactor\n-  :start (start! {:teller teller\n-                  :config config\n-                  :conn   conn})\n+  :start (start! (merge (r-deps/deps config\n+                                     {:use-mocks? true})","path":"src/blueprints/reactor.clj","position":17,"original_position":17,"commit_id":"a81c742bc2a4b90330868353f0a15893d61b7191","original_commit_id":"a81c742bc2a4b90330868353f0a15893d61b7191","user":{"login":"dnegma","id":1065191,"node_id":"MDQ6VXNlcjEwNjUxOTE=","avatar_url":"https://avatars1.githubusercontent.com/u/1065191?v=4","gravatar_id":"","url":"https://api.github.com/users/dnegma","html_url":"https://github.com/dnegma","followers_url":"https://api.github.com/users/dnegma/followers","following_url":"https://api.github.com/users/dnegma/following{/other_user}","gists_url":"https://api.github.com/users/dnegma/gists{/gist_id}","starred_url":"https://api.github.com/users/dnegma/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dnegma/subscriptions","organizations_url":"https://api.github.com/users/dnegma/orgs","repos_url":"https://api.github.com/users/dnegma/repos","events_url":"https://api.github.com/users/dnegma/events{/privacy}","received_events_url":"https://api.github.com/users/dnegma/received_events","type":"User","site_admin":false},"body":"Lol, could be, but I don't think this should have to be touched for production to work properly. Good point, the production check should probably come before checking for this (when introduced as it's currently commented out)","created_at":"2018-08-14T16:46:51Z","updated_at":"2018-08-14T16:46:51Z","html_url":"https://github.com/starcity-properties/blueprints/pull/42#discussion_r210024380","pull_request_url":"https://api.github.com/repos/starcity-properties/blueprints/pulls/42","author_association":"NONE","_links":{"self":{"href":"https://api.github.com/repos/starcity-properties/blueprints/pulls/comments/210024380"},"html":{"href":"https://github.com/starcity-properties/blueprints/pull/42#discussion_r210024380"},"pull_request":{"href":"https://api.github.com/repos/starcity-properties/blueprints/pulls/42"}},"in_reply_to_id":210021736},"pull_request":{"url":"https://api.github.com/repos/starcity-properties/blueprints/pulls/42","id":207697241,"node_id":"MDExOlB1bGxSZXF1ZXN0MjA3Njk3MjQx","html_url":"https://github.com/starcity-properties/blueprints/pull/42","diff_url":"https://github.com/starcity-properties/blueprints/pull/42.diff","patch_url":"https://github.com/starcity-properties/blueprints/pull/42.patch","issue_url":"https://api.github.com/repos/starcity-properties/blueprints/issues/42","number":42,"state":"closed","locked":false,"title":"Reactor 2.0. Introduce email effect","user":{"login":"dnegma","id":1065191,"node_id":"MDQ6VXNlcjEwNjUxOTE=","avatar_url":"https://avatars1.githubusercontent.com/u/1065191?v=4","gravatar_id":"","url":"https://api.github.com/users/dnegma","html_url":"https://github.com/dnegma","followers_url":"https://api.github.com/users/dnegma/followers","following_url":"https://api.github.com/users/dnegma/following{/other_user}","gists_url":"https://api.github.com/users/dnegma/gists{/gist_id}","starred_url":"https://api.github.com/users/dnegma/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dnegma/subscriptions","organizations_url":"https://api.github.com/users/dnegma/orgs","repos_url":"https://api.github.com/users/dnegma/repos","events_url":"https://api.github.com/users/dnegma/events{/privacy}","received_events_url":"https://api.github.com/users/dnegma/received_events","type":"User","site_admin":false},"body":"### Context\r\nThis is adding the functionality to the email handler to actually send the email when receiving the `:notify/email` event. Note that producing the real email content is not part of this PR, for now just sending some random string to verify it works.\r\n\r\nhttps://app.asana.com/0/736811264035867/769735018300330\r\n\r\n### Changes\r\n**New namespace `blueprints.reactor.deps`**\r\nCopied over necessary mail deps from old reactor to be able to use mocks, and dev configs on services with side effects. Definitely open to suggestions on how to handle different environments here. I'm just merging for now.\r\n\r\n**Added lib: `expound`**\r\nLibrary for much better clojure.spec error messages to understand what's going wrong. [Github repo](https://github.com/bhb/expound)\r\n\r\n**New effect: `:channel`**\r\nI introduced the new effect channel, so we can handle channels (which is used by email and slack to send async messages). The effect will just make sure take the value from the channel and throw an exception if it found one.\r\n```clojure\r\n(defmethod effect!* :channel\r\n  [_ _ _ ch]\r\n  ;; Is valid content on channel? Otherwise throws exception.\r\n  (tb-async/<!!? ch)\r\n  ;; Return nil on success, no more effects caused.\r\n  nil)\r\n```","created_at":"2018-08-10T19:04:07Z","updated_at":"2018-08-14T16:46:51Z","closed_at":"2018-08-14T16:44:54Z","merged_at":"2018-08-14T16:44:54Z","merge_commit_sha":"428004bca0496539e1db05b9fbb46ca461d88289","assignee":{"login":"dnegma","id":1065191,"node_id":"MDQ6VXNlcjEwNjUxOTE=","avatar_url":"https://avatars1.githubusercontent.com/u/1065191?v=4","gravatar_id":"","url":"https://api.github.com/users/dnegma","html_url":"https://github.com/dnegma","followers_url":"https://api.github.com/users/dnegma/followers","following_url":"https://api.github.com/users/dnegma/following{/other_user}","gists_url":"https://api.github.com/users/dnegma/gists{/gist_id}","starred_url":"https://api.github.com/users/dnegma/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dnegma/subscriptions","organizations_url":"https://api.github.com/users/dnegma/orgs","repos_url":"https://api.github.com/users/dnegma/repos","events_url":"https://api.github.com/users/dnegma/events{/privacy}","received_events_url":"https://api.github.com/users/dnegma/received_events","type":"User","site_admin":false},"assignees":[{"login":"dnegma","id":1065191,"node_id":"MDQ6VXNlcjEwNjUxOTE=","avatar_url":"https://avatars1.githubusercontent.com/u/1065191?v=4","gravatar_id":"","url":"https://api.github.com/users/dnegma","html_url":"https://github.com/dnegma","followers_url":"https://api.github.com/users/dnegma/followers","following_url":"https://api.github.com/users/dnegma/following{/other_user}","gists_url":"https://api.github.com/users/dnegma/gists{/gist_id}","starred_url":"https://api.github.com/users/dnegma/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dnegma/subscriptions","organizations_url":"https://api.github.com/users/dnegma/orgs","repos_url":"https://api.github.com/users/dnegma/repos","events_url":"https://api.github.com/users/dnegma/events{/privacy}","received_events_url":"https://api.github.com/users/dnegma/received_events","type":"User","site_admin":false}],"requested_reviewers":[{"login":"jalehman","id":550978,"node_id":"MDQ6VXNlcjU1MDk3OA==","avatar_url":"https://avatars2.githubusercontent.com/u/550978?v=4","gravatar_id":"","url":"https://api.github.com/users/jalehman","html_url":"https://github.com/jalehman","followers_url":"https://api.github.com/users/jalehman/followers","following_url":"https://api.github.com/users/jalehman/following{/other_user}","gists_url":"https://api.github.com/users/jalehman/gists{/gist_id}","starred_url":"https://api.github.com/users/jalehman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jalehman/subscriptions","organizations_url":"https://api.github.com/users/jalehman/orgs","repos_url":"https://api.github.com/users/jalehman/repos","events_url":"https://api.github.com/users/jalehman/events{/privacy}","received_events_url":"https://api.github.com/users/jalehman/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/starcity-properties/blueprints/pulls/42/commits","review_comments_url":"https://api.github.com/repos/starcity-properties/blueprints/pulls/42/comments","review_comment_url":"https://api.github.com/repos/starcity-properties/blueprints/pulls/comments{/number}","comments_url":"https://api.github.com/repos/starcity-properties/blueprints/issues/42/comments","statuses_url":"https://api.github.com/repos/starcity-properties/blueprints/statuses/a81c742bc2a4b90330868353f0a15893d61b7191","head":{"label":"dnegma:diana/reactor-effect-email","ref":"diana/reactor-effect-email","sha":"a81c742bc2a4b90330868353f0a15893d61b7191","user":{"login":"dnegma","id":1065191,"node_id":"MDQ6VXNlcjEwNjUxOTE=","avatar_url":"https://avatars1.githubusercontent.com/u/1065191?v=4","gravatar_id":"","url":"https://api.github.com/users/dnegma","html_url":"https://github.com/dnegma","followers_url":"https://api.github.com/users/dnegma/followers","following_url":"https://api.github.com/users/dnegma/following{/other_user}","gists_url":"https://api.github.com/users/dnegma/gists{/gist_id}","starred_url":"https://api.github.com/users/dnegma/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dnegma/subscriptions","organizations_url":"https://api.github.com/users/dnegma/orgs","repos_url":"https://api.github.com/users/dnegma/repos","events_url":"https://api.github.com/users/dnegma/events{/privacy}","received_events_url":"https://api.github.com/users/dnegma/received_events","type":"User","site_admin":false},"repo":{"id":139626184,"node_id":"MDEwOlJlcG9zaXRvcnkxMzk2MjYxODQ=","name":"blueprints","full_name":"dnegma/blueprints","owner":{"login":"dnegma","id":1065191,"node_id":"MDQ6VXNlcjEwNjUxOTE=","avatar_url":"https://avatars1.githubusercontent.com/u/1065191?v=4","gravatar_id":"","url":"https://api.github.com/users/dnegma","html_url":"https://github.com/dnegma","followers_url":"https://api.github.com/users/dnegma/followers","following_url":"https://api.github.com/users/dnegma/following{/other_user}","gists_url":"https://api.github.com/users/dnegma/gists{/gist_id}","starred_url":"https://api.github.com/users/dnegma/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dnegma/subscriptions","organizations_url":"https://api.github.com/users/dnegma/orgs","repos_url":"https://api.github.com/users/dnegma/repos","events_url":"https://api.github.com/users/dnegma/events{/privacy}","received_events_url":"https://api.github.com/users/dnegma/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/dnegma/blueprints","description":null,"fork":true,"url":"https://api.github.com/repos/dnegma/blueprints","forks_url":"https://api.github.com/repos/dnegma/blueprints/forks","keys_url":"https://api.github.com/repos/dnegma/blueprints/keys{/key_id}","collaborators_url":"https://api.github.com/repos/dnegma/blueprints/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/dnegma/blueprints/teams","hooks_url":"https://api.github.com/repos/dnegma/blueprints/hooks","issue_events_url":"https://api.github.com/repos/dnegma/blueprints/issues/events{/number}","events_url":"https://api.github.com/repos/dnegma/blueprints/events","assignees_url":"https://api.github.com/repos/dnegma/blueprints/assignees{/user}","branches_url":"https://api.github.com/repos/dnegma/blueprints/branches{/branch}","tags_url":"https://api.github.com/repos/dnegma/blueprints/tags","blobs_url":"https://api.github.com/repos/dnegma/blueprints/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/dnegma/blueprints/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/dnegma/blueprints/git/refs{/sha}","trees_url":"https://api.github.com/repos/dnegma/blueprints/git/trees{/sha}","statuses_url":"https://api.github.com/repos/dnegma/blueprints/statuses/{sha}","languages_url":"https://api.github.com/repos/dnegma/blueprints/languages","stargazers_url":"https://api.github.com/repos/dnegma/blueprints/stargazers","contributors_url":"https://api.github.com/repos/dnegma/blueprints/contributors","subscribers_url":"https://api.github.com/repos/dnegma/blueprints/subscribers","subscription_url":"https://api.github.com/repos/dnegma/blueprints/subscription","commits_url":"https://api.github.com/repos/dnegma/blueprints/commits{/sha}","git_commits_url":"https://api.github.com/repos/dnegma/blueprints/git/commits{/sha}","comments_url":"https://api.github.com/repos/dnegma/blueprints/comments{/number}","issue_comment_url":"https://api.github.com/repos/dnegma/blueprints/issues/comments{/number}","contents_url":"https://api.github.com/repos/dnegma/blueprints/contents/{+path}","compare_url":"https://api.github.com/repos/dnegma/blueprints/compare/{base}...{head}","merges_url":"https://api.github.com/repos/dnegma/blueprints/merges","archive_url":"https://api.github.com/repos/dnegma/blueprints/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/dnegma/blueprints/downloads","issues_url":"https://api.github.com/repos/dnegma/blueprints/issues{/number}","pulls_url":"https://api.github.com/repos/dnegma/blueprints/pulls{/number}","milestones_url":"https://api.github.com/repos/dnegma/blueprints/milestones{/number}","notifications_url":"https://api.github.com/repos/dnegma/blueprints/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/dnegma/blueprints/labels{/name}","releases_url":"https://api.github.com/repos/dnegma/blueprints/releases{/id}","deployments_url":"https://api.github.com/repos/dnegma/blueprints/deployments","created_at":"2018-07-03T18:57:49Z","updated_at":"2018-08-03T17:31:32Z","pushed_at":"2018-08-10T21:52:00Z","git_url":"git://github.com/dnegma/blueprints.git","ssh_url":"git@github.com:dnegma/blueprints.git","clone_url":"https://github.com/dnegma/blueprints.git","svn_url":"https://github.com/dnegma/blueprints","homepage":null,"size":562,"stargazers_count":0,"watchers_count":0,"language":"Clojure","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":1,"license":{"key":"epl-1.0","name":"Eclipse Public License 1.0","spdx_id":"EPL-1.0","url":"https://api.github.com/licenses/epl-1.0","node_id":"MDc6TGljZW5zZTc="},"forks":0,"open_issues":1,"watchers":0,"default_branch":"development"}},"base":{"label":"starcity-properties:feat/reactor-integration","ref":"feat/reactor-integration","sha":"ef46b4201b4b17c69aaea33b238304379950495e","user":{"login":"starcity-properties","id":18667234,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE4NjY3MjM0","avatar_url":"https://avatars1.githubusercontent.com/u/18667234?v=4","gravatar_id":"","url":"https://api.github.com/users/starcity-properties","html_url":"https://github.com/starcity-properties","followers_url":"https://api.github.com/users/starcity-properties/followers","following_url":"https://api.github.com/users/starcity-properties/following{/other_user}","gists_url":"https://api.github.com/users/starcity-properties/gists{/gist_id}","starred_url":"https://api.github.com/users/starcity-properties/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/starcity-properties/subscriptions","organizations_url":"https://api.github.com/users/starcity-properties/orgs","repos_url":"https://api.github.com/users/starcity-properties/repos","events_url":"https://api.github.com/users/starcity-properties/events{/privacy}","received_events_url":"https://api.github.com/users/starcity-properties/received_events","type":"Organization","site_admin":false},"repo":{"id":79881722,"node_id":"MDEwOlJlcG9zaXRvcnk3OTg4MTcyMg==","name":"blueprints","full_name":"starcity-properties/blueprints","owner":{"login":"starcity-properties","id":18667234,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE4NjY3MjM0","avatar_url":"https://avatars1.githubusercontent.com/u/18667234?v=4","gravatar_id":"","url":"https://api.github.com/users/starcity-properties","html_url":"https://github.com/starcity-properties","followers_url":"https://api.github.com/users/starcity-properties/followers","following_url":"https://api.github.com/users/starcity-properties/following{/other_user}","gists_url":"https://api.github.com/users/starcity-properties/gists{/gist_id}","starred_url":"https://api.github.com/users/starcity-properties/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/starcity-properties/subscriptions","organizations_url":"https://api.github.com/users/starcity-properties/orgs","repos_url":"https://api.github.com/users/starcity-properties/repos","events_url":"https://api.github.com/users/starcity-properties/events{/privacy}","received_events_url":"https://api.github.com/users/starcity-properties/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/starcity-properties/blueprints","description":null,"fork":false,"url":"https://api.github.com/repos/starcity-properties/blueprints","forks_url":"https://api.github.com/repos/starcity-properties/blueprints/forks","keys_url":"https://api.github.com/repos/starcity-properties/blueprints/keys{/key_id}","collaborators_url":"https://api.github.com/repos/starcity-properties/blueprints/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/starcity-properties/blueprints/teams","hooks_url":"https://api.github.com/repos/starcity-properties/blueprints/hooks","issue_events_url":"https://api.github.com/repos/starcity-properties/blueprints/issues/events{/number}","events_url":"https://api.github.com/repos/starcity-properties/blueprints/events","assignees_url":"https://api.github.com/repos/starcity-properties/blueprints/assignees{/user}","branches_url":"https://api.github.com/repos/starcity-properties/blueprints/branches{/branch}","tags_url":"https://api.github.com/repos/starcity-properties/blueprints/tags","blobs_url":"https://api.github.com/repos/starcity-properties/blueprints/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/starcity-properties/blueprints/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/starcity-properties/blueprints/git/refs{/sha}","trees_url":"https://api.github.com/repos/starcity-properties/blueprints/git/trees{/sha}","statuses_url":"https://api.github.com/repos/starcity-properties/blueprints/statuses/{sha}","languages_url":"https://api.github.com/repos/starcity-properties/blueprints/languages","stargazers_url":"https://api.github.com/repos/starcity-properties/blueprints/stargazers","contributors_url":"https://api.github.com/repos/starcity-properties/blueprints/contributors","subscribers_url":"https://api.github.com/repos/starcity-properties/blueprints/subscribers","subscription_url":"https://api.github.com/repos/starcity-properties/blueprints/subscription","commits_url":"https://api.github.com/repos/starcity-properties/blueprints/commits{/sha}","git_commits_url":"https://api.github.com/repos/starcity-properties/blueprints/git/commits{/sha}","comments_url":"https://api.github.com/repos/starcity-properties/blueprints/comments{/number}","issue_comment_url":"https://api.github.com/repos/starcity-properties/blueprints/issues/comments{/number}","contents_url":"https://api.github.com/repos/starcity-properties/blueprints/contents/{+path}","compare_url":"https://api.github.com/repos/starcity-properties/blueprints/compare/{base}...{head}","merges_url":"https://api.github.com/repos/starcity-properties/blueprints/merges","archive_url":"https://api.github.com/repos/starcity-properties/blueprints/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/starcity-properties/blueprints/downloads","issues_url":"https://api.github.com/repos/starcity-properties/blueprints/issues{/number}","pulls_url":"https://api.github.com/repos/starcity-properties/blueprints/pulls{/number}","milestones_url":"https://api.github.com/repos/starcity-properties/blueprints/milestones{/number}","notifications_url":"https://api.github.com/repos/starcity-properties/blueprints/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/starcity-properties/blueprints/labels{/name}","releases_url":"https://api.github.com/repos/starcity-properties/blueprints/releases{/id}","deployments_url":"https://api.github.com/repos/starcity-properties/blueprints/deployments","created_at":"2017-01-24T05:29:04Z","updated_at":"2018-08-09T22:18:19Z","pushed_at":"2018-08-14T16:44:54Z","git_url":"git://github.com/starcity-properties/blueprints.git","ssh_url":"git@github.com:starcity-properties/blueprints.git","clone_url":"https://github.com/starcity-properties/blueprints.git","svn_url":"https://github.com/starcity-properties/blueprints","homepage":null,"size":530,"stargazers_count":0,"watchers_count":0,"language":"Clojure","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":4,"mirror_url":null,"archived":false,"open_issues_count":1,"license":{"key":"epl-1.0","name":"Eclipse Public License 1.0","spdx_id":"EPL-1.0","url":"https://api.github.com/licenses/epl-1.0","node_id":"MDc6TGljZW5zZTc="},"forks":4,"open_issues":1,"watchers":0,"default_branch":"development"}},"_links":{"self":{"href":"https://api.github.com/repos/starcity-properties/blueprints/pulls/42"},"html":{"href":"https://github.com/starcity-properties/blueprints/pull/42"},"issue":{"href":"https://api.github.com/repos/starcity-properties/blueprints/issues/42"},"comments":{"href":"https://api.github.com/repos/starcity-properties/blueprints/issues/42/comments"},"review_comments":{"href":"https://api.github.com/repos/starcity-properties/blueprints/pulls/42/comments"},"review_comment":{"href":"https://api.github.com/repos/starcity-properties/blueprints/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/starcity-properties/blueprints/pulls/42/commits"},"statuses":{"href":"https://api.github.com/repos/starcity-properties/blueprints/statuses/a81c742bc2a4b90330868353f0a15893d61b7191"}},"author_association":"NONE"}}
{"actor":{"display_login":"dnegma"}}