{"action":"created","comment":{"url":"https://api.github.com/repos/DoSomething/gambit-conversations/pulls/comments/207721934","pull_request_review_id":143396324,"id":207721934,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIwNzcyMTkzNA==","diff_hunk":"@@ -47,7 +45,7 @@ conversationSchema.statics.createFromReq = function (req) {\n     userId: req.userId,\n     platform: req.platform,\n     platformUserId: req.platformUserId,\n-    topic: config.topics.default,\n+    topic: helpers.topic.getDefaultTopicId(),","path":"app/models/Conversation.js","position":14,"original_position":14,"commit_id":"d9acbeabcfb2b8ea7b96f492693951de2496791b","original_commit_id":"d9acbeabcfb2b8ea7b96f492693951de2496791b","user":{"login":"pullrequest[bot]","id":29825839,"node_id":"MDM6Qm90Mjk4MjU4Mzk=","avatar_url":"https://avatars2.githubusercontent.com/in/3434?v=4","gravatar_id":"","url":"https://api.github.com/users/pullrequest%5Bbot%5D","html_url":"https://github.com/apps/pullrequest","followers_url":"https://api.github.com/users/pullrequest%5Bbot%5D/followers","following_url":"https://api.github.com/users/pullrequest%5Bbot%5D/following{/other_user}","gists_url":"https://api.github.com/users/pullrequest%5Bbot%5D/gists{/gist_id}","starred_url":"https://api.github.com/users/pullrequest%5Bbot%5D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pullrequest%5Bbot%5D/subscriptions","organizations_url":"https://api.github.com/users/pullrequest%5Bbot%5D/orgs","repos_url":"https://api.github.com/users/pullrequest%5Bbot%5D/repos","events_url":"https://api.github.com/users/pullrequest%5Bbot%5D/events{/privacy}","received_events_url":"https://api.github.com/users/pullrequest%5Bbot%5D/received_events","type":"Bot","site_admin":false},"body":"For further refactoring in the future, you may want to consider removing any reference to a network `req` in the model file. The model properties, e.g. `userId`, `platform`, should be passed into the constructor, not a `req`","created_at":"2018-08-04T23:32:07Z","updated_at":"2018-08-04T23:32:07Z","html_url":"https://github.com/DoSomething/gambit-conversations/pull/377#discussion_r207721934","pull_request_url":"https://api.github.com/repos/DoSomething/gambit-conversations/pulls/377","author_association":"NONE","_links":{"self":{"href":"https://api.github.com/repos/DoSomething/gambit-conversations/pulls/comments/207721934"},"html":{"href":"https://github.com/DoSomething/gambit-conversations/pull/377#discussion_r207721934"},"pull_request":{"href":"https://api.github.com/repos/DoSomething/gambit-conversations/pulls/377"}}},"pull_request":{"url":"https://api.github.com/repos/DoSomething/gambit-conversations/pulls/377","id":206165162,"node_id":"MDExOlB1bGxSZXF1ZXN0MjA2MTY1MTYy","html_url":"https://github.com/DoSomething/gambit-conversations/pull/377","diff_url":"https://github.com/DoSomething/gambit-conversations/pull/377.diff","patch_url":"https://github.com/DoSomething/gambit-conversations/pull/377.patch","issue_url":"https://api.github.com/repos/DoSomething/gambit-conversations/issues/377","number":377,"state":"open","locked":false,"title":"Macro middleware TLC [pr]","user":{"login":"aaronschachter","id":1236811,"node_id":"MDQ6VXNlcjEyMzY4MTE=","avatar_url":"https://avatars2.githubusercontent.com/u/1236811?v=4","gravatar_id":"","url":"https://api.github.com/users/aaronschachter","html_url":"https://github.com/aaronschachter","followers_url":"https://api.github.com/users/aaronschachter/followers","following_url":"https://api.github.com/users/aaronschachter/following{/other_user}","gists_url":"https://api.github.com/users/aaronschachter/gists{/gist_id}","starred_url":"https://api.github.com/users/aaronschachter/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aaronschachter/subscriptions","organizations_url":"https://api.github.com/users/aaronschachter/orgs","repos_url":"https://api.github.com/users/aaronschachter/repos","events_url":"https://api.github.com/users/aaronschachter/events{/privacy}","received_events_url":"https://api.github.com/users/aaronschachter/received_events","type":"User","site_admin":false},"body":"#### What's this PR do?\r\n\r\nThis PR started out aiming to fix a bug in an autoReplyBroadcast #373 -- while in an `autoReplyBroadcast` topic, if a user sends a message that matches a default topic trigger, their topic is changed to `random` instead of remaining in the autoReplyBroadcast, as is the intent of the autoReply.\r\n\r\nWe needed an extra check in the `lib/messages/middleware/macro-parse`, but it took a bit of 🤔 to remember why there were separate Conversation `setTopic` and `changeTopic` instance methods, and it's because `setTopic` expects a string (Rivescript topic name) and `changeTopic` expects an object (returned from the [gambit-campaigns topics API](https://github.com/DoSomething/gambit-campaigns/blob/master/documentation/endpoints/topics.md#topics)). It all came back to me about how this was a bit rushed to get the Ask Subscription Status broadcast #347 out the door, and felt like time for some TLC split out the `macro-parse` middleware into separate middleware functions, and add a whole lot more unit tests and comments to better document the logic for determining how to respond to a member message.\r\n\r\nChanges:\r\n\r\n* Splits `macro-parse` middleware into smaller `rivescript-reply-parse`, `macro-change-topic` `macro-reply` middleware functions\r\n\r\n* Adds more topic helper functions to deprecate `config/app/models/conversation` and DRY defining Rivescript topics via config\r\n\r\n* Moves checks for updating user's subscription status to `pending` and avoiding unnecessary db writes out of `Conversation.setTopic`  and into `helpers.request.changeTopic` \r\n\r\n* Updates all middleware to call `helpers.request.changeTopic` (instead of a `req.conversation` instance method like `setTopic`) if a topic change is required\r\n\r\n#### How should this be reviewed?\r\n👀 \r\n\r\nVerify expected behavior per topic changes:\r\n* [x] Sending a topic trigger changes topic (e.g. send `mirror`, verify topic is set to Mirror Messages)\r\n* [x] Changing topic to `ask_subscription_status` sets user `sms_status` to pending, responding with A B will update topic to random. The reply to a subsequent user message should either ask to continue the previous campaign topic, or send the `noCampaign` template if the conversation doesn't have a `campaignId`, or has `campaignId` without any active topics (e.g. send `status`. Note - previous ask subscription status broadcasts like [lVK2iLjEjIIWUSiWaSc6Y](https://gambit-admin.herokuapp.com/broadcasts/lVK2iLjEjIIWUSiWaSc6Y) won't work anymore because we changed the topic name from `askSubscriptionStatus` to `ask_subscription_status` in #375 )\r\n* [x] Sending a legacy broadcast with a Rivescript topic set should set the topic to the Rivescript topic (e.g. broadcast [2lsqawuQSsskIWgGky6uw6](https://gambit-admin.herokuapp.com/broadcasts/2lsqawuQSsskIWgGky6uw6))\r\n* [x] Sending a legacy broadcast with a campaign and template set should set the topic to the campaign's active topic (e.g. broadcast [1t9GKlWxAEaOgI0wysQeIM](https://gambit-admin.herokuapp.com/broadcasts/1t9GKlWxAEaOgI0wysQeIM))\r\n* [x] Verify initial bug that started this description and rabbit hole is fixed: verify that sending a message that matches a default topic trigger while `autoReplyBroadcast` does not change the topic to `random` (e.g. broadcast [4nwTwvXmfuuYAGYgusGyyW](https://gambit-admin.herokuapp.com/broadcasts/4nwTwvXmfuuYAGYgusGyyW))\r\n* [ ] Verify signup messages work as expected (execute a `POST /messages?origin=signup` with a valid `campaignId`, e.g. 7951)\r\n\r\n#### Any background context you want to provide?\r\n\r\nNext up for a future TLC PR is splitting out `brain/topics.rive` into separate files in a `brain/topics` dir to improve readability. It'd also make sense to create a new type of `askSubscriptionStatus` broadcast to avoid hardcoding replies for that topic, and instead using the topic as a helper for parsing per our `ask_yes_no` in #375 \r\n\r\n\r\n#### Relevant tickets\r\nhttps://www.pivotaltracker.com/story/show/157369418\r\n\r\n#### Checklist\r\n- [x] Documentation added for new features/changed endpoints.\r\n- [x] Tests added for new features/bug fixes.\r\n- [x] Tested on staging.\r\n- [ ] Pinged a PM if this is a larger PR that would benefit from some additional testing love.\r\n","created_at":"2018-08-04T00:37:31Z","updated_at":"2018-08-04T23:32:07Z","closed_at":null,"merged_at":null,"merge_commit_sha":"a44528e195dd4cc3a423313ddc1adebbd4fdf4c3","assignee":null,"assignees":[],"requested_reviewers":[{"login":"rapala61","id":863301,"node_id":"MDQ6VXNlcjg2MzMwMQ==","avatar_url":"https://avatars3.githubusercontent.com/u/863301?v=4","gravatar_id":"","url":"https://api.github.com/users/rapala61","html_url":"https://github.com/rapala61","followers_url":"https://api.github.com/users/rapala61/followers","following_url":"https://api.github.com/users/rapala61/following{/other_user}","gists_url":"https://api.github.com/users/rapala61/gists{/gist_id}","starred_url":"https://api.github.com/users/rapala61/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rapala61/subscriptions","organizations_url":"https://api.github.com/users/rapala61/orgs","repos_url":"https://api.github.com/users/rapala61/repos","events_url":"https://api.github.com/users/rapala61/events{/privacy}","received_events_url":"https://api.github.com/users/rapala61/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/DoSomething/gambit-conversations/pulls/377/commits","review_comments_url":"https://api.github.com/repos/DoSomething/gambit-conversations/pulls/377/comments","review_comment_url":"https://api.github.com/repos/DoSomething/gambit-conversations/pulls/comments{/number}","comments_url":"https://api.github.com/repos/DoSomething/gambit-conversations/issues/377/comments","statuses_url":"https://api.github.com/repos/DoSomething/gambit-conversations/statuses/d9acbeabcfb2b8ea7b96f492693951de2496791b","head":{"label":"DoSomething:cleanup/macro-parse","ref":"cleanup/macro-parse","sha":"d9acbeabcfb2b8ea7b96f492693951de2496791b","user":{"login":"DoSomething","id":731685,"node_id":"MDEyOk9yZ2FuaXphdGlvbjczMTY4NQ==","avatar_url":"https://avatars2.githubusercontent.com/u/731685?v=4","gravatar_id":"","url":"https://api.github.com/users/DoSomething","html_url":"https://github.com/DoSomething","followers_url":"https://api.github.com/users/DoSomething/followers","following_url":"https://api.github.com/users/DoSomething/following{/other_user}","gists_url":"https://api.github.com/users/DoSomething/gists{/gist_id}","starred_url":"https://api.github.com/users/DoSomething/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DoSomething/subscriptions","organizations_url":"https://api.github.com/users/DoSomething/orgs","repos_url":"https://api.github.com/users/DoSomething/repos","events_url":"https://api.github.com/users/DoSomething/events{/privacy}","received_events_url":"https://api.github.com/users/DoSomething/received_events","type":"Organization","site_admin":false},"repo":{"id":93206005,"node_id":"MDEwOlJlcG9zaXRvcnk5MzIwNjAwNQ==","name":"gambit-conversations","full_name":"DoSomething/gambit-conversations","owner":{"login":"DoSomething","id":731685,"node_id":"MDEyOk9yZ2FuaXphdGlvbjczMTY4NQ==","avatar_url":"https://avatars2.githubusercontent.com/u/731685?v=4","gravatar_id":"","url":"https://api.github.com/users/DoSomething","html_url":"https://github.com/DoSomething","followers_url":"https://api.github.com/users/DoSomething/followers","following_url":"https://api.github.com/users/DoSomething/following{/other_user}","gists_url":"https://api.github.com/users/DoSomething/gists{/gist_id}","starred_url":"https://api.github.com/users/DoSomething/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DoSomething/subscriptions","organizations_url":"https://api.github.com/users/DoSomething/orgs","repos_url":"https://api.github.com/users/DoSomething/repos","events_url":"https://api.github.com/users/DoSomething/events{/privacy}","received_events_url":"https://api.github.com/users/DoSomething/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/DoSomething/gambit-conversations","description":":black_joker: The DoSomething.org chatbot.","fork":false,"url":"https://api.github.com/repos/DoSomething/gambit-conversations","forks_url":"https://api.github.com/repos/DoSomething/gambit-conversations/forks","keys_url":"https://api.github.com/repos/DoSomething/gambit-conversations/keys{/key_id}","collaborators_url":"https://api.github.com/repos/DoSomething/gambit-conversations/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/DoSomething/gambit-conversations/teams","hooks_url":"https://api.github.com/repos/DoSomething/gambit-conversations/hooks","issue_events_url":"https://api.github.com/repos/DoSomething/gambit-conversations/issues/events{/number}","events_url":"https://api.github.com/repos/DoSomething/gambit-conversations/events","assignees_url":"https://api.github.com/repos/DoSomething/gambit-conversations/assignees{/user}","branches_url":"https://api.github.com/repos/DoSomething/gambit-conversations/branches{/branch}","tags_url":"https://api.github.com/repos/DoSomething/gambit-conversations/tags","blobs_url":"https://api.github.com/repos/DoSomething/gambit-conversations/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/DoSomething/gambit-conversations/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/DoSomething/gambit-conversations/git/refs{/sha}","trees_url":"https://api.github.com/repos/DoSomething/gambit-conversations/git/trees{/sha}","statuses_url":"https://api.github.com/repos/DoSomething/gambit-conversations/statuses/{sha}","languages_url":"https://api.github.com/repos/DoSomething/gambit-conversations/languages","stargazers_url":"https://api.github.com/repos/DoSomething/gambit-conversations/stargazers","contributors_url":"https://api.github.com/repos/DoSomething/gambit-conversations/contributors","subscribers_url":"https://api.github.com/repos/DoSomething/gambit-conversations/subscribers","subscription_url":"https://api.github.com/repos/DoSomething/gambit-conversations/subscription","commits_url":"https://api.github.com/repos/DoSomething/gambit-conversations/commits{/sha}","git_commits_url":"https://api.github.com/repos/DoSomething/gambit-conversations/git/commits{/sha}","comments_url":"https://api.github.com/repos/DoSomething/gambit-conversations/comments{/number}","issue_comment_url":"https://api.github.com/repos/DoSomething/gambit-conversations/issues/comments{/number}","contents_url":"https://api.github.com/repos/DoSomething/gambit-conversations/contents/{+path}","compare_url":"https://api.github.com/repos/DoSomething/gambit-conversations/compare/{base}...{head}","merges_url":"https://api.github.com/repos/DoSomething/gambit-conversations/merges","archive_url":"https://api.github.com/repos/DoSomething/gambit-conversations/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/DoSomething/gambit-conversations/downloads","issues_url":"https://api.github.com/repos/DoSomething/gambit-conversations/issues{/number}","pulls_url":"https://api.github.com/repos/DoSomething/gambit-conversations/pulls{/number}","milestones_url":"https://api.github.com/repos/DoSomething/gambit-conversations/milestones{/number}","notifications_url":"https://api.github.com/repos/DoSomething/gambit-conversations/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/DoSomething/gambit-conversations/labels{/name}","releases_url":"https://api.github.com/repos/DoSomething/gambit-conversations/releases{/id}","deployments_url":"https://api.github.com/repos/DoSomething/gambit-conversations/deployments","created_at":"2017-06-02T21:42:25Z","updated_at":"2018-08-02T17:36:59Z","pushed_at":"2018-08-04T21:46:50Z","git_url":"git://github.com/DoSomething/gambit-conversations.git","ssh_url":"git@github.com:DoSomething/gambit-conversations.git","clone_url":"https://github.com/DoSomething/gambit-conversations.git","svn_url":"https://github.com/DoSomething/gambit-conversations","homepage":"","size":1606,"stargazers_count":2,"watchers_count":2,"language":"JavaScript","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":21,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":0,"open_issues":21,"watchers":2,"default_branch":"master"}},"base":{"label":"DoSomething:master","ref":"master","sha":"693449ab3d153bd03d1f5d856197155d690c19c5","user":{"login":"DoSomething","id":731685,"node_id":"MDEyOk9yZ2FuaXphdGlvbjczMTY4NQ==","avatar_url":"https://avatars2.githubusercontent.com/u/731685?v=4","gravatar_id":"","url":"https://api.github.com/users/DoSomething","html_url":"https://github.com/DoSomething","followers_url":"https://api.github.com/users/DoSomething/followers","following_url":"https://api.github.com/users/DoSomething/following{/other_user}","gists_url":"https://api.github.com/users/DoSomething/gists{/gist_id}","starred_url":"https://api.github.com/users/DoSomething/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DoSomething/subscriptions","organizations_url":"https://api.github.com/users/DoSomething/orgs","repos_url":"https://api.github.com/users/DoSomething/repos","events_url":"https://api.github.com/users/DoSomething/events{/privacy}","received_events_url":"https://api.github.com/users/DoSomething/received_events","type":"Organization","site_admin":false},"repo":{"id":93206005,"node_id":"MDEwOlJlcG9zaXRvcnk5MzIwNjAwNQ==","name":"gambit-conversations","full_name":"DoSomething/gambit-conversations","owner":{"login":"DoSomething","id":731685,"node_id":"MDEyOk9yZ2FuaXphdGlvbjczMTY4NQ==","avatar_url":"https://avatars2.githubusercontent.com/u/731685?v=4","gravatar_id":"","url":"https://api.github.com/users/DoSomething","html_url":"https://github.com/DoSomething","followers_url":"https://api.github.com/users/DoSomething/followers","following_url":"https://api.github.com/users/DoSomething/following{/other_user}","gists_url":"https://api.github.com/users/DoSomething/gists{/gist_id}","starred_url":"https://api.github.com/users/DoSomething/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DoSomething/subscriptions","organizations_url":"https://api.github.com/users/DoSomething/orgs","repos_url":"https://api.github.com/users/DoSomething/repos","events_url":"https://api.github.com/users/DoSomething/events{/privacy}","received_events_url":"https://api.github.com/users/DoSomething/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/DoSomething/gambit-conversations","description":":black_joker: The DoSomething.org chatbot.","fork":false,"url":"https://api.github.com/repos/DoSomething/gambit-conversations","forks_url":"https://api.github.com/repos/DoSomething/gambit-conversations/forks","keys_url":"https://api.github.com/repos/DoSomething/gambit-conversations/keys{/key_id}","collaborators_url":"https://api.github.com/repos/DoSomething/gambit-conversations/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/DoSomething/gambit-conversations/teams","hooks_url":"https://api.github.com/repos/DoSomething/gambit-conversations/hooks","issue_events_url":"https://api.github.com/repos/DoSomething/gambit-conversations/issues/events{/number}","events_url":"https://api.github.com/repos/DoSomething/gambit-conversations/events","assignees_url":"https://api.github.com/repos/DoSomething/gambit-conversations/assignees{/user}","branches_url":"https://api.github.com/repos/DoSomething/gambit-conversations/branches{/branch}","tags_url":"https://api.github.com/repos/DoSomething/gambit-conversations/tags","blobs_url":"https://api.github.com/repos/DoSomething/gambit-conversations/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/DoSomething/gambit-conversations/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/DoSomething/gambit-conversations/git/refs{/sha}","trees_url":"https://api.github.com/repos/DoSomething/gambit-conversations/git/trees{/sha}","statuses_url":"https://api.github.com/repos/DoSomething/gambit-conversations/statuses/{sha}","languages_url":"https://api.github.com/repos/DoSomething/gambit-conversations/languages","stargazers_url":"https://api.github.com/repos/DoSomething/gambit-conversations/stargazers","contributors_url":"https://api.github.com/repos/DoSomething/gambit-conversations/contributors","subscribers_url":"https://api.github.com/repos/DoSomething/gambit-conversations/subscribers","subscription_url":"https://api.github.com/repos/DoSomething/gambit-conversations/subscription","commits_url":"https://api.github.com/repos/DoSomething/gambit-conversations/commits{/sha}","git_commits_url":"https://api.github.com/repos/DoSomething/gambit-conversations/git/commits{/sha}","comments_url":"https://api.github.com/repos/DoSomething/gambit-conversations/comments{/number}","issue_comment_url":"https://api.github.com/repos/DoSomething/gambit-conversations/issues/comments{/number}","contents_url":"https://api.github.com/repos/DoSomething/gambit-conversations/contents/{+path}","compare_url":"https://api.github.com/repos/DoSomething/gambit-conversations/compare/{base}...{head}","merges_url":"https://api.github.com/repos/DoSomething/gambit-conversations/merges","archive_url":"https://api.github.com/repos/DoSomething/gambit-conversations/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/DoSomething/gambit-conversations/downloads","issues_url":"https://api.github.com/repos/DoSomething/gambit-conversations/issues{/number}","pulls_url":"https://api.github.com/repos/DoSomething/gambit-conversations/pulls{/number}","milestones_url":"https://api.github.com/repos/DoSomething/gambit-conversations/milestones{/number}","notifications_url":"https://api.github.com/repos/DoSomething/gambit-conversations/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/DoSomething/gambit-conversations/labels{/name}","releases_url":"https://api.github.com/repos/DoSomething/gambit-conversations/releases{/id}","deployments_url":"https://api.github.com/repos/DoSomething/gambit-conversations/deployments","created_at":"2017-06-02T21:42:25Z","updated_at":"2018-08-02T17:36:59Z","pushed_at":"2018-08-04T21:46:50Z","git_url":"git://github.com/DoSomething/gambit-conversations.git","ssh_url":"git@github.com:DoSomething/gambit-conversations.git","clone_url":"https://github.com/DoSomething/gambit-conversations.git","svn_url":"https://github.com/DoSomething/gambit-conversations","homepage":"","size":1606,"stargazers_count":2,"watchers_count":2,"language":"JavaScript","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":21,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":0,"open_issues":21,"watchers":2,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/DoSomething/gambit-conversations/pulls/377"},"html":{"href":"https://github.com/DoSomething/gambit-conversations/pull/377"},"issue":{"href":"https://api.github.com/repos/DoSomething/gambit-conversations/issues/377"},"comments":{"href":"https://api.github.com/repos/DoSomething/gambit-conversations/issues/377/comments"},"review_comments":{"href":"https://api.github.com/repos/DoSomething/gambit-conversations/pulls/377/comments"},"review_comment":{"href":"https://api.github.com/repos/DoSomething/gambit-conversations/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/DoSomething/gambit-conversations/pulls/377/commits"},"statuses":{"href":"https://api.github.com/repos/DoSomething/gambit-conversations/statuses/d9acbeabcfb2b8ea7b96f492693951de2496791b"}},"author_association":"MEMBER"}}
{"actor":{"display_login":"pullrequest"}}