{"action":"created","comment":{"url":"https://api.github.com/repos/kickstarter/ios-oss/pulls/comments/237289584","pull_request_review_id":179552220,"id":237289584,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIzNzI4OTU4NA==","diff_hunk":"@@ -312,12 +272,13 @@ AppDelegateViewModelOutputs {\n \n     self.pushTokenSuccessfullyRegistered = self.deviceTokenDataProperty.signal\n       .map(deviceToken(fromData:))\n+      .on(value: { print(\"📲 [Push Registration] Push token generated: (\\($0))\") })","path":"Kickstarter-iOS/ViewModels/AppDelegateViewModel.swift","position":119,"original_position":119,"commit_id":"7ab51a6bcdaec26480fb9841d98940e4c10ea659","original_commit_id":"b889a408fd0a789a4e97abf357cf3dc7d09031b3","user":{"login":"justinswart","id":3735375,"node_id":"MDQ6VXNlcjM3MzUzNzU=","avatar_url":"https://avatars3.githubusercontent.com/u/3735375?v=4","gravatar_id":"","url":"https://api.github.com/users/justinswart","html_url":"https://github.com/justinswart","followers_url":"https://api.github.com/users/justinswart/followers","following_url":"https://api.github.com/users/justinswart/following{/other_user}","gists_url":"https://api.github.com/users/justinswart/gists{/gist_id}","starred_url":"https://api.github.com/users/justinswart/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/justinswart/subscriptions","organizations_url":"https://api.github.com/users/justinswart/orgs","repos_url":"https://api.github.com/users/justinswart/repos","events_url":"https://api.github.com/users/justinswart/events{/privacy}","received_events_url":"https://api.github.com/users/justinswart/received_events","type":"User","site_admin":false},"body":"I've added this as a side-effect so this will print regardless of the call to the back-end success/failure","created_at":"2018-11-28T22:38:08Z","updated_at":"2018-11-28T22:48:56Z","html_url":"https://github.com/kickstarter/ios-oss/pull/495#discussion_r237289584","pull_request_url":"https://api.github.com/repos/kickstarter/ios-oss/pulls/495","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/kickstarter/ios-oss/pulls/comments/237289584"},"html":{"href":"https://github.com/kickstarter/ios-oss/pull/495#discussion_r237289584"},"pull_request":{"href":"https://api.github.com/repos/kickstarter/ios-oss/pulls/495"}}},"pull_request":{"url":"https://api.github.com/repos/kickstarter/ios-oss/pulls/495","id":233296856,"node_id":"MDExOlB1bGxSZXF1ZXN0MjMzMjk2ODU2","html_url":"https://github.com/kickstarter/ios-oss/pull/495","diff_url":"https://github.com/kickstarter/ios-oss/pull/495.diff","patch_url":"https://github.com/kickstarter/ios-oss/pull/495.patch","issue_url":"https://api.github.com/repos/kickstarter/ios-oss/issues/495","number":495,"state":"open","locked":false,"title":"Refactor push registration","user":{"login":"justinswart","id":3735375,"node_id":"MDQ6VXNlcjM3MzUzNzU=","avatar_url":"https://avatars3.githubusercontent.com/u/3735375?v=4","gravatar_id":"","url":"https://api.github.com/users/justinswart","html_url":"https://github.com/justinswart","followers_url":"https://api.github.com/users/justinswart/followers","following_url":"https://api.github.com/users/justinswart/following{/other_user}","gists_url":"https://api.github.com/users/justinswart/gists{/gist_id}","starred_url":"https://api.github.com/users/justinswart/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/justinswart/subscriptions","organizations_url":"https://api.github.com/users/justinswart/orgs","repos_url":"https://api.github.com/users/justinswart/repos","events_url":"https://api.github.com/users/justinswart/events{/privacy}","received_events_url":"https://api.github.com/users/justinswart/received_events","type":"User","site_admin":false},"body":"# 📲 What\r\n\r\nThis PR hopes to significantly simplify the way that we register for push notifications in the app.\r\n\r\n# 🤔 Why\r\n\r\nWhen I started working on #490 I was just really confused by how things were working. Also there were two scenarios that I think weren't working correctly:\r\n\r\n- on iOS 9 I think users were being prompted to allow push notifications on app launch (based on reading the code).\r\n- on iOS 10+ users that had previously allowed push notifications would never see badges because we would not request those permissions again.\r\n\r\nSo in trying to solve these two issues I decided to try and refactor things.\r\n\r\n# 🛠 How\r\n\r\nThe main simplification is that by using `SignalProducer`s and wrapping the push registration code inside these we can deal with iOS 9 registration and iOS 10+ registration at the callsite without caring about which iOS version we're on. We can do all of the `@available` checks inside these `SignalProducer`s and as well as handle the fact that sometimes these calls are synchronous and that sometimes they're asynchronous. So this PR:\r\n\r\n- introduces `PushNotificationType`\r\n  - an `enum` to type-erase `UIUserNotificationType` and `UNAuthorizationOptions`.\r\n- `PushRegistrationType`, a `protocol` providing two functions that return `SignalProducer`s:\r\n  - `register(for types: [PushNotificationType])` to wrap the registration process and return `true` or `false` for iOS 10+ and `nil` for iOS 9 as we do not know the user action on iOS 9.\r\n  - `currentAuthorization()` to return whether or not we are currently authorized for push notifications. This is used to decide whether to re-register our permissions at app launch.\r\n- strips out all of the various inputs/outputs from `AppDelegateViewModel` that made things so confusing and instead bases registration on one of two scenarios:\r\n  - the user said _yes_ to the prompt asking them whether they want to receive pushes.\r\n  - the user previously allowed push notifications and we refresh that registration on app launch.\r\n- **NB:** This PR is based off #490 to make it easier to review. This should merge before that PR.\r\n\r\n# ✅ Acceptance criteria\r\n\r\n- [ ] All of the scenarios described in #490.\r\n- [ ] Test that Koala tracks the same events.\r\n\r\nAnd now for my favourite refactoring gif:\r\n\r\n<img src=\"https://media.giphy.com/media/ih4GYtnAk2KKQ/giphy.gif\"/>","created_at":"2018-11-24T02:39:20Z","updated_at":"2018-11-28T22:48:56Z","closed_at":null,"merged_at":null,"merge_commit_sha":"326ddfa116cc020e9a7cbfdf596031c8b7a42e33","assignee":{"login":"ifbarrera","id":3156796,"node_id":"MDQ6VXNlcjMxNTY3OTY=","avatar_url":"https://avatars2.githubusercontent.com/u/3156796?v=4","gravatar_id":"","url":"https://api.github.com/users/ifbarrera","html_url":"https://github.com/ifbarrera","followers_url":"https://api.github.com/users/ifbarrera/followers","following_url":"https://api.github.com/users/ifbarrera/following{/other_user}","gists_url":"https://api.github.com/users/ifbarrera/gists{/gist_id}","starred_url":"https://api.github.com/users/ifbarrera/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ifbarrera/subscriptions","organizations_url":"https://api.github.com/users/ifbarrera/orgs","repos_url":"https://api.github.com/users/ifbarrera/repos","events_url":"https://api.github.com/users/ifbarrera/events{/privacy}","received_events_url":"https://api.github.com/users/ifbarrera/received_events","type":"User","site_admin":false},"assignees":[{"login":"ifbarrera","id":3156796,"node_id":"MDQ6VXNlcjMxNTY3OTY=","avatar_url":"https://avatars2.githubusercontent.com/u/3156796?v=4","gravatar_id":"","url":"https://api.github.com/users/ifbarrera","html_url":"https://github.com/ifbarrera","followers_url":"https://api.github.com/users/ifbarrera/followers","following_url":"https://api.github.com/users/ifbarrera/following{/other_user}","gists_url":"https://api.github.com/users/ifbarrera/gists{/gist_id}","starred_url":"https://api.github.com/users/ifbarrera/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ifbarrera/subscriptions","organizations_url":"https://api.github.com/users/ifbarrera/orgs","repos_url":"https://api.github.com/users/ifbarrera/repos","events_url":"https://api.github.com/users/ifbarrera/events{/privacy}","received_events_url":"https://api.github.com/users/ifbarrera/received_events","type":"User","site_admin":false}],"requested_reviewers":[{"login":"dusi","id":387596,"node_id":"MDQ6VXNlcjM4NzU5Ng==","avatar_url":"https://avatars2.githubusercontent.com/u/387596?v=4","gravatar_id":"","url":"https://api.github.com/users/dusi","html_url":"https://github.com/dusi","followers_url":"https://api.github.com/users/dusi/followers","following_url":"https://api.github.com/users/dusi/following{/other_user}","gists_url":"https://api.github.com/users/dusi/gists{/gist_id}","starred_url":"https://api.github.com/users/dusi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dusi/subscriptions","organizations_url":"https://api.github.com/users/dusi/orgs","repos_url":"https://api.github.com/users/dusi/repos","events_url":"https://api.github.com/users/dusi/events{/privacy}","received_events_url":"https://api.github.com/users/dusi/received_events","type":"User","site_admin":false},{"login":"Scollaco","id":3709676,"node_id":"MDQ6VXNlcjM3MDk2NzY=","avatar_url":"https://avatars2.githubusercontent.com/u/3709676?v=4","gravatar_id":"","url":"https://api.github.com/users/Scollaco","html_url":"https://github.com/Scollaco","followers_url":"https://api.github.com/users/Scollaco/followers","following_url":"https://api.github.com/users/Scollaco/following{/other_user}","gists_url":"https://api.github.com/users/Scollaco/gists{/gist_id}","starred_url":"https://api.github.com/users/Scollaco/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Scollaco/subscriptions","organizations_url":"https://api.github.com/users/Scollaco/orgs","repos_url":"https://api.github.com/users/Scollaco/repos","events_url":"https://api.github.com/users/Scollaco/events{/privacy}","received_events_url":"https://api.github.com/users/Scollaco/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[{"id":925804105,"node_id":"MDU6TGFiZWw5MjU4MDQxMDU=","url":"https://api.github.com/repos/kickstarter/ios-oss/labels/needs%20review","name":"needs review","color":"fcd753","default":false}],"milestone":null,"commits_url":"https://api.github.com/repos/kickstarter/ios-oss/pulls/495/commits","review_comments_url":"https://api.github.com/repos/kickstarter/ios-oss/pulls/495/comments","review_comment_url":"https://api.github.com/repos/kickstarter/ios-oss/pulls/comments{/number}","comments_url":"https://api.github.com/repos/kickstarter/ios-oss/issues/495/comments","statuses_url":"https://api.github.com/repos/kickstarter/ios-oss/statuses/7ab51a6bcdaec26480fb9841d98940e4c10ea659","head":{"label":"kickstarter:refactor-push-registration","ref":"refactor-push-registration","sha":"7ab51a6bcdaec26480fb9841d98940e4c10ea659","user":{"login":"kickstarter","id":120676,"node_id":"MDEyOk9yZ2FuaXphdGlvbjEyMDY3Ng==","avatar_url":"https://avatars1.githubusercontent.com/u/120676?v=4","gravatar_id":"","url":"https://api.github.com/users/kickstarter","html_url":"https://github.com/kickstarter","followers_url":"https://api.github.com/users/kickstarter/followers","following_url":"https://api.github.com/users/kickstarter/following{/other_user}","gists_url":"https://api.github.com/users/kickstarter/gists{/gist_id}","starred_url":"https://api.github.com/users/kickstarter/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kickstarter/subscriptions","organizations_url":"https://api.github.com/users/kickstarter/orgs","repos_url":"https://api.github.com/users/kickstarter/repos","events_url":"https://api.github.com/users/kickstarter/events{/privacy}","received_events_url":"https://api.github.com/users/kickstarter/received_events","type":"Organization","site_admin":false},"repo":{"id":75432091,"node_id":"MDEwOlJlcG9zaXRvcnk3NTQzMjA5MQ==","name":"ios-oss","full_name":"kickstarter/ios-oss","private":false,"owner":{"login":"kickstarter","id":120676,"node_id":"MDEyOk9yZ2FuaXphdGlvbjEyMDY3Ng==","avatar_url":"https://avatars1.githubusercontent.com/u/120676?v=4","gravatar_id":"","url":"https://api.github.com/users/kickstarter","html_url":"https://github.com/kickstarter","followers_url":"https://api.github.com/users/kickstarter/followers","following_url":"https://api.github.com/users/kickstarter/following{/other_user}","gists_url":"https://api.github.com/users/kickstarter/gists{/gist_id}","starred_url":"https://api.github.com/users/kickstarter/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kickstarter/subscriptions","organizations_url":"https://api.github.com/users/kickstarter/orgs","repos_url":"https://api.github.com/users/kickstarter/repos","events_url":"https://api.github.com/users/kickstarter/events{/privacy}","received_events_url":"https://api.github.com/users/kickstarter/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/kickstarter/ios-oss","description":"Kickstarter for iOS. Bring new ideas to life, anywhere.","fork":false,"url":"https://api.github.com/repos/kickstarter/ios-oss","forks_url":"https://api.github.com/repos/kickstarter/ios-oss/forks","keys_url":"https://api.github.com/repos/kickstarter/ios-oss/keys{/key_id}","collaborators_url":"https://api.github.com/repos/kickstarter/ios-oss/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/kickstarter/ios-oss/teams","hooks_url":"https://api.github.com/repos/kickstarter/ios-oss/hooks","issue_events_url":"https://api.github.com/repos/kickstarter/ios-oss/issues/events{/number}","events_url":"https://api.github.com/repos/kickstarter/ios-oss/events","assignees_url":"https://api.github.com/repos/kickstarter/ios-oss/assignees{/user}","branches_url":"https://api.github.com/repos/kickstarter/ios-oss/branches{/branch}","tags_url":"https://api.github.com/repos/kickstarter/ios-oss/tags","blobs_url":"https://api.github.com/repos/kickstarter/ios-oss/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/kickstarter/ios-oss/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/kickstarter/ios-oss/git/refs{/sha}","trees_url":"https://api.github.com/repos/kickstarter/ios-oss/git/trees{/sha}","statuses_url":"https://api.github.com/repos/kickstarter/ios-oss/statuses/{sha}","languages_url":"https://api.github.com/repos/kickstarter/ios-oss/languages","stargazers_url":"https://api.github.com/repos/kickstarter/ios-oss/stargazers","contributors_url":"https://api.github.com/repos/kickstarter/ios-oss/contributors","subscribers_url":"https://api.github.com/repos/kickstarter/ios-oss/subscribers","subscription_url":"https://api.github.com/repos/kickstarter/ios-oss/subscription","commits_url":"https://api.github.com/repos/kickstarter/ios-oss/commits{/sha}","git_commits_url":"https://api.github.com/repos/kickstarter/ios-oss/git/commits{/sha}","comments_url":"https://api.github.com/repos/kickstarter/ios-oss/comments{/number}","issue_comment_url":"https://api.github.com/repos/kickstarter/ios-oss/issues/comments{/number}","contents_url":"https://api.github.com/repos/kickstarter/ios-oss/contents/{+path}","compare_url":"https://api.github.com/repos/kickstarter/ios-oss/compare/{base}...{head}","merges_url":"https://api.github.com/repos/kickstarter/ios-oss/merges","archive_url":"https://api.github.com/repos/kickstarter/ios-oss/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/kickstarter/ios-oss/downloads","issues_url":"https://api.github.com/repos/kickstarter/ios-oss/issues{/number}","pulls_url":"https://api.github.com/repos/kickstarter/ios-oss/pulls{/number}","milestones_url":"https://api.github.com/repos/kickstarter/ios-oss/milestones{/number}","notifications_url":"https://api.github.com/repos/kickstarter/ios-oss/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/kickstarter/ios-oss/labels{/name}","releases_url":"https://api.github.com/repos/kickstarter/ios-oss/releases{/id}","deployments_url":"https://api.github.com/repos/kickstarter/ios-oss/deployments","created_at":"2016-12-02T21:24:40Z","updated_at":"2018-11-28T22:22:36Z","pushed_at":"2018-11-28T22:48:44Z","git_url":"git://github.com/kickstarter/ios-oss.git","ssh_url":"git@github.com:kickstarter/ios-oss.git","clone_url":"https://github.com/kickstarter/ios-oss.git","svn_url":"https://github.com/kickstarter/ios-oss","homepage":"https://www.kickstarter.com/mobile","size":1366623,"stargazers_count":6404,"watchers_count":6404,"language":"Swift","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":931,"mirror_url":null,"archived":false,"open_issues_count":8,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"forks":931,"open_issues":8,"watchers":6404,"default_branch":"master"}},"base":{"label":"kickstarter:reset-app-icon-badge-number","ref":"reset-app-icon-badge-number","sha":"db8aecc49a34e5ae7c45cd0280abd8f950ab9a29","user":{"login":"kickstarter","id":120676,"node_id":"MDEyOk9yZ2FuaXphdGlvbjEyMDY3Ng==","avatar_url":"https://avatars1.githubusercontent.com/u/120676?v=4","gravatar_id":"","url":"https://api.github.com/users/kickstarter","html_url":"https://github.com/kickstarter","followers_url":"https://api.github.com/users/kickstarter/followers","following_url":"https://api.github.com/users/kickstarter/following{/other_user}","gists_url":"https://api.github.com/users/kickstarter/gists{/gist_id}","starred_url":"https://api.github.com/users/kickstarter/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kickstarter/subscriptions","organizations_url":"https://api.github.com/users/kickstarter/orgs","repos_url":"https://api.github.com/users/kickstarter/repos","events_url":"https://api.github.com/users/kickstarter/events{/privacy}","received_events_url":"https://api.github.com/users/kickstarter/received_events","type":"Organization","site_admin":false},"repo":{"id":75432091,"node_id":"MDEwOlJlcG9zaXRvcnk3NTQzMjA5MQ==","name":"ios-oss","full_name":"kickstarter/ios-oss","private":false,"owner":{"login":"kickstarter","id":120676,"node_id":"MDEyOk9yZ2FuaXphdGlvbjEyMDY3Ng==","avatar_url":"https://avatars1.githubusercontent.com/u/120676?v=4","gravatar_id":"","url":"https://api.github.com/users/kickstarter","html_url":"https://github.com/kickstarter","followers_url":"https://api.github.com/users/kickstarter/followers","following_url":"https://api.github.com/users/kickstarter/following{/other_user}","gists_url":"https://api.github.com/users/kickstarter/gists{/gist_id}","starred_url":"https://api.github.com/users/kickstarter/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kickstarter/subscriptions","organizations_url":"https://api.github.com/users/kickstarter/orgs","repos_url":"https://api.github.com/users/kickstarter/repos","events_url":"https://api.github.com/users/kickstarter/events{/privacy}","received_events_url":"https://api.github.com/users/kickstarter/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/kickstarter/ios-oss","description":"Kickstarter for iOS. Bring new ideas to life, anywhere.","fork":false,"url":"https://api.github.com/repos/kickstarter/ios-oss","forks_url":"https://api.github.com/repos/kickstarter/ios-oss/forks","keys_url":"https://api.github.com/repos/kickstarter/ios-oss/keys{/key_id}","collaborators_url":"https://api.github.com/repos/kickstarter/ios-oss/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/kickstarter/ios-oss/teams","hooks_url":"https://api.github.com/repos/kickstarter/ios-oss/hooks","issue_events_url":"https://api.github.com/repos/kickstarter/ios-oss/issues/events{/number}","events_url":"https://api.github.com/repos/kickstarter/ios-oss/events","assignees_url":"https://api.github.com/repos/kickstarter/ios-oss/assignees{/user}","branches_url":"https://api.github.com/repos/kickstarter/ios-oss/branches{/branch}","tags_url":"https://api.github.com/repos/kickstarter/ios-oss/tags","blobs_url":"https://api.github.com/repos/kickstarter/ios-oss/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/kickstarter/ios-oss/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/kickstarter/ios-oss/git/refs{/sha}","trees_url":"https://api.github.com/repos/kickstarter/ios-oss/git/trees{/sha}","statuses_url":"https://api.github.com/repos/kickstarter/ios-oss/statuses/{sha}","languages_url":"https://api.github.com/repos/kickstarter/ios-oss/languages","stargazers_url":"https://api.github.com/repos/kickstarter/ios-oss/stargazers","contributors_url":"https://api.github.com/repos/kickstarter/ios-oss/contributors","subscribers_url":"https://api.github.com/repos/kickstarter/ios-oss/subscribers","subscription_url":"https://api.github.com/repos/kickstarter/ios-oss/subscription","commits_url":"https://api.github.com/repos/kickstarter/ios-oss/commits{/sha}","git_commits_url":"https://api.github.com/repos/kickstarter/ios-oss/git/commits{/sha}","comments_url":"https://api.github.com/repos/kickstarter/ios-oss/comments{/number}","issue_comment_url":"https://api.github.com/repos/kickstarter/ios-oss/issues/comments{/number}","contents_url":"https://api.github.com/repos/kickstarter/ios-oss/contents/{+path}","compare_url":"https://api.github.com/repos/kickstarter/ios-oss/compare/{base}...{head}","merges_url":"https://api.github.com/repos/kickstarter/ios-oss/merges","archive_url":"https://api.github.com/repos/kickstarter/ios-oss/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/kickstarter/ios-oss/downloads","issues_url":"https://api.github.com/repos/kickstarter/ios-oss/issues{/number}","pulls_url":"https://api.github.com/repos/kickstarter/ios-oss/pulls{/number}","milestones_url":"https://api.github.com/repos/kickstarter/ios-oss/milestones{/number}","notifications_url":"https://api.github.com/repos/kickstarter/ios-oss/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/kickstarter/ios-oss/labels{/name}","releases_url":"https://api.github.com/repos/kickstarter/ios-oss/releases{/id}","deployments_url":"https://api.github.com/repos/kickstarter/ios-oss/deployments","created_at":"2016-12-02T21:24:40Z","updated_at":"2018-11-28T22:22:36Z","pushed_at":"2018-11-28T22:48:44Z","git_url":"git://github.com/kickstarter/ios-oss.git","ssh_url":"git@github.com:kickstarter/ios-oss.git","clone_url":"https://github.com/kickstarter/ios-oss.git","svn_url":"https://github.com/kickstarter/ios-oss","homepage":"https://www.kickstarter.com/mobile","size":1366623,"stargazers_count":6404,"watchers_count":6404,"language":"Swift","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":931,"mirror_url":null,"archived":false,"open_issues_count":8,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"forks":931,"open_issues":8,"watchers":6404,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/kickstarter/ios-oss/pulls/495"},"html":{"href":"https://github.com/kickstarter/ios-oss/pull/495"},"issue":{"href":"https://api.github.com/repos/kickstarter/ios-oss/issues/495"},"comments":{"href":"https://api.github.com/repos/kickstarter/ios-oss/issues/495/comments"},"review_comments":{"href":"https://api.github.com/repos/kickstarter/ios-oss/pulls/495/comments"},"review_comment":{"href":"https://api.github.com/repos/kickstarter/ios-oss/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/kickstarter/ios-oss/pulls/495/commits"},"statuses":{"href":"https://api.github.com/repos/kickstarter/ios-oss/statuses/7ab51a6bcdaec26480fb9841d98940e4c10ea659"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"justinswart"}}