{"action":"created","comment":{"url":"https://api.github.com/repos/Khan/wonder-blocks/pulls/comments/237688893","pull_request_review_id":180052919,"id":237688893,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIzNzY4ODg5Mw==","diff_hunk":"@@ -72,49 +85,74 @@ export default class WithSSRPlaceholder extends React.Component<Props, State> {\n         }\n     }\n \n-    _alreadyPerformedFirstRender = false;\n+    _isTheRootComponent = false;\n \n-    _maybeRenderPlaceholderOrChildren(alreadyPerformedFirstRender: boolean) {\n+    _renderAsRootComponent() {\n         const {mounted} = this.state;\n         const {children, placeholder} = this.props;\n \n-        // We just get on with rendering if we're passed truthiness as\n-        // we are reliably told a WithSSRPlaceholder component further\n-        // up the chain already handled our SSR case.\n-        if (alreadyPerformedFirstRender) {\n-            // We need to stop the forced second render and to do that, we have\n-            // to influence our componentDidMount. Fortunately, that occurs\n-            // after this, so let's save a member value to then use there.\n-            this._alreadyPerformedFirstRender = alreadyPerformedFirstRender;\n-            return children();\n-        }\n+        // We are the first component in the tree.\n+        // We are in control of instigating a second render for our\n+        // component tree.\n+        this._isTheRootComponent = true;\n \n-        // We are mounted and we no higher SSR component handled the first\n-        // render so let's tell our children that we did.\n         if (mounted) {\n+            // This is our second non-SSR render, so let's tell everyone to\n+            // do their thing.\n             return (\n-                <HasHadFirstRenderContext.Provider value={true}>\n+                <RenderStateContext.Provider value=\"standard\">\n                     {children()}\n-                </HasHadFirstRenderContext.Provider>\n+                </RenderStateContext.Provider>\n             );\n         }\n \n-        // We don't have a parent that handled SSR, and this must be our\n-        // first render, and we have a placeholder, so render the placeholder.\n+        // OK, this is the very first render.\n+        // If we have a placeholder, we render it, and ensure that any\n+        // nested SSR components know we're still on that first render\n+        // but they're not in charge of instigating the second render.\n         if (placeholder) {\n-            return placeholder();\n+            return (\n+                <RenderStateContext.Provider value=\"initial\">\n+                    {placeholder()}\n+                </RenderStateContext.Provider>\n+            );\n         }\n \n-        // We don't have a parent that handled SSR, and this must be our\n-        // first render and we don't have a placeholder, so return nothing.\n+        // Otherwise, we return nothing.\n         return null;\n     }\n \n+    _maybeRender(renderState: RenderState) {\n+        const {children, placeholder} = this.props;\n+\n+        switch (renderState) {\n+            case \"root\":\n+                return this._renderAsRootComponent();\n+\n+            case \"initial\":\n+                // We're not the root component, so we just have to either\n+                // render our placeholder or nothing.\n+                // The second render is going to be triggered for us.\n+                if (placeholder) {\n+                    return placeholder();\n+                }\n+                // Otherwise, we render nothing.\n+                return null;\n+\n+            case \"standard\":\n+                // We have covered the SSR render, we're now rendering normally.","path":"packages/wonder-blocks-core/components/with-ssr-placeholder.js","position":119,"original_position":119,"commit_id":"8bfd7b6d5da1cfd296b22b20c2f098b061db5faf","original_commit_id":"8bfd7b6d5da1cfd296b22b20c2f098b061db5faf","user":{"login":"kevinbarabash","id":1044413,"node_id":"MDQ6VXNlcjEwNDQ0MTM=","avatar_url":"https://avatars3.githubusercontent.com/u/1044413?v=4","gravatar_id":"","url":"https://api.github.com/users/kevinbarabash","html_url":"https://github.com/kevinbarabash","followers_url":"https://api.github.com/users/kevinbarabash/followers","following_url":"https://api.github.com/users/kevinbarabash/following{/other_user}","gists_url":"https://api.github.com/users/kevinbarabash/gists{/gist_id}","starred_url":"https://api.github.com/users/kevinbarabash/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kevinbarabash/subscriptions","organizations_url":"https://api.github.com/users/kevinbarabash/orgs","repos_url":"https://api.github.com/users/kevinbarabash/repos","events_url":"https://api.github.com/users/kevinbarabash/events{/privacy}","received_events_url":"https://api.github.com/users/kevinbarabash/received_events","type":"User","site_admin":false},"body":"In that case maybe the comment should be update to match the constant.","created_at":"2018-11-29T22:47:57Z","updated_at":"2018-11-29T22:47:57Z","html_url":"https://github.com/Khan/wonder-blocks/pull/363#discussion_r237688893","pull_request_url":"https://api.github.com/repos/Khan/wonder-blocks/pulls/363","author_association":"MEMBER","_links":{"self":{"href":"https://api.github.com/repos/Khan/wonder-blocks/pulls/comments/237688893"},"html":{"href":"https://github.com/Khan/wonder-blocks/pull/363#discussion_r237688893"},"pull_request":{"href":"https://api.github.com/repos/Khan/wonder-blocks/pulls/363"}},"in_reply_to_id":237251742},"pull_request":{"url":"https://api.github.com/repos/Khan/wonder-blocks/pulls/363","id":232166611,"node_id":"MDExOlB1bGxSZXF1ZXN0MjMyMTY2NjEx","html_url":"https://github.com/Khan/wonder-blocks/pull/363","diff_url":"https://github.com/Khan/wonder-blocks/pull/363.diff","patch_url":"https://github.com/Khan/wonder-blocks/pull/363.patch","issue_url":"https://api.github.com/repos/Khan/wonder-blocks/issues/363","number":363,"state":"open","locked":false,"title":"Ensure WithSSRPlaceholder components nested inside placeholder renders work right","user":{"login":"somewhatabstract","id":1266297,"node_id":"MDQ6VXNlcjEyNjYyOTc=","avatar_url":"https://avatars2.githubusercontent.com/u/1266297?v=4","gravatar_id":"","url":"https://api.github.com/users/somewhatabstract","html_url":"https://github.com/somewhatabstract","followers_url":"https://api.github.com/users/somewhatabstract/followers","following_url":"https://api.github.com/users/somewhatabstract/following{/other_user}","gists_url":"https://api.github.com/users/somewhatabstract/gists{/gist_id}","starred_url":"https://api.github.com/users/somewhatabstract/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/somewhatabstract/subscriptions","organizations_url":"https://api.github.com/users/somewhatabstract/orgs","repos_url":"https://api.github.com/users/somewhatabstract/repos","events_url":"https://api.github.com/users/somewhatabstract/events{/privacy}","received_events_url":"https://api.github.com/users/somewhatabstract/received_events","type":"User","site_admin":false},"body":"~Stacked on #360, only the last commit is related to this PR.~ Now stacked on `master`.\r\n\r\nThis change fixes a bug introduced when we removed the naive rendering cascade.\r\n\r\nBefore this change, if a SSR-aware component based off `WithSSRPlaceholder` was rendered inside the placeholder of another SSR-aware component, it would act as though it was not in the first server-side render, and render its full children. This was not necessarily what we want (for example, `UniqueIDProvider` instances nested inside the children of other `UniqueIDProvider` instances would render as if client-side instead of mocking their own ID factories).\r\n\r\nThis change fixes that by properly differentiating between:\r\n\r\n* the root render, where the component is performing its very first render and is the root of an SSR component tree, and therefore responsible for invoking a second render\r\n* the initial render, where the component is performing its very first render, but otherwise doesn't need to worry about things like invoking additional renders\r\n* all subsequent renders, where the component renders normally.","created_at":"2018-11-20T01:44:39Z","updated_at":"2018-11-29T22:47:57Z","closed_at":null,"merged_at":null,"merge_commit_sha":"2fb621c95ca07d03e6952abda3e60f7f9069b939","assignee":{"login":"somewhatabstract","id":1266297,"node_id":"MDQ6VXNlcjEyNjYyOTc=","avatar_url":"https://avatars2.githubusercontent.com/u/1266297?v=4","gravatar_id":"","url":"https://api.github.com/users/somewhatabstract","html_url":"https://github.com/somewhatabstract","followers_url":"https://api.github.com/users/somewhatabstract/followers","following_url":"https://api.github.com/users/somewhatabstract/following{/other_user}","gists_url":"https://api.github.com/users/somewhatabstract/gists{/gist_id}","starred_url":"https://api.github.com/users/somewhatabstract/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/somewhatabstract/subscriptions","organizations_url":"https://api.github.com/users/somewhatabstract/orgs","repos_url":"https://api.github.com/users/somewhatabstract/repos","events_url":"https://api.github.com/users/somewhatabstract/events{/privacy}","received_events_url":"https://api.github.com/users/somewhatabstract/received_events","type":"User","site_admin":false},"assignees":[{"login":"somewhatabstract","id":1266297,"node_id":"MDQ6VXNlcjEyNjYyOTc=","avatar_url":"https://avatars2.githubusercontent.com/u/1266297?v=4","gravatar_id":"","url":"https://api.github.com/users/somewhatabstract","html_url":"https://github.com/somewhatabstract","followers_url":"https://api.github.com/users/somewhatabstract/followers","following_url":"https://api.github.com/users/somewhatabstract/following{/other_user}","gists_url":"https://api.github.com/users/somewhatabstract/gists{/gist_id}","starred_url":"https://api.github.com/users/somewhatabstract/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/somewhatabstract/subscriptions","organizations_url":"https://api.github.com/users/somewhatabstract/orgs","repos_url":"https://api.github.com/users/somewhatabstract/repos","events_url":"https://api.github.com/users/somewhatabstract/events{/privacy}","received_events_url":"https://api.github.com/users/somewhatabstract/received_events","type":"User","site_admin":false}],"requested_reviewers":[{"login":"jeresig","id":1615,"node_id":"MDQ6VXNlcjE2MTU=","avatar_url":"https://avatars0.githubusercontent.com/u/1615?v=4","gravatar_id":"","url":"https://api.github.com/users/jeresig","html_url":"https://github.com/jeresig","followers_url":"https://api.github.com/users/jeresig/followers","following_url":"https://api.github.com/users/jeresig/following{/other_user}","gists_url":"https://api.github.com/users/jeresig/gists{/gist_id}","starred_url":"https://api.github.com/users/jeresig/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jeresig/subscriptions","organizations_url":"https://api.github.com/users/jeresig/orgs","repos_url":"https://api.github.com/users/jeresig/repos","events_url":"https://api.github.com/users/jeresig/events{/privacy}","received_events_url":"https://api.github.com/users/jeresig/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/Khan/wonder-blocks/pulls/363/commits","review_comments_url":"https://api.github.com/repos/Khan/wonder-blocks/pulls/363/comments","review_comment_url":"https://api.github.com/repos/Khan/wonder-blocks/pulls/comments{/number}","comments_url":"https://api.github.com/repos/Khan/wonder-blocks/issues/363/comments","statuses_url":"https://api.github.com/repos/Khan/wonder-blocks/statuses/8bfd7b6d5da1cfd296b22b20c2f098b061db5faf","head":{"label":"Khan:better-no-ssr","ref":"better-no-ssr","sha":"8bfd7b6d5da1cfd296b22b20c2f098b061db5faf","user":{"login":"Khan","id":15455,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE1NDU1","avatar_url":"https://avatars1.githubusercontent.com/u/15455?v=4","gravatar_id":"","url":"https://api.github.com/users/Khan","html_url":"https://github.com/Khan","followers_url":"https://api.github.com/users/Khan/followers","following_url":"https://api.github.com/users/Khan/following{/other_user}","gists_url":"https://api.github.com/users/Khan/gists{/gist_id}","starred_url":"https://api.github.com/users/Khan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Khan/subscriptions","organizations_url":"https://api.github.com/users/Khan/orgs","repos_url":"https://api.github.com/users/Khan/repos","events_url":"https://api.github.com/users/Khan/events{/privacy}","received_events_url":"https://api.github.com/users/Khan/received_events","type":"Organization","site_admin":false},"repo":{"id":123198469,"node_id":"MDEwOlJlcG9zaXRvcnkxMjMxOTg0Njk=","name":"wonder-blocks","full_name":"Khan/wonder-blocks","private":false,"owner":{"login":"Khan","id":15455,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE1NDU1","avatar_url":"https://avatars1.githubusercontent.com/u/15455?v=4","gravatar_id":"","url":"https://api.github.com/users/Khan","html_url":"https://github.com/Khan","followers_url":"https://api.github.com/users/Khan/followers","following_url":"https://api.github.com/users/Khan/following{/other_user}","gists_url":"https://api.github.com/users/Khan/gists{/gist_id}","starred_url":"https://api.github.com/users/Khan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Khan/subscriptions","organizations_url":"https://api.github.com/users/Khan/orgs","repos_url":"https://api.github.com/users/Khan/repos","events_url":"https://api.github.com/users/Khan/events{/privacy}","received_events_url":"https://api.github.com/users/Khan/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/Khan/wonder-blocks","description":"React components for Wonder Blocks design system.","fork":false,"url":"https://api.github.com/repos/Khan/wonder-blocks","forks_url":"https://api.github.com/repos/Khan/wonder-blocks/forks","keys_url":"https://api.github.com/repos/Khan/wonder-blocks/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Khan/wonder-blocks/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Khan/wonder-blocks/teams","hooks_url":"https://api.github.com/repos/Khan/wonder-blocks/hooks","issue_events_url":"https://api.github.com/repos/Khan/wonder-blocks/issues/events{/number}","events_url":"https://api.github.com/repos/Khan/wonder-blocks/events","assignees_url":"https://api.github.com/repos/Khan/wonder-blocks/assignees{/user}","branches_url":"https://api.github.com/repos/Khan/wonder-blocks/branches{/branch}","tags_url":"https://api.github.com/repos/Khan/wonder-blocks/tags","blobs_url":"https://api.github.com/repos/Khan/wonder-blocks/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Khan/wonder-blocks/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Khan/wonder-blocks/git/refs{/sha}","trees_url":"https://api.github.com/repos/Khan/wonder-blocks/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Khan/wonder-blocks/statuses/{sha}","languages_url":"https://api.github.com/repos/Khan/wonder-blocks/languages","stargazers_url":"https://api.github.com/repos/Khan/wonder-blocks/stargazers","contributors_url":"https://api.github.com/repos/Khan/wonder-blocks/contributors","subscribers_url":"https://api.github.com/repos/Khan/wonder-blocks/subscribers","subscription_url":"https://api.github.com/repos/Khan/wonder-blocks/subscription","commits_url":"https://api.github.com/repos/Khan/wonder-blocks/commits{/sha}","git_commits_url":"https://api.github.com/repos/Khan/wonder-blocks/git/commits{/sha}","comments_url":"https://api.github.com/repos/Khan/wonder-blocks/comments{/number}","issue_comment_url":"https://api.github.com/repos/Khan/wonder-blocks/issues/comments{/number}","contents_url":"https://api.github.com/repos/Khan/wonder-blocks/contents/{+path}","compare_url":"https://api.github.com/repos/Khan/wonder-blocks/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Khan/wonder-blocks/merges","archive_url":"https://api.github.com/repos/Khan/wonder-blocks/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Khan/wonder-blocks/downloads","issues_url":"https://api.github.com/repos/Khan/wonder-blocks/issues{/number}","pulls_url":"https://api.github.com/repos/Khan/wonder-blocks/pulls{/number}","milestones_url":"https://api.github.com/repos/Khan/wonder-blocks/milestones{/number}","notifications_url":"https://api.github.com/repos/Khan/wonder-blocks/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Khan/wonder-blocks/labels{/name}","releases_url":"https://api.github.com/repos/Khan/wonder-blocks/releases{/id}","deployments_url":"https://api.github.com/repos/Khan/wonder-blocks/deployments","created_at":"2018-02-27T22:50:41Z","updated_at":"2018-11-22T13:12:51Z","pushed_at":"2018-11-28T22:35:15Z","git_url":"git://github.com/Khan/wonder-blocks.git","ssh_url":"git@github.com:Khan/wonder-blocks.git","clone_url":"https://github.com/Khan/wonder-blocks.git","svn_url":"https://github.com/Khan/wonder-blocks","homepage":"https://wonder-blocks.netlify.com","size":5686,"stargazers_count":56,"watchers_count":56,"language":"JavaScript","has_issues":false,"has_projects":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":7,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":0,"open_issues":7,"watchers":56,"default_branch":"master"}},"base":{"label":"Khan:master","ref":"master","sha":"f4ad7e37f7c1c5a444072562b99ca2ac6ae483fc","user":{"login":"Khan","id":15455,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE1NDU1","avatar_url":"https://avatars1.githubusercontent.com/u/15455?v=4","gravatar_id":"","url":"https://api.github.com/users/Khan","html_url":"https://github.com/Khan","followers_url":"https://api.github.com/users/Khan/followers","following_url":"https://api.github.com/users/Khan/following{/other_user}","gists_url":"https://api.github.com/users/Khan/gists{/gist_id}","starred_url":"https://api.github.com/users/Khan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Khan/subscriptions","organizations_url":"https://api.github.com/users/Khan/orgs","repos_url":"https://api.github.com/users/Khan/repos","events_url":"https://api.github.com/users/Khan/events{/privacy}","received_events_url":"https://api.github.com/users/Khan/received_events","type":"Organization","site_admin":false},"repo":{"id":123198469,"node_id":"MDEwOlJlcG9zaXRvcnkxMjMxOTg0Njk=","name":"wonder-blocks","full_name":"Khan/wonder-blocks","private":false,"owner":{"login":"Khan","id":15455,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE1NDU1","avatar_url":"https://avatars1.githubusercontent.com/u/15455?v=4","gravatar_id":"","url":"https://api.github.com/users/Khan","html_url":"https://github.com/Khan","followers_url":"https://api.github.com/users/Khan/followers","following_url":"https://api.github.com/users/Khan/following{/other_user}","gists_url":"https://api.github.com/users/Khan/gists{/gist_id}","starred_url":"https://api.github.com/users/Khan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Khan/subscriptions","organizations_url":"https://api.github.com/users/Khan/orgs","repos_url":"https://api.github.com/users/Khan/repos","events_url":"https://api.github.com/users/Khan/events{/privacy}","received_events_url":"https://api.github.com/users/Khan/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/Khan/wonder-blocks","description":"React components for Wonder Blocks design system.","fork":false,"url":"https://api.github.com/repos/Khan/wonder-blocks","forks_url":"https://api.github.com/repos/Khan/wonder-blocks/forks","keys_url":"https://api.github.com/repos/Khan/wonder-blocks/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Khan/wonder-blocks/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Khan/wonder-blocks/teams","hooks_url":"https://api.github.com/repos/Khan/wonder-blocks/hooks","issue_events_url":"https://api.github.com/repos/Khan/wonder-blocks/issues/events{/number}","events_url":"https://api.github.com/repos/Khan/wonder-blocks/events","assignees_url":"https://api.github.com/repos/Khan/wonder-blocks/assignees{/user}","branches_url":"https://api.github.com/repos/Khan/wonder-blocks/branches{/branch}","tags_url":"https://api.github.com/repos/Khan/wonder-blocks/tags","blobs_url":"https://api.github.com/repos/Khan/wonder-blocks/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Khan/wonder-blocks/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Khan/wonder-blocks/git/refs{/sha}","trees_url":"https://api.github.com/repos/Khan/wonder-blocks/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Khan/wonder-blocks/statuses/{sha}","languages_url":"https://api.github.com/repos/Khan/wonder-blocks/languages","stargazers_url":"https://api.github.com/repos/Khan/wonder-blocks/stargazers","contributors_url":"https://api.github.com/repos/Khan/wonder-blocks/contributors","subscribers_url":"https://api.github.com/repos/Khan/wonder-blocks/subscribers","subscription_url":"https://api.github.com/repos/Khan/wonder-blocks/subscription","commits_url":"https://api.github.com/repos/Khan/wonder-blocks/commits{/sha}","git_commits_url":"https://api.github.com/repos/Khan/wonder-blocks/git/commits{/sha}","comments_url":"https://api.github.com/repos/Khan/wonder-blocks/comments{/number}","issue_comment_url":"https://api.github.com/repos/Khan/wonder-blocks/issues/comments{/number}","contents_url":"https://api.github.com/repos/Khan/wonder-blocks/contents/{+path}","compare_url":"https://api.github.com/repos/Khan/wonder-blocks/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Khan/wonder-blocks/merges","archive_url":"https://api.github.com/repos/Khan/wonder-blocks/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Khan/wonder-blocks/downloads","issues_url":"https://api.github.com/repos/Khan/wonder-blocks/issues{/number}","pulls_url":"https://api.github.com/repos/Khan/wonder-blocks/pulls{/number}","milestones_url":"https://api.github.com/repos/Khan/wonder-blocks/milestones{/number}","notifications_url":"https://api.github.com/repos/Khan/wonder-blocks/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Khan/wonder-blocks/labels{/name}","releases_url":"https://api.github.com/repos/Khan/wonder-blocks/releases{/id}","deployments_url":"https://api.github.com/repos/Khan/wonder-blocks/deployments","created_at":"2018-02-27T22:50:41Z","updated_at":"2018-11-22T13:12:51Z","pushed_at":"2018-11-28T22:35:15Z","git_url":"git://github.com/Khan/wonder-blocks.git","ssh_url":"git@github.com:Khan/wonder-blocks.git","clone_url":"https://github.com/Khan/wonder-blocks.git","svn_url":"https://github.com/Khan/wonder-blocks","homepage":"https://wonder-blocks.netlify.com","size":5686,"stargazers_count":56,"watchers_count":56,"language":"JavaScript","has_issues":false,"has_projects":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":7,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":0,"open_issues":7,"watchers":56,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/Khan/wonder-blocks/pulls/363"},"html":{"href":"https://github.com/Khan/wonder-blocks/pull/363"},"issue":{"href":"https://api.github.com/repos/Khan/wonder-blocks/issues/363"},"comments":{"href":"https://api.github.com/repos/Khan/wonder-blocks/issues/363/comments"},"review_comments":{"href":"https://api.github.com/repos/Khan/wonder-blocks/pulls/363/comments"},"review_comment":{"href":"https://api.github.com/repos/Khan/wonder-blocks/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/Khan/wonder-blocks/pulls/363/commits"},"statuses":{"href":"https://api.github.com/repos/Khan/wonder-blocks/statuses/8bfd7b6d5da1cfd296b22b20c2f098b061db5faf"}},"author_association":"MEMBER"}}
{"actor":{"display_login":"kevinbarabash"}}