{"action":"created","comment":{"url":"https://api.github.com/repos/ember-best-practices/eslint-plugin-ember-best-practices/pulls/comments/148932433","pull_request_review_id":74256881,"id":148932433,"diff_hunk":"@@ -3,93 +3,107 @@\n  */\n \n const MESSAGES = {\n-  noSuper: '\\'this._super(...arguments)\\' must be called in init()',\n-  noThisBeforeSuper: 'Must call \\'this._super(...arguments)\\' before accessing `this`',\n-  tooManySupers: 'Only call `this._super(...arguments)` once per init()'\n+  noSuper: '`this._super(...arguments)` must be called in',\n+  tooManySupers: 'Only call `this._super(...arguments)` once per lifecycle hook',\n+  argsNotPassedToSuper: '...arguments need to be passed to this._super() call'\n };\n \n-// TODO: Make this configurable\n-const EMBER_MODULES_WITH_SUPER_CHAIN = {\n-  Component: true,\n-  Mixin: true,\n-  Route: true,\n-  Controller: true,\n-  View: true\n-};\n+const LIFECYCLE_HOOKS = ['init', 'willDestroy', 'willDestroyElement', 'destroy'];\n \n-/**\n- * Determines if this is an init method in an extension of Ember[EMBER_MODULES_WITH_SUPER_CHAIN.*]\n- * @param {Node} node\n- */\n-function isInit(node) {\n-  if (node.type === 'FunctionExpression' && node.parent && node.parent.key && node.parent.key.name === 'init') {\n+function isExtend(node) {\n+  return node && node.callee && node.callee.property && node.callee.property.name === 'extend';\n+}\n+\n+function isSuperCall(lineWithinFn) {\n+  if (lineWithinFn.type !== 'MemberExpression') {\n+    return false;\n+  }\n+\n+  let isSuperCall = false;\n+\n+  if (lineWithinFn.object.type === 'ThisExpression') {\n+    isSuperCall = lineWithinFn.property.type === 'Identifier' && lineWithinFn.property.name === '_super';\n+  } else if (lineWithinFn.object.type === 'MemberExpression') {\n+    isSuperCall = lineWithinFn.object.property.name === '_super';\n+  }\n+\n+  return isSuperCall;\n+}\n \n-    if (node.parent.parent\n-      && node.parent.parent.parent\n-      && node.parent.parent.parent.callee\n-      && node.parent.parent.parent.callee.object\n-      && node.parent.parent.parent.callee.object.object\n-      && node.parent.parent.parent.callee.object.object.name === 'Ember') {\n-      return (node.parent.parent.parent.callee.object.property\n-        && EMBER_MODULES_WITH_SUPER_CHAIN[node.parent.parent.parent.callee.object.property.name]);\n-    }\n+function wereArgumentsPassedToSuper(expression) {\n+  const callee = expression.callee;\n+\n+  if (!expression || callee.type !== 'MemberExpression') {\n+    return;\n   }\n \n-  return false;\n+  if (callee.property.name === '_super') {\n+    const firstArgumentToSuper = expression.arguments[0];\n+    return firstArgumentToSuper && firstArgumentToSuper.type === 'SpreadElement' && firstArgumentToSuper.argument.name === 'arguments';\n+  } else if (callee.property.name === 'apply') {\n+    const args = expression.arguments;\n+    return args.length >= 2 && args[0].type === 'ThisExpression' && args[1].name === 'arguments';\n+  }\n }\n \n module.exports = {\n   meta: {\n     docs: {\n-      description: 'Prevent the absence of `this._super(...arguments)` in `init()` calls or the use of `this` prior to `this._super()`',\n+      description: 'Prevent the absence of `this._super(...arguments)` in calls to various lifecycle hooks or the use of `this` prior to `this._super()`',\n       category: 'Best Practices',\n       recommended: true\n     },\n     messages: MESSAGES\n   },\n   create(context) {\n-    let initOverride = null;\n-\n     return {\n-      onCodePathStart(codePath, node) {\n-        if (isInit(node)) {\n-          initOverride = {\n-            superCalled: false,\n-            superCalledFirst: false\n-          };\n-        }\n-      },\n-      onCodePathEnd(codePath, node) {\n-        if (initOverride && isInit(node)) { // TODO: Maybe check against codepath.name\n-          if (!initOverride.superCalled) {\n-            context.report({\n-              message: MESSAGES.noSuper,\n-              node\n-            });\n-          }\n+      CallExpression(node) {\n+        if (isExtend(node)) {\n+          let superCount = 0;\n+          const extendedObjects = node.arguments;\n \n-          initOverride = null;\n-        }\n-        return;\n-      },\n-      'CallExpression:exit'(node) {\n-        if (initOverride) {\n-          const property = node.callee.property;\n-          if (property && property.type === 'Identifier' && property.name === '_super') {\n-            if (initOverride.superCalled) {\n-              context.report({\n-                message: MESSAGES.tooManySupers,\n-                node\n-              });\n-            } else {\n-              initOverride.superCalled = true;\n-            }\n-          }\n+          extendedObjects.forEach(extendedObj => {\n+            extendedObj.properties.forEach(property => {","path":"lib/rules/no-broken-super-chain.js","position":127,"original_position":127,"commit_id":"a8b7a683ae2f75ffd50986b2c57c40533a630db3","original_commit_id":"a8b7a683ae2f75ffd50986b2c57c40533a630db3","user":{"login":"sparrowj","id":8199672,"avatar_url":"https://avatars2.githubusercontent.com/u/8199672?v=4","gravatar_id":"","url":"https://api.github.com/users/sparrowj","html_url":"https://github.com/sparrowj","followers_url":"https://api.github.com/users/sparrowj/followers","following_url":"https://api.github.com/users/sparrowj/following{/other_user}","gists_url":"https://api.github.com/users/sparrowj/gists{/gist_id}","starred_url":"https://api.github.com/users/sparrowj/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sparrowj/subscriptions","organizations_url":"https://api.github.com/users/sparrowj/orgs","repos_url":"https://api.github.com/users/sparrowj/repos","events_url":"https://api.github.com/users/sparrowj/events{/privacy}","received_events_url":"https://api.github.com/users/sparrowj/received_events","type":"User","site_admin":false},"body":"Updated, and added test.","created_at":"2017-11-04T14:40:54Z","updated_at":"2017-11-04T14:40:54Z","html_url":"https://github.com/ember-best-practices/eslint-plugin-ember-best-practices/pull/94#discussion_r148932433","pull_request_url":"https://api.github.com/repos/ember-best-practices/eslint-plugin-ember-best-practices/pulls/94","author_association":"NONE","_links":{"self":{"href":"https://api.github.com/repos/ember-best-practices/eslint-plugin-ember-best-practices/pulls/comments/148932433"},"html":{"href":"https://github.com/ember-best-practices/eslint-plugin-ember-best-practices/pull/94#discussion_r148932433"},"pull_request":{"href":"https://api.github.com/repos/ember-best-practices/eslint-plugin-ember-best-practices/pulls/94"}},"in_reply_to_id":148780312},"pull_request":{"url":"https://api.github.com/repos/ember-best-practices/eslint-plugin-ember-best-practices/pulls/94","id":150311360,"html_url":"https://github.com/ember-best-practices/eslint-plugin-ember-best-practices/pull/94","diff_url":"https://github.com/ember-best-practices/eslint-plugin-ember-best-practices/pull/94.diff","patch_url":"https://github.com/ember-best-practices/eslint-plugin-ember-best-practices/pull/94.patch","issue_url":"https://api.github.com/repos/ember-best-practices/eslint-plugin-ember-best-practices/issues/94","number":94,"state":"open","locked":false,"title":"Updated `no-broken-super-chain` rule to account for more lifecycle hooks …","user":{"login":"sparrowj","id":8199672,"avatar_url":"https://avatars2.githubusercontent.com/u/8199672?v=4","gravatar_id":"","url":"https://api.github.com/users/sparrowj","html_url":"https://github.com/sparrowj","followers_url":"https://api.github.com/users/sparrowj/followers","following_url":"https://api.github.com/users/sparrowj/following{/other_user}","gists_url":"https://api.github.com/users/sparrowj/gists{/gist_id}","starred_url":"https://api.github.com/users/sparrowj/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sparrowj/subscriptions","organizations_url":"https://api.github.com/users/sparrowj/orgs","repos_url":"https://api.github.com/users/sparrowj/repos","events_url":"https://api.github.com/users/sparrowj/events{/privacy}","received_events_url":"https://api.github.com/users/sparrowj/received_events","type":"User","site_admin":false},"body":"…and more object types. The rule now checks any object that's using `extend`, and validates the `init`, `willDestroy`, `destroy` and `willDestroyElement` hooks. In addition, I updated the rule to validate that `arguments` were correctly passed to the super call. Both of the below pass the rule:\r\n\r\n`this._super(...arguments);`\r\n`this._super.apply(this, arguments)`","created_at":"2017-11-02T14:47:30Z","updated_at":"2017-11-04T14:40:54Z","closed_at":null,"merged_at":null,"merge_commit_sha":"a575b3e947cd1edbbe8aed08deaa4ff2022c7eff","assignee":null,"assignees":[],"requested_reviewers":[],"milestone":null,"commits_url":"https://api.github.com/repos/ember-best-practices/eslint-plugin-ember-best-practices/pulls/94/commits","review_comments_url":"https://api.github.com/repos/ember-best-practices/eslint-plugin-ember-best-practices/pulls/94/comments","review_comment_url":"https://api.github.com/repos/ember-best-practices/eslint-plugin-ember-best-practices/pulls/comments{/number}","comments_url":"https://api.github.com/repos/ember-best-practices/eslint-plugin-ember-best-practices/issues/94/comments","statuses_url":"https://api.github.com/repos/ember-best-practices/eslint-plugin-ember-best-practices/statuses/a8b7a683ae2f75ffd50986b2c57c40533a630db3","head":{"label":"sparrowj:master","ref":"master","sha":"a8b7a683ae2f75ffd50986b2c57c40533a630db3","user":{"login":"sparrowj","id":8199672,"avatar_url":"https://avatars2.githubusercontent.com/u/8199672?v=4","gravatar_id":"","url":"https://api.github.com/users/sparrowj","html_url":"https://github.com/sparrowj","followers_url":"https://api.github.com/users/sparrowj/followers","following_url":"https://api.github.com/users/sparrowj/following{/other_user}","gists_url":"https://api.github.com/users/sparrowj/gists{/gist_id}","starred_url":"https://api.github.com/users/sparrowj/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sparrowj/subscriptions","organizations_url":"https://api.github.com/users/sparrowj/orgs","repos_url":"https://api.github.com/users/sparrowj/repos","events_url":"https://api.github.com/users/sparrowj/events{/privacy}","received_events_url":"https://api.github.com/users/sparrowj/received_events","type":"User","site_admin":false},"repo":{"id":109169744,"name":"eslint-plugin-ember-best-practices","full_name":"sparrowj/eslint-plugin-ember-best-practices","owner":{"login":"sparrowj","id":8199672,"avatar_url":"https://avatars2.githubusercontent.com/u/8199672?v=4","gravatar_id":"","url":"https://api.github.com/users/sparrowj","html_url":"https://github.com/sparrowj","followers_url":"https://api.github.com/users/sparrowj/followers","following_url":"https://api.github.com/users/sparrowj/following{/other_user}","gists_url":"https://api.github.com/users/sparrowj/gists{/gist_id}","starred_url":"https://api.github.com/users/sparrowj/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sparrowj/subscriptions","organizations_url":"https://api.github.com/users/sparrowj/orgs","repos_url":"https://api.github.com/users/sparrowj/repos","events_url":"https://api.github.com/users/sparrowj/events{/privacy}","received_events_url":"https://api.github.com/users/sparrowj/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/sparrowj/eslint-plugin-ember-best-practices","description":"Static analysis tools for enforcing best practices in Ember","fork":true,"url":"https://api.github.com/repos/sparrowj/eslint-plugin-ember-best-practices","forks_url":"https://api.github.com/repos/sparrowj/eslint-plugin-ember-best-practices/forks","keys_url":"https://api.github.com/repos/sparrowj/eslint-plugin-ember-best-practices/keys{/key_id}","collaborators_url":"https://api.github.com/repos/sparrowj/eslint-plugin-ember-best-practices/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/sparrowj/eslint-plugin-ember-best-practices/teams","hooks_url":"https://api.github.com/repos/sparrowj/eslint-plugin-ember-best-practices/hooks","issue_events_url":"https://api.github.com/repos/sparrowj/eslint-plugin-ember-best-practices/issues/events{/number}","events_url":"https://api.github.com/repos/sparrowj/eslint-plugin-ember-best-practices/events","assignees_url":"https://api.github.com/repos/sparrowj/eslint-plugin-ember-best-practices/assignees{/user}","branches_url":"https://api.github.com/repos/sparrowj/eslint-plugin-ember-best-practices/branches{/branch}","tags_url":"https://api.github.com/repos/sparrowj/eslint-plugin-ember-best-practices/tags","blobs_url":"https://api.github.com/repos/sparrowj/eslint-plugin-ember-best-practices/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/sparrowj/eslint-plugin-ember-best-practices/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/sparrowj/eslint-plugin-ember-best-practices/git/refs{/sha}","trees_url":"https://api.github.com/repos/sparrowj/eslint-plugin-ember-best-practices/git/trees{/sha}","statuses_url":"https://api.github.com/repos/sparrowj/eslint-plugin-ember-best-practices/statuses/{sha}","languages_url":"https://api.github.com/repos/sparrowj/eslint-plugin-ember-best-practices/languages","stargazers_url":"https://api.github.com/repos/sparrowj/eslint-plugin-ember-best-practices/stargazers","contributors_url":"https://api.github.com/repos/sparrowj/eslint-plugin-ember-best-practices/contributors","subscribers_url":"https://api.github.com/repos/sparrowj/eslint-plugin-ember-best-practices/subscribers","subscription_url":"https://api.github.com/repos/sparrowj/eslint-plugin-ember-best-practices/subscription","commits_url":"https://api.github.com/repos/sparrowj/eslint-plugin-ember-best-practices/commits{/sha}","git_commits_url":"https://api.github.com/repos/sparrowj/eslint-plugin-ember-best-practices/git/commits{/sha}","comments_url":"https://api.github.com/repos/sparrowj/eslint-plugin-ember-best-practices/comments{/number}","issue_comment_url":"https://api.github.com/repos/sparrowj/eslint-plugin-ember-best-practices/issues/comments{/number}","contents_url":"https://api.github.com/repos/sparrowj/eslint-plugin-ember-best-practices/contents/{+path}","compare_url":"https://api.github.com/repos/sparrowj/eslint-plugin-ember-best-practices/compare/{base}...{head}","merges_url":"https://api.github.com/repos/sparrowj/eslint-plugin-ember-best-practices/merges","archive_url":"https://api.github.com/repos/sparrowj/eslint-plugin-ember-best-practices/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/sparrowj/eslint-plugin-ember-best-practices/downloads","issues_url":"https://api.github.com/repos/sparrowj/eslint-plugin-ember-best-practices/issues{/number}","pulls_url":"https://api.github.com/repos/sparrowj/eslint-plugin-ember-best-practices/pulls{/number}","milestones_url":"https://api.github.com/repos/sparrowj/eslint-plugin-ember-best-practices/milestones{/number}","notifications_url":"https://api.github.com/repos/sparrowj/eslint-plugin-ember-best-practices/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/sparrowj/eslint-plugin-ember-best-practices/labels{/name}","releases_url":"https://api.github.com/repos/sparrowj/eslint-plugin-ember-best-practices/releases{/id}","deployments_url":"https://api.github.com/repos/sparrowj/eslint-plugin-ember-best-practices/deployments","created_at":"2017-11-01T18:44:51Z","updated_at":"2017-11-01T18:44:53Z","pushed_at":"2017-11-02T14:44:36Z","git_url":"git://github.com/sparrowj/eslint-plugin-ember-best-practices.git","ssh_url":"git@github.com:sparrowj/eslint-plugin-ember-best-practices.git","clone_url":"https://github.com/sparrowj/eslint-plugin-ember-best-practices.git","svn_url":"https://github.com/sparrowj/eslint-plugin-ember-best-practices","homepage":"","size":226,"stargazers_count":0,"watchers_count":0,"language":"JavaScript","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"ember-best-practices:master","ref":"master","sha":"f8e95881b95932a0def02be090ebf96ea127a18b","user":{"login":"ember-best-practices","id":26286374,"avatar_url":"https://avatars3.githubusercontent.com/u/26286374?v=4","gravatar_id":"","url":"https://api.github.com/users/ember-best-practices","html_url":"https://github.com/ember-best-practices","followers_url":"https://api.github.com/users/ember-best-practices/followers","following_url":"https://api.github.com/users/ember-best-practices/following{/other_user}","gists_url":"https://api.github.com/users/ember-best-practices/gists{/gist_id}","starred_url":"https://api.github.com/users/ember-best-practices/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ember-best-practices/subscriptions","organizations_url":"https://api.github.com/users/ember-best-practices/orgs","repos_url":"https://api.github.com/users/ember-best-practices/repos","events_url":"https://api.github.com/users/ember-best-practices/events{/privacy}","received_events_url":"https://api.github.com/users/ember-best-practices/received_events","type":"Organization","site_admin":false},"repo":{"id":71090022,"name":"eslint-plugin-ember-best-practices","full_name":"ember-best-practices/eslint-plugin-ember-best-practices","owner":{"login":"ember-best-practices","id":26286374,"avatar_url":"https://avatars3.githubusercontent.com/u/26286374?v=4","gravatar_id":"","url":"https://api.github.com/users/ember-best-practices","html_url":"https://github.com/ember-best-practices","followers_url":"https://api.github.com/users/ember-best-practices/followers","following_url":"https://api.github.com/users/ember-best-practices/following{/other_user}","gists_url":"https://api.github.com/users/ember-best-practices/gists{/gist_id}","starred_url":"https://api.github.com/users/ember-best-practices/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ember-best-practices/subscriptions","organizations_url":"https://api.github.com/users/ember-best-practices/orgs","repos_url":"https://api.github.com/users/ember-best-practices/repos","events_url":"https://api.github.com/users/ember-best-practices/events{/privacy}","received_events_url":"https://api.github.com/users/ember-best-practices/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/ember-best-practices/eslint-plugin-ember-best-practices","description":"Static analysis tools for enforcing best practices in Ember","fork":false,"url":"https://api.github.com/repos/ember-best-practices/eslint-plugin-ember-best-practices","forks_url":"https://api.github.com/repos/ember-best-practices/eslint-plugin-ember-best-practices/forks","keys_url":"https://api.github.com/repos/ember-best-practices/eslint-plugin-ember-best-practices/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ember-best-practices/eslint-plugin-ember-best-practices/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ember-best-practices/eslint-plugin-ember-best-practices/teams","hooks_url":"https://api.github.com/repos/ember-best-practices/eslint-plugin-ember-best-practices/hooks","issue_events_url":"https://api.github.com/repos/ember-best-practices/eslint-plugin-ember-best-practices/issues/events{/number}","events_url":"https://api.github.com/repos/ember-best-practices/eslint-plugin-ember-best-practices/events","assignees_url":"https://api.github.com/repos/ember-best-practices/eslint-plugin-ember-best-practices/assignees{/user}","branches_url":"https://api.github.com/repos/ember-best-practices/eslint-plugin-ember-best-practices/branches{/branch}","tags_url":"https://api.github.com/repos/ember-best-practices/eslint-plugin-ember-best-practices/tags","blobs_url":"https://api.github.com/repos/ember-best-practices/eslint-plugin-ember-best-practices/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ember-best-practices/eslint-plugin-ember-best-practices/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ember-best-practices/eslint-plugin-ember-best-practices/git/refs{/sha}","trees_url":"https://api.github.com/repos/ember-best-practices/eslint-plugin-ember-best-practices/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ember-best-practices/eslint-plugin-ember-best-practices/statuses/{sha}","languages_url":"https://api.github.com/repos/ember-best-practices/eslint-plugin-ember-best-practices/languages","stargazers_url":"https://api.github.com/repos/ember-best-practices/eslint-plugin-ember-best-practices/stargazers","contributors_url":"https://api.github.com/repos/ember-best-practices/eslint-plugin-ember-best-practices/contributors","subscribers_url":"https://api.github.com/repos/ember-best-practices/eslint-plugin-ember-best-practices/subscribers","subscription_url":"https://api.github.com/repos/ember-best-practices/eslint-plugin-ember-best-practices/subscription","commits_url":"https://api.github.com/repos/ember-best-practices/eslint-plugin-ember-best-practices/commits{/sha}","git_commits_url":"https://api.github.com/repos/ember-best-practices/eslint-plugin-ember-best-practices/git/commits{/sha}","comments_url":"https://api.github.com/repos/ember-best-practices/eslint-plugin-ember-best-practices/comments{/number}","issue_comment_url":"https://api.github.com/repos/ember-best-practices/eslint-plugin-ember-best-practices/issues/comments{/number}","contents_url":"https://api.github.com/repos/ember-best-practices/eslint-plugin-ember-best-practices/contents/{+path}","compare_url":"https://api.github.com/repos/ember-best-practices/eslint-plugin-ember-best-practices/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ember-best-practices/eslint-plugin-ember-best-practices/merges","archive_url":"https://api.github.com/repos/ember-best-practices/eslint-plugin-ember-best-practices/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ember-best-practices/eslint-plugin-ember-best-practices/downloads","issues_url":"https://api.github.com/repos/ember-best-practices/eslint-plugin-ember-best-practices/issues{/number}","pulls_url":"https://api.github.com/repos/ember-best-practices/eslint-plugin-ember-best-practices/pulls{/number}","milestones_url":"https://api.github.com/repos/ember-best-practices/eslint-plugin-ember-best-practices/milestones{/number}","notifications_url":"https://api.github.com/repos/ember-best-practices/eslint-plugin-ember-best-practices/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ember-best-practices/eslint-plugin-ember-best-practices/labels{/name}","releases_url":"https://api.github.com/repos/ember-best-practices/eslint-plugin-ember-best-practices/releases{/id}","deployments_url":"https://api.github.com/repos/ember-best-practices/eslint-plugin-ember-best-practices/deployments","created_at":"2016-10-17T01:44:09Z","updated_at":"2017-10-16T12:53:50Z","pushed_at":"2017-11-03T14:59:33Z","git_url":"git://github.com/ember-best-practices/eslint-plugin-ember-best-practices.git","ssh_url":"git@github.com:ember-best-practices/eslint-plugin-ember-best-practices.git","clone_url":"https://github.com/ember-best-practices/eslint-plugin-ember-best-practices.git","svn_url":"https://github.com/ember-best-practices/eslint-plugin-ember-best-practices","homepage":"","size":226,"stargazers_count":50,"watchers_count":50,"language":"JavaScript","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":25,"mirror_url":null,"archived":false,"open_issues_count":14,"forks":25,"open_issues":14,"watchers":50,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/ember-best-practices/eslint-plugin-ember-best-practices/pulls/94"},"html":{"href":"https://github.com/ember-best-practices/eslint-plugin-ember-best-practices/pull/94"},"issue":{"href":"https://api.github.com/repos/ember-best-practices/eslint-plugin-ember-best-practices/issues/94"},"comments":{"href":"https://api.github.com/repos/ember-best-practices/eslint-plugin-ember-best-practices/issues/94/comments"},"review_comments":{"href":"https://api.github.com/repos/ember-best-practices/eslint-plugin-ember-best-practices/pulls/94/comments"},"review_comment":{"href":"https://api.github.com/repos/ember-best-practices/eslint-plugin-ember-best-practices/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/ember-best-practices/eslint-plugin-ember-best-practices/pulls/94/commits"},"statuses":{"href":"https://api.github.com/repos/ember-best-practices/eslint-plugin-ember-best-practices/statuses/a8b7a683ae2f75ffd50986b2c57c40533a630db3"}},"author_association":"NONE"}}
{"actor":{"display_login":"sparrowj"}}