{"action":"created","comment":{"url":"https://api.github.com/repos/lyft/domic/pulls/comments/213681821","pull_request_review_id":150566532,"id":213681821,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIxMzY4MTgyMQ==","diff_hunk":"@@ -0,0 +1,126 @@\n+package com.lyft.domic.samples.redux.rxredux.signin\n+\n+import com.freeletics.rxredux.StateAccessor\n+import com.freeletics.rxredux.reduxStore\n+import com.lyft.domic.samples.shared.signin.SignInService\n+import io.reactivex.Observable\n+import io.reactivex.Scheduler\n+import io.reactivex.rxkotlin.ofType\n+\n+class SignInStateMachine(\n+        inputActions: Observable<Action>,\n+        private val signInService: SignInService,\n+        computationScheduler: Scheduler\n+) {\n+\n+    sealed class Action {\n+        data class ChangeEmail(val email: CharSequence) : Action()\n+        data class ChangePassword(val password: CharSequence) : Action()\n+        object SignIn : Action()\n+        object SigningIn : Action()\n+        object SignInSuccessful : Action()\n+        data class SignInFailed(val cause: Throwable) : Action()\n+    }\n+\n+    sealed class State {\n+\n+        abstract val email: CharSequence\n+        abstract val password: CharSequence\n+        abstract val signInButtonEnabled: Boolean\n+\n+        data class Idle(\n+                override val email: CharSequence,\n+                override val password: CharSequence,\n+                override val signInButtonEnabled: Boolean\n+        ) : State()\n+\n+        data class SigningIn(\n+                override val email: CharSequence,\n+                override val password: CharSequence,\n+                override val signInButtonEnabled: Boolean\n+        ) : State()\n+\n+        data class SignInSuccessful(\n+                override val email: CharSequence,\n+                override val password: CharSequence,\n+                override val signInButtonEnabled: Boolean\n+        ) : State()\n+\n+        data class SignInFailed(\n+                override val email: CharSequence,\n+                override val password: CharSequence,\n+                override val signInButtonEnabled: Boolean,\n+                val cause: Throwable\n+        ) : State()\n+    }\n+\n+\n+    val state: Observable<State> = inputActions\n+            .observeOn(computationScheduler)","path":"samples/redux/rxredux/src/main/java/com/lyft/domic/samples/redux/rxredux/signin/SignInStateMachine.kt","position":59,"original_position":59,"commit_id":"6786e47f8eea8f66610b2e87b3a0eba917d73033","original_commit_id":"6786e47f8eea8f66610b2e87b3a0eba917d73033","user":{"login":"oldergod","id":1767669,"node_id":"MDQ6VXNlcjE3Njc2Njk=","avatar_url":"https://avatars3.githubusercontent.com/u/1767669?v=4","gravatar_id":"","url":"https://api.github.com/users/oldergod","html_url":"https://github.com/oldergod","followers_url":"https://api.github.com/users/oldergod/followers","following_url":"https://api.github.com/users/oldergod/following{/other_user}","gists_url":"https://api.github.com/users/oldergod/gists{/gist_id}","starred_url":"https://api.github.com/users/oldergod/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/oldergod/subscriptions","organizations_url":"https://api.github.com/users/oldergod/orgs","repos_url":"https://api.github.com/users/oldergod/repos","events_url":"https://api.github.com/users/oldergod/events{/privacy}","received_events_url":"https://api.github.com/users/oldergod/received_events","type":"User","site_admin":false},"body":"Is that necessary?\r\nWith that the `signInButtonEnabled = false` will only apply to at least the next frame. The user could tap it many times?","created_at":"2018-08-29T13:42:52Z","updated_at":"2018-08-29T13:47:26Z","html_url":"https://github.com/lyft/domic/pull/33#discussion_r213681821","pull_request_url":"https://api.github.com/repos/lyft/domic/pulls/33","author_association":"NONE","_links":{"self":{"href":"https://api.github.com/repos/lyft/domic/pulls/comments/213681821"},"html":{"href":"https://github.com/lyft/domic/pull/33#discussion_r213681821"},"pull_request":{"href":"https://api.github.com/repos/lyft/domic/pulls/33"}}},"pull_request":{"url":"https://api.github.com/repos/lyft/domic/pulls/33","id":210983439,"node_id":"MDExOlB1bGxSZXF1ZXN0MjEwOTgzNDM5","html_url":"https://github.com/lyft/domic/pull/33","diff_url":"https://github.com/lyft/domic/pull/33.diff","patch_url":"https://github.com/lyft/domic/pull/33.patch","issue_url":"https://api.github.com/repos/lyft/domic/issues/33","number":33,"state":"open","locked":false,"title":"Add RxRedux sample ","user":{"login":"artem-zinnatullin","id":967132,"node_id":"MDQ6VXNlcjk2NzEzMg==","avatar_url":"https://avatars0.githubusercontent.com/u/967132?v=4","gravatar_id":"","url":"https://api.github.com/users/artem-zinnatullin","html_url":"https://github.com/artem-zinnatullin","followers_url":"https://api.github.com/users/artem-zinnatullin/followers","following_url":"https://api.github.com/users/artem-zinnatullin/following{/other_user}","gists_url":"https://api.github.com/users/artem-zinnatullin/gists{/gist_id}","starred_url":"https://api.github.com/users/artem-zinnatullin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/artem-zinnatullin/subscriptions","organizations_url":"https://api.github.com/users/artem-zinnatullin/orgs","repos_url":"https://api.github.com/users/artem-zinnatullin/repos","events_url":"https://api.github.com/users/artem-zinnatullin/events{/privacy}","received_events_url":"https://api.github.com/users/artem-zinnatullin/received_events","type":"User","site_admin":false},"body":"PR adds sample of Domic integration with [RxRedux](https://github.com/freeletics/RxRedux) made by @sockeqwe at Freelitics\r\n\r\nPlease note that while I seem to understand ideas of Redux and some pros/cons, it might be not very idiomatic.\r\n\r\nGeneral thoughts on Domic + Redux/MVI:\r\n\r\n- Domic's efficient rendering with automatic state diffing is playing really well with Redux, you can run the app and see yourself\r\n- Domic becomes nice unified way of providing observables for `inputActions` produced by View layer, however not much profit here compared to RxBinding\r\n- Domic's `test` module becomes useless unless you want to use it for functional in-memory tests for your Redux app on JVM\r\n\r\nGeneral thoughts on Redux:\r\n\r\n- I've faced quite a lot of boilerplate/productivity problems, mainly this is due to not being able to `copy()` previous state to produce new one\r\n- Sharing some logic for similar actions becomes strange, see `ChangeEmail` and `ChangePassword` action handling in state machine\r\n- Redux generally is very verbose\r\n- I do feel pretty safe because compiler forces me to check a lot of states because of sealed classes everywhere\r\n- However it's still not checking all combinations of possible states and if you try to write code that way it just becomes crazy to reason about state combinations\r\n\r\nSome thoughts on RxRedux:\r\n\r\n- It's nice, I find it easier to reason about than [Mobius](https://github.com/spotify/mobius), I guess mainly because I'm comfortable with RxJava and RxRedux is  built directly on top of it\r\n- I'm still not sure if `StateAccessor` was necessary, compared to just passing current state as parameter, I'll have to try in more complicated scenarios when something can happen in parallel to async action I guess\r\n- Kotlin's typealiases are finally useful lol\r\n\r\ncc @sockeqwe, code review from you would be reaaaaaly appreciated :)","created_at":"2018-08-27T01:11:27Z","updated_at":"2018-08-29T13:47:26Z","closed_at":null,"merged_at":null,"merge_commit_sha":"cf9c42afe6eba0596a0d4d7bc6b6248fde6ac7e7","assignee":{"login":"artem-zinnatullin","id":967132,"node_id":"MDQ6VXNlcjk2NzEzMg==","avatar_url":"https://avatars0.githubusercontent.com/u/967132?v=4","gravatar_id":"","url":"https://api.github.com/users/artem-zinnatullin","html_url":"https://github.com/artem-zinnatullin","followers_url":"https://api.github.com/users/artem-zinnatullin/followers","following_url":"https://api.github.com/users/artem-zinnatullin/following{/other_user}","gists_url":"https://api.github.com/users/artem-zinnatullin/gists{/gist_id}","starred_url":"https://api.github.com/users/artem-zinnatullin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/artem-zinnatullin/subscriptions","organizations_url":"https://api.github.com/users/artem-zinnatullin/orgs","repos_url":"https://api.github.com/users/artem-zinnatullin/repos","events_url":"https://api.github.com/users/artem-zinnatullin/events{/privacy}","received_events_url":"https://api.github.com/users/artem-zinnatullin/received_events","type":"User","site_admin":false},"assignees":[{"login":"artem-zinnatullin","id":967132,"node_id":"MDQ6VXNlcjk2NzEzMg==","avatar_url":"https://avatars0.githubusercontent.com/u/967132?v=4","gravatar_id":"","url":"https://api.github.com/users/artem-zinnatullin","html_url":"https://github.com/artem-zinnatullin","followers_url":"https://api.github.com/users/artem-zinnatullin/followers","following_url":"https://api.github.com/users/artem-zinnatullin/following{/other_user}","gists_url":"https://api.github.com/users/artem-zinnatullin/gists{/gist_id}","starred_url":"https://api.github.com/users/artem-zinnatullin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/artem-zinnatullin/subscriptions","organizations_url":"https://api.github.com/users/artem-zinnatullin/orgs","repos_url":"https://api.github.com/users/artem-zinnatullin/repos","events_url":"https://api.github.com/users/artem-zinnatullin/events{/privacy}","received_events_url":"https://api.github.com/users/artem-zinnatullin/received_events","type":"User","site_admin":false}],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":925875896,"node_id":"MDU6TGFiZWw5MjU4NzU4OTY=","url":"https://api.github.com/repos/lyft/domic/labels/enhancement","name":"enhancement","color":"a2eeef","default":true}],"milestone":{"url":"https://api.github.com/repos/lyft/domic/milestones/1","html_url":"https://github.com/lyft/domic/milestone/1","labels_url":"https://api.github.com/repos/lyft/domic/milestones/1/labels","id":3333870,"node_id":"MDk6TWlsZXN0b25lMzMzMzg3MA==","number":1,"title":"v0.1.0","description":"Initial pre-v1 release.","creator":{"login":"artem-zinnatullin","id":967132,"node_id":"MDQ6VXNlcjk2NzEzMg==","avatar_url":"https://avatars0.githubusercontent.com/u/967132?v=4","gravatar_id":"","url":"https://api.github.com/users/artem-zinnatullin","html_url":"https://github.com/artem-zinnatullin","followers_url":"https://api.github.com/users/artem-zinnatullin/followers","following_url":"https://api.github.com/users/artem-zinnatullin/following{/other_user}","gists_url":"https://api.github.com/users/artem-zinnatullin/gists{/gist_id}","starred_url":"https://api.github.com/users/artem-zinnatullin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/artem-zinnatullin/subscriptions","organizations_url":"https://api.github.com/users/artem-zinnatullin/orgs","repos_url":"https://api.github.com/users/artem-zinnatullin/repos","events_url":"https://api.github.com/users/artem-zinnatullin/events{/privacy}","received_events_url":"https://api.github.com/users/artem-zinnatullin/received_events","type":"User","site_admin":false},"open_issues":4,"closed_issues":15,"state":"open","created_at":"2018-05-09T17:26:17Z","updated_at":"2018-08-27T16:36:44Z","due_on":null,"closed_at":null},"commits_url":"https://api.github.com/repos/lyft/domic/pulls/33/commits","review_comments_url":"https://api.github.com/repos/lyft/domic/pulls/33/comments","review_comment_url":"https://api.github.com/repos/lyft/domic/pulls/comments{/number}","comments_url":"https://api.github.com/repos/lyft/domic/issues/33/comments","statuses_url":"https://api.github.com/repos/lyft/domic/statuses/6786e47f8eea8f66610b2e87b3a0eba917d73033","head":{"label":"lyft:az/add-rxredux-sample","ref":"az/add-rxredux-sample","sha":"6786e47f8eea8f66610b2e87b3a0eba917d73033","user":{"login":"lyft","id":4269340,"node_id":"MDEyOk9yZ2FuaXphdGlvbjQyNjkzNDA=","avatar_url":"https://avatars2.githubusercontent.com/u/4269340?v=4","gravatar_id":"","url":"https://api.github.com/users/lyft","html_url":"https://github.com/lyft","followers_url":"https://api.github.com/users/lyft/followers","following_url":"https://api.github.com/users/lyft/following{/other_user}","gists_url":"https://api.github.com/users/lyft/gists{/gist_id}","starred_url":"https://api.github.com/users/lyft/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lyft/subscriptions","organizations_url":"https://api.github.com/users/lyft/orgs","repos_url":"https://api.github.com/users/lyft/repos","events_url":"https://api.github.com/users/lyft/events{/privacy}","received_events_url":"https://api.github.com/users/lyft/received_events","type":"Organization","site_admin":false},"repo":{"id":132529484,"node_id":"MDEwOlJlcG9zaXRvcnkxMzI1Mjk0ODQ=","name":"domic","full_name":"lyft/domic","owner":{"login":"lyft","id":4269340,"node_id":"MDEyOk9yZ2FuaXphdGlvbjQyNjkzNDA=","avatar_url":"https://avatars2.githubusercontent.com/u/4269340?v=4","gravatar_id":"","url":"https://api.github.com/users/lyft","html_url":"https://github.com/lyft","followers_url":"https://api.github.com/users/lyft/followers","following_url":"https://api.github.com/users/lyft/following{/other_user}","gists_url":"https://api.github.com/users/lyft/gists{/gist_id}","starred_url":"https://api.github.com/users/lyft/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lyft/subscriptions","organizations_url":"https://api.github.com/users/lyft/orgs","repos_url":"https://api.github.com/users/lyft/repos","events_url":"https://api.github.com/users/lyft/events{/privacy}","received_events_url":"https://api.github.com/users/lyft/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/lyft/domic","description":"Reactive Virtual DOM for Android.","fork":false,"url":"https://api.github.com/repos/lyft/domic","forks_url":"https://api.github.com/repos/lyft/domic/forks","keys_url":"https://api.github.com/repos/lyft/domic/keys{/key_id}","collaborators_url":"https://api.github.com/repos/lyft/domic/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/lyft/domic/teams","hooks_url":"https://api.github.com/repos/lyft/domic/hooks","issue_events_url":"https://api.github.com/repos/lyft/domic/issues/events{/number}","events_url":"https://api.github.com/repos/lyft/domic/events","assignees_url":"https://api.github.com/repos/lyft/domic/assignees{/user}","branches_url":"https://api.github.com/repos/lyft/domic/branches{/branch}","tags_url":"https://api.github.com/repos/lyft/domic/tags","blobs_url":"https://api.github.com/repos/lyft/domic/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/lyft/domic/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/lyft/domic/git/refs{/sha}","trees_url":"https://api.github.com/repos/lyft/domic/git/trees{/sha}","statuses_url":"https://api.github.com/repos/lyft/domic/statuses/{sha}","languages_url":"https://api.github.com/repos/lyft/domic/languages","stargazers_url":"https://api.github.com/repos/lyft/domic/stargazers","contributors_url":"https://api.github.com/repos/lyft/domic/contributors","subscribers_url":"https://api.github.com/repos/lyft/domic/subscribers","subscription_url":"https://api.github.com/repos/lyft/domic/subscription","commits_url":"https://api.github.com/repos/lyft/domic/commits{/sha}","git_commits_url":"https://api.github.com/repos/lyft/domic/git/commits{/sha}","comments_url":"https://api.github.com/repos/lyft/domic/comments{/number}","issue_comment_url":"https://api.github.com/repos/lyft/domic/issues/comments{/number}","contents_url":"https://api.github.com/repos/lyft/domic/contents/{+path}","compare_url":"https://api.github.com/repos/lyft/domic/compare/{base}...{head}","merges_url":"https://api.github.com/repos/lyft/domic/merges","archive_url":"https://api.github.com/repos/lyft/domic/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/lyft/domic/downloads","issues_url":"https://api.github.com/repos/lyft/domic/issues{/number}","pulls_url":"https://api.github.com/repos/lyft/domic/pulls{/number}","milestones_url":"https://api.github.com/repos/lyft/domic/milestones{/number}","notifications_url":"https://api.github.com/repos/lyft/domic/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/lyft/domic/labels{/name}","releases_url":"https://api.github.com/repos/lyft/domic/releases{/id}","deployments_url":"https://api.github.com/repos/lyft/domic/deployments","created_at":"2018-05-08T00:00:20Z","updated_at":"2018-08-29T12:09:47Z","pushed_at":"2018-08-28T19:42:53Z","git_url":"git://github.com/lyft/domic.git","ssh_url":"git@github.com:lyft/domic.git","clone_url":"https://github.com/lyft/domic.git","svn_url":"https://github.com/lyft/domic","homepage":"","size":238,"stargazers_count":317,"watchers_count":317,"language":"Kotlin","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":11,"mirror_url":null,"archived":false,"open_issues_count":6,"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":11,"open_issues":6,"watchers":317,"default_branch":"master"}},"base":{"label":"lyft:master","ref":"master","sha":"797a19cf349bef4d4131902339f06222845d5349","user":{"login":"lyft","id":4269340,"node_id":"MDEyOk9yZ2FuaXphdGlvbjQyNjkzNDA=","avatar_url":"https://avatars2.githubusercontent.com/u/4269340?v=4","gravatar_id":"","url":"https://api.github.com/users/lyft","html_url":"https://github.com/lyft","followers_url":"https://api.github.com/users/lyft/followers","following_url":"https://api.github.com/users/lyft/following{/other_user}","gists_url":"https://api.github.com/users/lyft/gists{/gist_id}","starred_url":"https://api.github.com/users/lyft/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lyft/subscriptions","organizations_url":"https://api.github.com/users/lyft/orgs","repos_url":"https://api.github.com/users/lyft/repos","events_url":"https://api.github.com/users/lyft/events{/privacy}","received_events_url":"https://api.github.com/users/lyft/received_events","type":"Organization","site_admin":false},"repo":{"id":132529484,"node_id":"MDEwOlJlcG9zaXRvcnkxMzI1Mjk0ODQ=","name":"domic","full_name":"lyft/domic","owner":{"login":"lyft","id":4269340,"node_id":"MDEyOk9yZ2FuaXphdGlvbjQyNjkzNDA=","avatar_url":"https://avatars2.githubusercontent.com/u/4269340?v=4","gravatar_id":"","url":"https://api.github.com/users/lyft","html_url":"https://github.com/lyft","followers_url":"https://api.github.com/users/lyft/followers","following_url":"https://api.github.com/users/lyft/following{/other_user}","gists_url":"https://api.github.com/users/lyft/gists{/gist_id}","starred_url":"https://api.github.com/users/lyft/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lyft/subscriptions","organizations_url":"https://api.github.com/users/lyft/orgs","repos_url":"https://api.github.com/users/lyft/repos","events_url":"https://api.github.com/users/lyft/events{/privacy}","received_events_url":"https://api.github.com/users/lyft/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/lyft/domic","description":"Reactive Virtual DOM for Android.","fork":false,"url":"https://api.github.com/repos/lyft/domic","forks_url":"https://api.github.com/repos/lyft/domic/forks","keys_url":"https://api.github.com/repos/lyft/domic/keys{/key_id}","collaborators_url":"https://api.github.com/repos/lyft/domic/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/lyft/domic/teams","hooks_url":"https://api.github.com/repos/lyft/domic/hooks","issue_events_url":"https://api.github.com/repos/lyft/domic/issues/events{/number}","events_url":"https://api.github.com/repos/lyft/domic/events","assignees_url":"https://api.github.com/repos/lyft/domic/assignees{/user}","branches_url":"https://api.github.com/repos/lyft/domic/branches{/branch}","tags_url":"https://api.github.com/repos/lyft/domic/tags","blobs_url":"https://api.github.com/repos/lyft/domic/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/lyft/domic/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/lyft/domic/git/refs{/sha}","trees_url":"https://api.github.com/repos/lyft/domic/git/trees{/sha}","statuses_url":"https://api.github.com/repos/lyft/domic/statuses/{sha}","languages_url":"https://api.github.com/repos/lyft/domic/languages","stargazers_url":"https://api.github.com/repos/lyft/domic/stargazers","contributors_url":"https://api.github.com/repos/lyft/domic/contributors","subscribers_url":"https://api.github.com/repos/lyft/domic/subscribers","subscription_url":"https://api.github.com/repos/lyft/domic/subscription","commits_url":"https://api.github.com/repos/lyft/domic/commits{/sha}","git_commits_url":"https://api.github.com/repos/lyft/domic/git/commits{/sha}","comments_url":"https://api.github.com/repos/lyft/domic/comments{/number}","issue_comment_url":"https://api.github.com/repos/lyft/domic/issues/comments{/number}","contents_url":"https://api.github.com/repos/lyft/domic/contents/{+path}","compare_url":"https://api.github.com/repos/lyft/domic/compare/{base}...{head}","merges_url":"https://api.github.com/repos/lyft/domic/merges","archive_url":"https://api.github.com/repos/lyft/domic/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/lyft/domic/downloads","issues_url":"https://api.github.com/repos/lyft/domic/issues{/number}","pulls_url":"https://api.github.com/repos/lyft/domic/pulls{/number}","milestones_url":"https://api.github.com/repos/lyft/domic/milestones{/number}","notifications_url":"https://api.github.com/repos/lyft/domic/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/lyft/domic/labels{/name}","releases_url":"https://api.github.com/repos/lyft/domic/releases{/id}","deployments_url":"https://api.github.com/repos/lyft/domic/deployments","created_at":"2018-05-08T00:00:20Z","updated_at":"2018-08-29T12:09:47Z","pushed_at":"2018-08-28T19:42:53Z","git_url":"git://github.com/lyft/domic.git","ssh_url":"git@github.com:lyft/domic.git","clone_url":"https://github.com/lyft/domic.git","svn_url":"https://github.com/lyft/domic","homepage":"","size":238,"stargazers_count":317,"watchers_count":317,"language":"Kotlin","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":11,"mirror_url":null,"archived":false,"open_issues_count":6,"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":11,"open_issues":6,"watchers":317,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/lyft/domic/pulls/33"},"html":{"href":"https://github.com/lyft/domic/pull/33"},"issue":{"href":"https://api.github.com/repos/lyft/domic/issues/33"},"comments":{"href":"https://api.github.com/repos/lyft/domic/issues/33/comments"},"review_comments":{"href":"https://api.github.com/repos/lyft/domic/pulls/33/comments"},"review_comment":{"href":"https://api.github.com/repos/lyft/domic/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/lyft/domic/pulls/33/commits"},"statuses":{"href":"https://api.github.com/repos/lyft/domic/statuses/6786e47f8eea8f66610b2e87b3a0eba917d73033"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"oldergod"}}