{"action":"created","comment":{"url":"https://api.github.com/repos/apollographql/apollo-client/pulls/comments/242281598","pull_request_review_id":185746657,"id":242281598,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MjI4MTU5OA==","diff_hunk":"@@ -89,243 +87,179 @@ function getDirectiveMatcher(\n   };\n }\n \n-function addTypenameToSelectionSet(\n-  selectionSet: SelectionSetNode,\n-  isRoot = false,\n-) {\n-  if (selectionSet.selections) {\n-    if (!isRoot) {\n-      const alreadyHasThisField = selectionSet.selections.some(selection => {\n-        return (\n-          selection.kind === 'Field' &&\n-          (selection as FieldNode).name.value === '__typename'\n-        );\n-      });\n-\n-      if (!alreadyHasThisField) {\n-        selectionSet.selections.push(TYPENAME_FIELD);\n-      }\n-    }\n-\n-    selectionSet.selections.forEach(selection => {\n-      // Must not add __typename if we're inside an introspection query\n-      if (selection.kind === 'Field') {\n-        if (\n-          selection.name.value.lastIndexOf('__', 0) !== 0 &&\n-          selection.selectionSet\n-        ) {\n-          addTypenameToSelectionSet(selection.selectionSet);\n-        }\n-      } else if (selection.kind === 'InlineFragment') {\n-        if (selection.selectionSet) {\n-          addTypenameToSelectionSet(selection.selectionSet);\n+export function removeDirectivesFromDocument(\n+  directives: RemoveDirectiveConfig[],\n+  doc: DocumentNode,\n+): DocumentNode | null {\n+  let variablesInUse: string[] = [];\n+  let variablesToRemove: RemoveArgumentsConfig[] = [];\n+\n+  let fragmentSpreadsInUse: string[] = [];\n+  let fragmentSpreadsToRemove: RemoveFragmentSpreadConfig[] = [];\n+\n+  let modifiedDoc = visit(doc, {\n+    Variable: {\n+      enter(node, _, parent) {\n+        // Store each variable that's referenced as part of an argument\n+        // (excluding operation definition variables), so we know which\n+        // variables are being used. If we later want to remove a variable\n+        // we'll fist check to see if it's being used, before continuing with\n+        // the removal.\n+        if ((parent as VariableDefinitionNode).kind !== 'VariableDefinition') {\n+          variablesInUse.push(node.name.value);\n         }\n-      }\n-    });\n-  }\n-}\n-\n-function getSelectionsMatchingDirectiveFromSelectionSet(\n-  directives: GetDirectiveConfig[],\n-  selectionSet: SelectionSetNode,\n-  invert: boolean = false,\n-  fieldsOnly: boolean = false,\n-): SelectionNode[] {\n-  return selectionSet.selections\n-    .map(selection => {\n-      if (\n-        selection.kind !== 'Field' ||\n-        !(selection as FieldNode) ||\n-        !selection.directives\n-      ) {\n-        return fieldsOnly ? null : selection;\n-      }\n+      },\n+    },\n \n-      let isMatch: boolean;\n-      const directiveMatcher = getDirectiveMatcher(directives);\n-      selection.directives = selection.directives.filter(directive => {\n-        const shouldKeep = !directiveMatcher(directive);\n+    Field: {\n+      enter(node) {\n+        // If `remove` is set to true for a directive, and a directive match\n+        // is found for a field, remove the field as well.\n+        const shouldRemoveField = directives.some(\n+          directive => directive.remove,\n+        );\n \n-        if (!isMatch && !shouldKeep) {\n-          isMatch = true;\n+        if (shouldRemoveField) {\n+          const matcher = getDirectiveMatcher(directives);\n+          let removeField = false;\n+          node.directives.forEach(directive => {\n+            if (matcher(directive)) {\n+              removeField = true;\n+              return;\n+            }\n+          });\n+\n+          if (removeField) {\n+            if (node.arguments) {\n+              // Store field argument variables so they can be removed\n+              // from the operation definition.\n+              variablesToRemove = variablesToRemove.concat(","path":"packages/apollo-utilities/src/transform.ts","position":126,"original_position":126,"commit_id":"c7083c565386363b75cd545bca39e20013375d69","original_commit_id":"c7083c565386363b75cd545bca39e20013375d69","user":{"login":"benjamn","id":5750,"node_id":"MDQ6VXNlcjU3NTA=","avatar_url":"https://avatars0.githubusercontent.com/u/5750?v=4","gravatar_id":"","url":"https://api.github.com/users/benjamn","html_url":"https://github.com/benjamn","followers_url":"https://api.github.com/users/benjamn/followers","following_url":"https://api.github.com/users/benjamn/following{/other_user}","gists_url":"https://api.github.com/users/benjamn/gists{/gist_id}","starred_url":"https://api.github.com/users/benjamn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/benjamn/subscriptions","organizations_url":"https://api.github.com/users/benjamn/orgs","repos_url":"https://api.github.com/users/benjamn/repos","events_url":"https://api.github.com/users/benjamn/events{/privacy}","received_events_url":"https://api.github.com/users/benjamn/received_events","type":"User","site_admin":false},"body":"Let's use a `forEach` loop that calls `variablesToRemove.push` when appropriate, rather than creating several new arrays each time here.","created_at":"2018-12-17T19:20:50Z","updated_at":"2018-12-17T19:54:38Z","html_url":"https://github.com/apollographql/apollo-client/pull/4233#discussion_r242281598","pull_request_url":"https://api.github.com/repos/apollographql/apollo-client/pulls/4233","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/apollographql/apollo-client/pulls/comments/242281598"},"html":{"href":"https://github.com/apollographql/apollo-client/pull/4233#discussion_r242281598"},"pull_request":{"href":"https://api.github.com/repos/apollographql/apollo-client/pulls/4233"}}},"pull_request":{"url":"https://api.github.com/repos/apollographql/apollo-client/pulls/4233","id":238165467,"node_id":"MDExOlB1bGxSZXF1ZXN0MjM4MTY1NDY3","html_url":"https://github.com/apollographql/apollo-client/pull/4233","diff_url":"https://github.com/apollographql/apollo-client/pull/4233.diff","patch_url":"https://github.com/apollographql/apollo-client/pull/4233.patch","issue_url":"https://api.github.com/repos/apollographql/apollo-client/issues/4233","number":4233,"state":"open","locked":false,"title":"Modernize `apollo-utilities` graphql transformation functionality","user":{"login":"hwillson","id":137740,"node_id":"MDQ6VXNlcjEzNzc0MA==","avatar_url":"https://avatars1.githubusercontent.com/u/137740?v=4","gravatar_id":"","url":"https://api.github.com/users/hwillson","html_url":"https://github.com/hwillson","followers_url":"https://api.github.com/users/hwillson/followers","following_url":"https://api.github.com/users/hwillson/following{/other_user}","gists_url":"https://api.github.com/users/hwillson/gists{/gist_id}","starred_url":"https://api.github.com/users/hwillson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hwillson/subscriptions","organizations_url":"https://api.github.com/users/hwillson/orgs","repos_url":"https://api.github.com/users/hwillson/repos","events_url":"https://api.github.com/users/hwillson/events{/privacy}","received_events_url":"https://api.github.com/users/hwillson/received_events","type":"User","site_admin":false},"body":"The graphql AST transformation capabilities provided by `apollo-utilities` are no longer in synch with `graphql` 14.x, as they rely on being able to directly modify a graphql based AST. `graphql` 14.x has made the internal document structure read only, so we'll need to update `apollo-utilities` to use a different approach (likely using [`graphql`'s visitor](https://graphql.org/graphql-js/language/#visitor) functionality). We've know about this for a while (Renovate keeps reminding us - e.g. https://github.com/apollographql/apollo-client/pull/3875), but we should definitely address this sooner than later.\r\n\r\nAs a start, this PR updates the `@types/graphql` and `graphql` dev deps to the latest 14.x based versions, which will break CI. This PR will serve as a placeholder until this is addressed. ","created_at":"2018-12-12T20:04:33Z","updated_at":"2018-12-17T19:54:38Z","closed_at":null,"merged_at":null,"merge_commit_sha":"850a40ce3309e520aaa0bf3faa7fb6ebbd9c94d7","assignee":{"login":"hwillson","id":137740,"node_id":"MDQ6VXNlcjEzNzc0MA==","avatar_url":"https://avatars1.githubusercontent.com/u/137740?v=4","gravatar_id":"","url":"https://api.github.com/users/hwillson","html_url":"https://github.com/hwillson","followers_url":"https://api.github.com/users/hwillson/followers","following_url":"https://api.github.com/users/hwillson/following{/other_user}","gists_url":"https://api.github.com/users/hwillson/gists{/gist_id}","starred_url":"https://api.github.com/users/hwillson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hwillson/subscriptions","organizations_url":"https://api.github.com/users/hwillson/orgs","repos_url":"https://api.github.com/users/hwillson/repos","events_url":"https://api.github.com/users/hwillson/events{/privacy}","received_events_url":"https://api.github.com/users/hwillson/received_events","type":"User","site_admin":false},"assignees":[{"login":"hwillson","id":137740,"node_id":"MDQ6VXNlcjEzNzc0MA==","avatar_url":"https://avatars1.githubusercontent.com/u/137740?v=4","gravatar_id":"","url":"https://api.github.com/users/hwillson","html_url":"https://github.com/hwillson","followers_url":"https://api.github.com/users/hwillson/followers","following_url":"https://api.github.com/users/hwillson/following{/other_user}","gists_url":"https://api.github.com/users/hwillson/gists{/gist_id}","starred_url":"https://api.github.com/users/hwillson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hwillson/subscriptions","organizations_url":"https://api.github.com/users/hwillson/orgs","repos_url":"https://api.github.com/users/hwillson/repos","events_url":"https://api.github.com/users/hwillson/events{/privacy}","received_events_url":"https://api.github.com/users/hwillson/received_events","type":"User","site_admin":false}],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":1159524388,"node_id":"MDU6TGFiZWwxMTU5NTI0Mzg4","url":"https://api.github.com/repos/apollographql/apollo-client/labels/in%20progress","name":"in progress","color":"ededed","default":false}],"milestone":null,"commits_url":"https://api.github.com/repos/apollographql/apollo-client/pulls/4233/commits","review_comments_url":"https://api.github.com/repos/apollographql/apollo-client/pulls/4233/comments","review_comment_url":"https://api.github.com/repos/apollographql/apollo-client/pulls/comments{/number}","comments_url":"https://api.github.com/repos/apollographql/apollo-client/issues/4233/comments","statuses_url":"https://api.github.com/repos/apollographql/apollo-client/statuses/c7083c565386363b75cd545bca39e20013375d69","head":{"label":"apollographql:hwillson/graphql-updates","ref":"hwillson/graphql-updates","sha":"c7083c565386363b75cd545bca39e20013375d69","user":{"login":"apollographql","id":17189275,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE3MTg5Mjc1","avatar_url":"https://avatars0.githubusercontent.com/u/17189275?v=4","gravatar_id":"","url":"https://api.github.com/users/apollographql","html_url":"https://github.com/apollographql","followers_url":"https://api.github.com/users/apollographql/followers","following_url":"https://api.github.com/users/apollographql/following{/other_user}","gists_url":"https://api.github.com/users/apollographql/gists{/gist_id}","starred_url":"https://api.github.com/users/apollographql/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/apollographql/subscriptions","organizations_url":"https://api.github.com/users/apollographql/orgs","repos_url":"https://api.github.com/users/apollographql/repos","events_url":"https://api.github.com/users/apollographql/events{/privacy}","received_events_url":"https://api.github.com/users/apollographql/received_events","type":"Organization","site_admin":false},"repo":{"id":52630616,"node_id":"MDEwOlJlcG9zaXRvcnk1MjYzMDYxNg==","name":"apollo-client","full_name":"apollographql/apollo-client","private":false,"owner":{"login":"apollographql","id":17189275,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE3MTg5Mjc1","avatar_url":"https://avatars0.githubusercontent.com/u/17189275?v=4","gravatar_id":"","url":"https://api.github.com/users/apollographql","html_url":"https://github.com/apollographql","followers_url":"https://api.github.com/users/apollographql/followers","following_url":"https://api.github.com/users/apollographql/following{/other_user}","gists_url":"https://api.github.com/users/apollographql/gists{/gist_id}","starred_url":"https://api.github.com/users/apollographql/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/apollographql/subscriptions","organizations_url":"https://api.github.com/users/apollographql/orgs","repos_url":"https://api.github.com/users/apollographql/repos","events_url":"https://api.github.com/users/apollographql/events{/privacy}","received_events_url":"https://api.github.com/users/apollographql/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/apollographql/apollo-client","description":":rocket: A fully-featured, production ready caching GraphQL client for every UI framework and GraphQL server","fork":false,"url":"https://api.github.com/repos/apollographql/apollo-client","forks_url":"https://api.github.com/repos/apollographql/apollo-client/forks","keys_url":"https://api.github.com/repos/apollographql/apollo-client/keys{/key_id}","collaborators_url":"https://api.github.com/repos/apollographql/apollo-client/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/apollographql/apollo-client/teams","hooks_url":"https://api.github.com/repos/apollographql/apollo-client/hooks","issue_events_url":"https://api.github.com/repos/apollographql/apollo-client/issues/events{/number}","events_url":"https://api.github.com/repos/apollographql/apollo-client/events","assignees_url":"https://api.github.com/repos/apollographql/apollo-client/assignees{/user}","branches_url":"https://api.github.com/repos/apollographql/apollo-client/branches{/branch}","tags_url":"https://api.github.com/repos/apollographql/apollo-client/tags","blobs_url":"https://api.github.com/repos/apollographql/apollo-client/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/apollographql/apollo-client/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/apollographql/apollo-client/git/refs{/sha}","trees_url":"https://api.github.com/repos/apollographql/apollo-client/git/trees{/sha}","statuses_url":"https://api.github.com/repos/apollographql/apollo-client/statuses/{sha}","languages_url":"https://api.github.com/repos/apollographql/apollo-client/languages","stargazers_url":"https://api.github.com/repos/apollographql/apollo-client/stargazers","contributors_url":"https://api.github.com/repos/apollographql/apollo-client/contributors","subscribers_url":"https://api.github.com/repos/apollographql/apollo-client/subscribers","subscription_url":"https://api.github.com/repos/apollographql/apollo-client/subscription","commits_url":"https://api.github.com/repos/apollographql/apollo-client/commits{/sha}","git_commits_url":"https://api.github.com/repos/apollographql/apollo-client/git/commits{/sha}","comments_url":"https://api.github.com/repos/apollographql/apollo-client/comments{/number}","issue_comment_url":"https://api.github.com/repos/apollographql/apollo-client/issues/comments{/number}","contents_url":"https://api.github.com/repos/apollographql/apollo-client/contents/{+path}","compare_url":"https://api.github.com/repos/apollographql/apollo-client/compare/{base}...{head}","merges_url":"https://api.github.com/repos/apollographql/apollo-client/merges","archive_url":"https://api.github.com/repos/apollographql/apollo-client/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/apollographql/apollo-client/downloads","issues_url":"https://api.github.com/repos/apollographql/apollo-client/issues{/number}","pulls_url":"https://api.github.com/repos/apollographql/apollo-client/pulls{/number}","milestones_url":"https://api.github.com/repos/apollographql/apollo-client/milestones{/number}","notifications_url":"https://api.github.com/repos/apollographql/apollo-client/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/apollographql/apollo-client/labels{/name}","releases_url":"https://api.github.com/repos/apollographql/apollo-client/releases{/id}","deployments_url":"https://api.github.com/repos/apollographql/apollo-client/deployments","created_at":"2016-02-26T20:25:00Z","updated_at":"2018-12-17T16:16:37Z","pushed_at":"2018-12-17T17:19:42Z","git_url":"git://github.com/apollographql/apollo-client.git","ssh_url":"git@github.com:apollographql/apollo-client.git","clone_url":"https://github.com/apollographql/apollo-client.git","svn_url":"https://github.com/apollographql/apollo-client","homepage":"http://dev.apollodata.com/","size":13420,"stargazers_count":9432,"watchers_count":9432,"language":"TypeScript","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":1079,"mirror_url":null,"archived":false,"open_issues_count":262,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":1079,"open_issues":262,"watchers":9432,"default_branch":"master"}},"base":{"label":"apollographql:master","ref":"master","sha":"911ca2db631adc38745b8098dd802e0cdfe8dbbb","user":{"login":"apollographql","id":17189275,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE3MTg5Mjc1","avatar_url":"https://avatars0.githubusercontent.com/u/17189275?v=4","gravatar_id":"","url":"https://api.github.com/users/apollographql","html_url":"https://github.com/apollographql","followers_url":"https://api.github.com/users/apollographql/followers","following_url":"https://api.github.com/users/apollographql/following{/other_user}","gists_url":"https://api.github.com/users/apollographql/gists{/gist_id}","starred_url":"https://api.github.com/users/apollographql/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/apollographql/subscriptions","organizations_url":"https://api.github.com/users/apollographql/orgs","repos_url":"https://api.github.com/users/apollographql/repos","events_url":"https://api.github.com/users/apollographql/events{/privacy}","received_events_url":"https://api.github.com/users/apollographql/received_events","type":"Organization","site_admin":false},"repo":{"id":52630616,"node_id":"MDEwOlJlcG9zaXRvcnk1MjYzMDYxNg==","name":"apollo-client","full_name":"apollographql/apollo-client","private":false,"owner":{"login":"apollographql","id":17189275,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE3MTg5Mjc1","avatar_url":"https://avatars0.githubusercontent.com/u/17189275?v=4","gravatar_id":"","url":"https://api.github.com/users/apollographql","html_url":"https://github.com/apollographql","followers_url":"https://api.github.com/users/apollographql/followers","following_url":"https://api.github.com/users/apollographql/following{/other_user}","gists_url":"https://api.github.com/users/apollographql/gists{/gist_id}","starred_url":"https://api.github.com/users/apollographql/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/apollographql/subscriptions","organizations_url":"https://api.github.com/users/apollographql/orgs","repos_url":"https://api.github.com/users/apollographql/repos","events_url":"https://api.github.com/users/apollographql/events{/privacy}","received_events_url":"https://api.github.com/users/apollographql/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/apollographql/apollo-client","description":":rocket: A fully-featured, production ready caching GraphQL client for every UI framework and GraphQL server","fork":false,"url":"https://api.github.com/repos/apollographql/apollo-client","forks_url":"https://api.github.com/repos/apollographql/apollo-client/forks","keys_url":"https://api.github.com/repos/apollographql/apollo-client/keys{/key_id}","collaborators_url":"https://api.github.com/repos/apollographql/apollo-client/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/apollographql/apollo-client/teams","hooks_url":"https://api.github.com/repos/apollographql/apollo-client/hooks","issue_events_url":"https://api.github.com/repos/apollographql/apollo-client/issues/events{/number}","events_url":"https://api.github.com/repos/apollographql/apollo-client/events","assignees_url":"https://api.github.com/repos/apollographql/apollo-client/assignees{/user}","branches_url":"https://api.github.com/repos/apollographql/apollo-client/branches{/branch}","tags_url":"https://api.github.com/repos/apollographql/apollo-client/tags","blobs_url":"https://api.github.com/repos/apollographql/apollo-client/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/apollographql/apollo-client/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/apollographql/apollo-client/git/refs{/sha}","trees_url":"https://api.github.com/repos/apollographql/apollo-client/git/trees{/sha}","statuses_url":"https://api.github.com/repos/apollographql/apollo-client/statuses/{sha}","languages_url":"https://api.github.com/repos/apollographql/apollo-client/languages","stargazers_url":"https://api.github.com/repos/apollographql/apollo-client/stargazers","contributors_url":"https://api.github.com/repos/apollographql/apollo-client/contributors","subscribers_url":"https://api.github.com/repos/apollographql/apollo-client/subscribers","subscription_url":"https://api.github.com/repos/apollographql/apollo-client/subscription","commits_url":"https://api.github.com/repos/apollographql/apollo-client/commits{/sha}","git_commits_url":"https://api.github.com/repos/apollographql/apollo-client/git/commits{/sha}","comments_url":"https://api.github.com/repos/apollographql/apollo-client/comments{/number}","issue_comment_url":"https://api.github.com/repos/apollographql/apollo-client/issues/comments{/number}","contents_url":"https://api.github.com/repos/apollographql/apollo-client/contents/{+path}","compare_url":"https://api.github.com/repos/apollographql/apollo-client/compare/{base}...{head}","merges_url":"https://api.github.com/repos/apollographql/apollo-client/merges","archive_url":"https://api.github.com/repos/apollographql/apollo-client/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/apollographql/apollo-client/downloads","issues_url":"https://api.github.com/repos/apollographql/apollo-client/issues{/number}","pulls_url":"https://api.github.com/repos/apollographql/apollo-client/pulls{/number}","milestones_url":"https://api.github.com/repos/apollographql/apollo-client/milestones{/number}","notifications_url":"https://api.github.com/repos/apollographql/apollo-client/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/apollographql/apollo-client/labels{/name}","releases_url":"https://api.github.com/repos/apollographql/apollo-client/releases{/id}","deployments_url":"https://api.github.com/repos/apollographql/apollo-client/deployments","created_at":"2016-02-26T20:25:00Z","updated_at":"2018-12-17T16:16:37Z","pushed_at":"2018-12-17T17:19:42Z","git_url":"git://github.com/apollographql/apollo-client.git","ssh_url":"git@github.com:apollographql/apollo-client.git","clone_url":"https://github.com/apollographql/apollo-client.git","svn_url":"https://github.com/apollographql/apollo-client","homepage":"http://dev.apollodata.com/","size":13420,"stargazers_count":9432,"watchers_count":9432,"language":"TypeScript","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":1079,"mirror_url":null,"archived":false,"open_issues_count":262,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":1079,"open_issues":262,"watchers":9432,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/apollographql/apollo-client/pulls/4233"},"html":{"href":"https://github.com/apollographql/apollo-client/pull/4233"},"issue":{"href":"https://api.github.com/repos/apollographql/apollo-client/issues/4233"},"comments":{"href":"https://api.github.com/repos/apollographql/apollo-client/issues/4233/comments"},"review_comments":{"href":"https://api.github.com/repos/apollographql/apollo-client/pulls/4233/comments"},"review_comment":{"href":"https://api.github.com/repos/apollographql/apollo-client/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/apollographql/apollo-client/pulls/4233/commits"},"statuses":{"href":"https://api.github.com/repos/apollographql/apollo-client/statuses/c7083c565386363b75cd545bca39e20013375d69"}},"author_association":"MEMBER"}}
{"actor":{"display_login":"benjamn"}}